41
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach

SE Team 9 GlobalFlyer

  • Upload
    maren

  • View
    16

  • Download
    0

Embed Size (px)

DESCRIPTION

SE Team 9 GlobalFlyer. Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach. Project Statement. GlobalFlyer allows a player to fly a Wright brothers-style airplane in 3D space using the OGRE graphic rendering engine and the FMOD sound system. Iteration Plans. Fixup - PowerPoint PPT Presentation

Citation preview

Page 1: SE Team 9 GlobalFlyer

SE Team 9GlobalFlyer

Cole HoosierRyan Hannebaum

Leanne GrayAlex Stampbach

Page 2: SE Team 9 GlobalFlyer

Project Statement

• GlobalFlyer allows a player to fly a Wright brothers-style airplane in 3D space using the OGRE graphic rendering engine and the FMOD sound system.

Page 3: SE Team 9 GlobalFlyer

Iteration PlansFixup

1: Get music and sound effects working again2: Get collision detection with buildings working3: Get the propellor showing up again

Visual Environment1: Add hovering objects to the world2: Add proximity detection to hovering objects3: Modify texture of hovering objects based on proximityIcing: Create multiple levels, progressing in difficulty

User Interface1: Add mouse control of camera2: Add visually-appealing digital readouts of data the user might want3: Add the ability to toggle sound, gui, etc.

Page 4: SE Team 9 GlobalFlyer

OCL planAreas that lend themselves well to OCL specifications

•Collision detection of plane with ground/objects

•No re-initialization of sound system

•Placement of bubbles/buildings on terrain(must be within the boundaries of the world)

•Checking win-condition for a level(must have “touched” all bubbles)

Page 5: SE Team 9 GlobalFlyer

GlobalFlyer Web Site

• http://seteam9.cis.ksu.edu/

Page 6: SE Team 9 GlobalFlyer

UML Models

Page 7: SE Team 9 GlobalFlyer

FrameStarted Sequence Diag

Page 8: SE Team 9 GlobalFlyer

Class DiagramOverview

Page 9: SE Team 9 GlobalFlyer
Page 10: SE Team 9 GlobalFlyer
Page 11: SE Team 9 GlobalFlyer

The FrameListener

Page 12: SE Team 9 GlobalFlyer

The Camera

Page 13: SE Team 9 GlobalFlyer

The Plane

Page 14: SE Team 9 GlobalFlyer

The Physics

Page 15: SE Team 9 GlobalFlyer

The Sound

Old New

Page 16: SE Team 9 GlobalFlyer

Source Code

Page 17: SE Team 9 GlobalFlyer

Floating Bubbles!

Page 18: SE Team 9 GlobalFlyer

Lots and lots of bubbles…

Page 19: SE Team 9 GlobalFlyer

Bubbly SourceballNode = mSceneMgr->getRootSceneNode ()->createChildSceneNode (

StringConverter::toString (i), Vector3 (Math::RangeRandom (1000, 14000),Math::RangeRandom(500,1000),Math::RangeRandom (1000, 14000)));

ballEntity = mSceneMgr->createEntity (StringConverter::toString (i), "sphere.mesh");

//ballEntity->setMaterialName("GlobalFlyer/YellowSphere");ballEntity->setMaterialName("GlobalFlyer/RedSphere");//ballEntity->setMaterialName("GlobalFlyer/BlueSphere");ballEntity->setCastShadows(true);

ballNode->attachObject(ballEntity);

sample_application.cpp

Page 20: SE Team 9 GlobalFlyer

Bubbly Source

FileSystem=../../new_media/materials/scriptsFileSystem=../../new_media/materials/textures

resources.cfg

Page 21: SE Team 9 GlobalFlyer

Bubbly Source

Texture_spheremap.png

Page 22: SE Team 9 GlobalFlyer

Bubbly Sourcematerial GlobalFlyer/RedSphere{ technique

{ pass{ ambient 0.5 0 0

diffuse 1 0 0texture_unit{ texture spheremap.png

env_map sphericalrotate_anim 0.1

}}}}

gf.material

Page 23: SE Team 9 GlobalFlyer

Sound, glorious sound

Page 24: SE Team 9 GlobalFlyer

Sound Sourcebool CFmod::initialized = false;

bool CFmod::InitSoundSystem(){ if (!initialized) { if (!FSOUND_Init(44100, 32, FSOUND_INIT_GLOBALFOCUS)) { DisplayError(); return false; } initialized = true; } return true;}

fmod.cpp

Page 25: SE Team 9 GlobalFlyer

Sound Source

void CFmod::FreeSoundSystem(){

FSOUND_Close();initialized = false;

}

fmod.cpp

Page 26: SE Team 9 GlobalFlyer

