Download presentation
Presentation is loading. Please wait.
Published byMadeleine Gibbs Modified over 8 years ago
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
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
41
Who has Questions? -Images from texasbestgrok.mu.nu/images/GF2.jpg
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.