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

Slides:



Advertisements
Similar presentations
Event handling and listeners What is an event? user actions and context event sources and listeners Why should my programs be event- driven? User interaction.
Advertisements

Execute Blocks of Code Multiple Times Svetlin Nakov Telerik Corporation
How SAS implements structured programming constructs
Introduction Games have always been a fundamental part of human life. Space storm “ عاصفة الفضاء” is a 3D SCI-FI game that consists of two stages presented.
Execute Blocks of Code Multiple Times Telerik Software Academy C# Fundamentals – Part 1.
Constructor and New Fields // Don't synch draw() with vertical retrace of monitor graphics.SynchronizeWithVerticalRetrace = false; IsFixedTimeStep = true;
Chapter 10 Introduction to Arrays
PSYCHOSOFT Matthew Fawcett Mike McLaughlin Mark Schaaf Brad Calcutt Daniel Reeves.
Event Handling Events and Listeners Timers and Animation.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
Object-Oriented Analysis and Design
Chapter 9 Introduction to Arrays
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Week 4-5 Java Programming. Loops What is a loop? Loop is code that repeats itself a certain number of times There are two types of loops: For loop Used.
PROJECT PLANNING. PLANNING Planning is essential and software development is no exception. Achieving success in software development requires planning.
GREENFOOT CLUB RESOURCES Brian Cullen – Rossett School
SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.
SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.
SE Team 9 3D Flyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach Matt Cook.
Chapter 4: Decision Making with Control Structures and Statements JavaScript - Introductory.
Description, Classes, Interfaces, Hierarchy, Specifics George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
Java Programming: Guided Learning with Early Objects
CS 11 java track: lecture 4 This week: arrays interfaces listener classes inner classes GUI callbacks.
Arrays An array is a data structure that consists of an ordered collection of similar items (where “similar items” means items of the same type.) An array.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 26: Exam 2 Preview.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Lesson 34: Layering Images with Java GUI. The FlowLayout RECAP.
The Drawing program – Java Applets
Chapter 5 Loops. Overview u Loop Statement Syntax  Loop Statement Structure: while, for, do-while u Count-Controlled Loops u Nested Loops u Loop Testing.
Neo-Breakout Sonhui Schweitzer CS 470 Spring 2005.
Case study Students. Array of objects Arrays can hold objects (ref to objects!) Each cell in an array of objects is null by default Sample: from student.
CNS 1410 Graphical User Interfaces. Obectives Students should understand the difference between a procedural program and an Event Driven Program. Students.
111 Introduction to OGRE3D Programming: Main Loop.
Two-Dimensional Arrays That’s 2-D Arrays Girls & Boys! One-Dimensional Arrays on Steroids!
XNA Basic Displaying Image & Collision Detect. What’s format image that XNA support? XNA support only.bmp.png and.jpg image..PNG have transparent region.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) CS 426 Planning the Game Design Spec & Blitz3D Workshop © Jason Leigh Electronic.
Mouse Listeners Moving the mouse will also generate events like the Timer –To have your program respond, you must implement either or both of MouseListener.
Arrays. The array data structure Array is a collection of elements, that have the same data type Integers (int) Floating point numbers (float, double)
Object-Oriented Software Engineering Using Threads and simple Animation.
1 For Loops l From Chapter 9 l A shorthand way of coding count loops.
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize.
1 Review for Midterm 2 Aaron Bloomfield CS 101-E.
Vision using Wavelets CIS 541 Team 6 Presentation 6 Megan Enns Tim Weninger Brett Wolfington CIS 541 Team 6 Presentation 6 Megan Enns Tim Weninger Brett.
SE Team 9 GlobalFlyer Cole Hoosier Ryan Hannebaum Leanne Gray Alex Stampbach.
1 Working with Controls at Run Time. 2 Objectives You will be able to Add controls to a Windows form at run time. Modify controls at run time.
Computer Science I Animations. Bouncing ball. The if statement. Classwork/homework: bouncing something. Compress and upload work to Moodle.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
Ogre Resource Managers References: 1. anagers&structure=Tutorialshttp://
Unbuffered Input Games generally use unbuffered Input Ogre provides FrameListeners – Ogre's main infinite loop → startRendering – Also called the render.
Chapter 9 Introduction to Arrays Fundamentals of Java.
Collision Theory and Logic
EECE 310: Software Engineering
Lecture 2 Richard Gesick
Collision Theory and Logic
Lab 2 : Structures Muhammad Zaigham Abbas Shah DIGITAL INSTRUMENTATION SYSTEMS.
10.3 Bubble Sort Chapter 10 - Sorting.
Moon Tanks By: Krislin Lee, Jacob Seene, and Chris Weisiger.
More programming with "Processing"
Logical Operations In Matlab.
Player preferences, Loading Scenes, Activating and Enabling
Week 6: Time and triggers!
An Introduction to Linux
ECE 103 Engineering Programming Chapter 18 Iteration
Repetition Statements (Loops) - 2
True / False Variables.
The List Container and Iterators
10.3 Bubble Sort Chapter 10 - Sorting.
Presentation transcript:

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

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)

GlobalFlyer Web Site

UML Models

FrameStarted Sequence Diag

Class Diagram Overview

The FrameListener

The Camera

The Plane

The Physics

The Sound OldNew

Source Code

Floating Bubbles!

Lots and lots of bubbles…

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

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

Bubbly Source Texture_spheremap.png

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

Sound, glorious sound

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

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

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

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

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

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

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

Analysis of Iteration 1

DateBCWSBCWPACWPBACEVSPISVCPICV 2/2/ % /9/ %inf %300 2/16/ %inf %570 2/23/ %inf %-360 3/2/ %100.00%087.23%-360 Table of Measurements

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

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

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

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

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

Members Comparison

Plan for Iteration 2

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