Sound Sourcevoid CFmod::SetLoop(bool loop, int start, int end){ if (m_pSound != NULL) { if (loop) { FSOUND_Sample_SetMode ( m_pSound, FSOUND_LOOP_NORMAL ); if( start >= 0 && end >= 0) { FSOUND_Sample_SetLoopPoints( m_pSound, start, end); } } else { FSOUND_Sample_SetMode ( m_pSound, FSOUND_LOOP_OFF ); } }}

fmod.cpp

Page 27: SE Team 9 GlobalFlyer

Sound Source// in constructorCFmod::InitSoundSystem();musicSound.Load("../../new_media/audio/GlobalFlyer.mp3");musicSound.SetLoop(true, -1, -1);musicSound.Play();engineSound.Load("../../new_media/audio/engine.wav");engineSound.SetLoop(true, 5000, 70000);engineSound.Play();crashSound.Load("../../new_media/audio/crash.wav");

// at crash // at restartengineSound.Pause(); crashSound.Stop();crashSoundStarted = true; crashSoundStarted = false;crashSound.Play(); engineSound.Pause();

ogre_character.cpp

Page 28: SE Team 9 GlobalFlyer

MouseLook

•MouseListener, MouseMotionListenerMouseListener, MouseMotionListener• void mouseDragged(MouseEvent* e)void mouseDragged(MouseEvent* e)• mEventProcessor?!mEventProcessor?!

Page 29: SE Team 9 GlobalFlyer

EventProcessor

• ExampleFrameListener.hExampleFrameListener.h– mEventProcessor always instantiatesmEventProcessor always instantiates

• SampleListener.cppSampleListener.cpp– Initialize mEventProcessorInitialize mEventProcessor– Add mouse-related event listenersAdd mouse-related event listeners– Start processing eventsStart processing events

Page 30: SE Team 9 GlobalFlyer

mouseDragged()

void SampleListener::mouseDragged(MouseEvent* e) {//mChar->getCameraNode()->setAutoTracking(false);//mChar->getSightNode()->yaw(Degree(-e->getX()*mRotate));//mChar->getSightNode()->pitch(Degree(-e->getY()*mRotate));if (mExCamera) {

mExCamera->instantUpdate(mChar->getCameraNode()->getWorldPosition(), mChar->getCameraNode()->getWorldPosition() + (100*(Vector3(-e->getX(), -e->getY(), e->getZ()))));// mExCamera->mouseLook(-e->getRelX(), -e->getRelY(), mRotate);}

}

Page 31: SE Team 9 GlobalFlyer

Analysis of Iteration 1

Page 32: SE Team 9 GlobalFlyer

Date BCWS BCWP ACWP BAC EV SPI SV CPI CV

2/2/2007 0 0 0828

0 0.00% -- 0 -- 0

2/9/2007 0 1020 720828

012.32

% inf102

0141.67

% 300

2/16/2007 0 1680 1110

8280

20.29% inf

1680

151.35% 570

2/23/2007 0 2460 2820

8280

29.71% inf

2460 87.23% -360

3/2/2007 2460 2460 2820828

029.71

%100.00

% 0 87.23% -360

Table of Measurements

Page 33: SE Team 9 GlobalFlyer

Earned Value

• The sum of the planned values for all completed tasks

• Shows that tasks were completed at regular intervals up until the 27th when Iteration 1 was schedule to be completed

0.00%

5.00%

10.00%

15.00%

20.00%

25.00%

30.00%

35.00%

Page 34: SE Team 9 GlobalFlyer

Schedule Performance Index

• Budgeted Cost of Work Performed over Budgeted Cost of Work Scheduled

0

0.2

0.4

0.6

0.8

1

1.2

Page 35: SE Team 9 GlobalFlyer

Schedule Variance

• Budgeted Cost of Work Performed less the Budgeted Cost of work Scheduled

0

500

1000

1500

2000

2500

3000

Page 36: SE Team 9 GlobalFlyer

Cost Performance Index

• Budgeted Cost of Work Performed over Actual Cost of Work Performed

• For the first 2 weeks, over estimated

• For the last 2 week, under estimated

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Page 37: SE Team 9 GlobalFlyer

Cost Variance

• Budgeted Cost of Work Performed over Actual Cost of Work Performed

• Same as Cost Performance Index

-600

-400

-200

0

200

400

600

800

Page 38: SE Team 9 GlobalFlyer

Members Comparison

Time

Cole

Leanne

Ryan

Alex

Lines of Code

Cole

Leanne

Ryan

Alex

Page 39: SE Team 9 GlobalFlyer

Plan for Iteration 2

Page 40: SE Team 9 GlobalFlyer
Page 41: SE Team 9 GlobalFlyer

Who has Questions?

-Images from texasbestgrok.mu.nu/images/GF2.jpg