Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach."— Presentation transcript:

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

2 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.

3 Iteration Plans Fixup 1: Get music and sound effects working again 2: Get collision detection with buildings working 3: Get the propellor showing up again Visual Environment 1: Add hovering objects to the world 2: Add proximity detection to hovering objects 3: Modify texture of hovering objects based on proximity Icing: Create multiple levels, progressing in difficulty User Interface 1: Add mouse control of camera 2: Add visually-appealing digital readouts of data the user might want 3: Add the ability to toggle sound, gui, etc.

4 OCL plan Areas 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)

5 GlobalFlyer Web Site http://seteam9.cis.ksu.edu/

6 UML Models

7 FrameStarted Sequence Diag

8 Class Diagram Overview

9

10

11 The FrameListener

12 The Camera

13 The Plane

14 The Physics

15 The Sound OldNew

16 Source Code

17 Floating Bubbles!

18 Lots and lots of bubbles…

19 Bubbly Source ballNode = 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

20 Bubbly Source FileSystem=../../new_media/materials/scripts FileSystem=../../new_media/materials/textures resources.cfg

21 Bubbly Source Texture_spheremap.png

22 Bubbly Source material GlobalFlyer/RedSphere {technique {pass {ambient 0.5 0 0 diffuse 1 0 0 texture_unit {texture spheremap.png env_map spherical rotate_anim 0.1 }}}} gf.material

23 Sound, glorious sound

24 Sound Source bool 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

25 Sound Source void CFmod::FreeSoundSystem() { FSOUND_Close(); initialized = false; } fmod.cpp

26 Sound Source void 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

27 Sound Source // in constructor CFmod::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 restart engineSound.Pause();crashSound.Stop(); crashSoundStarted = true;crashSoundStarted = false; crashSound.Play();engineSound.Pause(); ogre_character.cpp

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

29 EventProcessor ExampleFrameListener.hExampleFrameListener.h –mEventProcessor always instantiates SampleListener.cppSampleListener.cpp –Initialize mEventProcessor –Add mouse-related event listeners –Start processing events

30 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); }

31 Analysis of Iteration 1

32 DateBCWSBCWPACWPBACEVSPISVCPICV 2/2/200700082800.00%--0 0 2/9/200701020720828012.32%inf1020141.67%300 2/16/2007016801110828020.29%inf1680151.35%570 2/23/2007024602820828029.71%inf246087.23%-360 3/2/20072460 2820828029.71%100.00%087.23%-360 Table of Measurements

33 Earned Value The sum of the planned values for all completed tasks Shows that tasks were completed at regular intervals up until the 27 th when Iteration 1 was schedule to be completed

34 Schedule Performance Index Budgeted Cost of Work Performed over Budgeted Cost of Work Scheduled

35 Schedule Variance Budgeted Cost of Work Performed less the Budgeted Cost of work Scheduled

36 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

37 Cost Variance Budgeted Cost of Work Performed over Actual Cost of Work Performed Same as Cost Performance Index

38 Members Comparison

39 Plan for Iteration 2

40

41 Who has Questions? -Images from texasbestgrok.mu.nu/images/GF2.jpg


Download ppt "SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach."

Similar presentations


Ads by Google