summaryrefslogtreecommitdiff
path: root/vfg/src/testApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vfg/src/testApp.cpp')
-rwxr-xr-xvfg/src/testApp.cpp110
1 files changed, 80 insertions, 30 deletions
diff --git a/vfg/src/testApp.cpp b/vfg/src/testApp.cpp
index 8c701b2..3e711f2 100755
--- a/vfg/src/testApp.cpp
+++ b/vfg/src/testApp.cpp
@@ -16,11 +16,23 @@ void guiWindow::draw(){
parent->gui.draw();
ofSetColor(255,255,255);
ofDrawBitmapString(ofToString(parent->game.queued)+" in queue", 10,ofGetHeight()-15);
- char buf[8];
+ char buf[200];
sprintf(buf,"%.1f",ofGetFrameRate());
ofDrawBitmapString(buf, ofGetWidth()-43,ofGetHeight()-15);
ofDrawBitmapString(levelnames[parent->gamestate-1], 10,ofGetHeight()-35);
- if (parent->gamestate==GAME_PLAYING) ofDrawBitmapString(parent->songs[parent->currentsong]->getScoreString(),10,ofGetHeight()-55);
+ switch (parent->gamestate) {
+ case GAME_PLAYING:
+ ofDrawBitmapString(parent->songs[parent->currentsong]->getScoreString(),10,ofGetHeight()-55);
+ break;
+ case GAME_INTRO:
+ sprintf(buf,"%f %i of %i",parent->intro.getPosition(),parent->intro.getCurrentFrame(),parent->intro.getTotalNumFrames());
+ ofDrawBitmapString(buf,10,ofGetHeight()-55);
+ break;
+ case GAME_ADVERT:
+ sprintf(buf,"%f %i of %i",parent->advert.getPosition(),parent->advert.getCurrentFrame(),parent->advert.getTotalNumFrames());
+ ofDrawBitmapString(buf,10,ofGetHeight()-55);
+ break;
+ }
}
void guiWindow::dragEvent(ofDragInfo dragInfo, ofxFenster* win){
@@ -35,6 +47,9 @@ void testApp::setup(){
game.setup("1122",2000); //Asterisk.cpp thread polls server every 2000ms
+//songs.push_back(new song("WeWishYouAMerryChistmas_v.2.1/VODA_MUS_WEWISHU_Backing_v.2.1.mp3","WeWishYouAMerryChistmas_v.2.1/VODA_MUS_WEWISHU_Lead_v.2.1.mp3","VODA_MUS_WEWISHU_Midi_v.2.2.xml","Lyrics_WeWishYou.2.1.xml","Levels_test.xml"));
+
+ songs.push_back(new song("SilentNight/VODA_SilentNight_Backing_v.1.1.1.mp3","SilentNight/VODA_SilentNight_Melody_v.1.1.1.mp3","VODA_SilentNight_Midi_v.1.1.1.xml","Lyrics_WeWishYou.2.1.xml","Levels_WeWishYou.2.1.xml"));
songs.push_back(new song("WeWishYouAMerryChistmas_v.2.1/VODA_MUS_WEWISHU_Backing_v.2.1.mp3","WeWishYouAMerryChistmas_v.2.1/VODA_MUS_WEWISHU_Lead_v.2.1.mp3","VODA_MUS_WEWISHU_Midi_v.2.2.xml","Lyrics_WeWishYou.2.1.xml","Levels_WeWishYou.2.1.xml"));
songs.push_back(new song("DeckTheHalls_v.4.0/VODA_MUS_DeckTheHalls-Backing_v.4.0.mp3","DeckTheHalls_v.4.0/VODA_MUS_DeckTheHalls-Lead_v.4.0.mp3","VODA_MIDI_DeckTheHalls-v.4.0.xml","Lyrics_DeckTheHalls.4.0.xml","Levels_DeckTheHalls.4.0.xml"));
songs.push_back(new song("DingDong.v.2.2/VODA_MUS_DingDong_Backing_v.2.2.mp3","DingDong.v.2.2/VODA_MUS_DingDong_Melody_v.2.2.mp3","VODA_MIDI_DingDong_v.2.2.xml","Lyrics_DingDong.2.2.xml","Levels_DingDong.2.2.xml"));
@@ -74,7 +89,7 @@ void testApp::setup(){
lyricspanel=new Billboard("Lyrics-panel.png",0.5,0.703);
- banner.load("Ribbon/Dublin/Ribbon-Dublin_%05i.png",500);
+ banner.load("Ribbon/Dublin/Ribbon_%05i.png",500);
banner.setAnchorPercent(0.5,0.0);
banner.setFrameRate(50);
banner.play();
@@ -98,11 +113,11 @@ void testApp::setup(){
//mount -t tmpfs -o size=64M tmpfs /RAM
//cp *.m* RAM
- intro.loadMovie("RAM/Game-Demo_v5.mp4");
+ intro.loadMovie("RAM/Game-Demo_v6_DUBLIN.mp4");
intro.setLoopState(OF_LOOP_NONE);
intro.setVolume(0.0);
- advert.loadMovie("RAM/GW2003761_GRY-VFBR055-060_MPEG_hi.mov");
+ advert.loadMovie("RAM/VFxmasAD.mov");
advert.setLoopState(OF_LOOP_NONE);
advert.setVolume(1.0);
@@ -182,6 +197,8 @@ void testApp::update(){
activatePractice();
}
else if (ret==ASTERISK_GAMEOVER) {
+ printf("player hung up!\n");
+ songs[currentsong]->gameOver();
endGame();
}
else if (ret>48&&ret<52) {
@@ -212,6 +229,7 @@ void testApp::update(){
case GAME_ENDPLAYING:
case GAME_ENDINGINTRO:
case GAME_PRACTICE:
+ case GAME_WALKON:
background.update();
banner.update();
wirebirds.update();
@@ -259,7 +277,7 @@ void testApp::draw(){
float hOffs=(ofGetWidth()-ofGetHeight())/2;
float scale=ofGetHeight()/1080.0f;
float bannerscale,aspect,wOffs,seg; //this old chestnut
- float segamt=((float)(ofGetElapsedTimeMillis()-segmentStartTime)*2.0f)/fadelength; //same variable used in all segments
+ float segamt=min(1.0f,((float)(ofGetElapsedTimeMillis()-segmentStartTime)*2.0f)/fadelength); //same variable used in all segments
int hit,missed;
switch(gamestate) {
case GAME_STARTINGINTRO:
@@ -282,9 +300,6 @@ void testApp::draw(){
case GAME_INTRO:
case GAME_ENDINGINTRO:
intro.draw(hOffs,0,ofGetHeight(),ofGetHeight());
- if (intro.getCurrentFrame()==intro.getTotalNumFrames()) {
- gamestate=GAME_READY;
- }
break;
case GAME_READY:
case GAME_STARTPLAYING:
@@ -301,9 +316,6 @@ void testApp::draw(){
drawBackgroundLayers();
break;
}
- else if (segamt>1.0) {
- gamestate=GAME_ADVERT;
- }
else {
//if (!advert.isPlaying()) advert.play();
ofEnableAlphaBlending();
@@ -388,21 +400,21 @@ void testApp::draw(){
//penguin: 11,35,11
//raccoon: 20,39,43r
ofEnableAlphaBlending();
- seg=((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001;
+ seg=(((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001)/6;
wOffs=hOffs+(0.7*ofGetWidth()*seg);
for (int i=0;i<3;i++) (*playanimal)[i].draw(wOffs+(gridX[i+1]*ofGetHeight()),gridY[0]*ofGetHeight(),scale);
- songs[currentsong]->draw(hOffs,scale);//allows the song to fade its volume out and stop playing
+ songs[currentsong]->draw(hOffs,scale);//allows the song to fade its volume out and stop playing, last notes to play out
break;
case GAME_WALKON:
- ofEnableAlphaBlending();
- seg=((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001;
- wOffs=hOffs+(0.7*ofGetWidth()*(1.0f-seg));
- for (int i=0;i<3;i++) (*playanimal)[i].draw(wOffs+(gridX[i+1]*ofGetHeight()),gridY[0]*ofGetHeight(),scale);
- break;
- }
-
-
- //draw tags and logos
+ ofEnableAlphaBlending();
+ seg=(((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001)/6;
+ wOffs=hOffs-(0.7*ofGetWidth()*(1.0f-seg));
+ for (int i=0;i<3;i++) (*playanimal)[i].draw(wOffs+(gridX[i+1]*ofGetHeight()),gridY[0]*ofGetHeight(),scale);
+ break;
+ }
+
+
+ //draw tags and VF logo
switch(gamestate) {
case GAME_STARTINGADVERT:
if (segamt<0.5) {
@@ -429,7 +441,7 @@ void testApp::draw(){
}
logos[0]->draw((gridX[0]*ofGetHeight())+hOffs,0,scale);
break;
- }
+ }
//draw banner, DCC logo and wirebirds
bannerscale=scale;
ofSetColor(255,255,255);
@@ -460,12 +472,16 @@ void testApp::draw(){
break;
case GAME_STARTPLAYING:
case GAME_PLAYING:
- if (showWire) wirebirds.draw(ofGetWidth()/2,ofGetHeight()*birdpoint,scale);
+ if (showWire) wirebirds.draw(ofGetWidth()/2,ofGetHeight()*birdpoint,scale);
bannerscale=scale*0.675;
ofEnableAlphaBlending();
banner.draw(ofGetWidth()*0.5,0,bannerscale);
break;
case GAME_ENDPLAYING:
+ bannerscale=scale*0.675;
+ ofEnableAlphaBlending();
+ banner.draw(ofGetWidth()*0.5,0,bannerscale);
+ break;
case GAME_WALKON:
//DCC LOGO
logos[1]->draw((gridX[0]*ofGetHeight())+hOffs,gridY[1]*ofGetHeight(),scale);
@@ -479,18 +495,27 @@ void testApp::draw(){
case GAME_STARTINGINTRO:
case GAME_INTRO:
case GAME_ENDINGINTRO:
+ if (intro.getCurrentFrame()==intro.getTotalNumFrames()-1) {
+ gamestate=GAME_READY;
+ }
+ break;
case GAME_READY:
break;
case GAME_STARTINGADVERT:
backgroundmusic.setVolume(max(0.0,1.0-(segamt*2.0)));
+ if (segamt==1.0) {
+ gamestate=GAME_ADVERT;
+ }
case GAME_ADVERT:
- if (advert.getCurrentFrame()==advert.getTotalNumFrames()&&gamestate==GAME_ADVERT) {
+ if (advert.getCurrentFrame()==advert.getTotalNumFrames()-1) {
gamestate=GAME_ENDINGADVERT;
segmentStartTime=ofGetElapsedTimeMillis();
}
break;
case GAME_ENDINGADVERT:
backgroundmusic.setVolume(max(0.0,(segamt-0.5)*2.0));
+ if (segamt==1.0) gamestate=GAME_READY;
+ break;
case GAME_STARTPLAYING:
case GAME_PRACTICE:
break;
@@ -501,17 +526,41 @@ void testApp::draw(){
}
break;
case GAME_ENDPLAYING:
- backgroundmusic.setVolume(max(0.0,(segamt-0.5)*2.0));
- if (((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001>6.0) {
+ if ((((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001)>6.0) {
gamestate=GAME_WALKON;
+ segmentStartTime=ofGetElapsedTimeMillis();
switchAnimals();
+ //work out offet and schedule transition to finish at the end of 6 seconds
+ //6 seconds to walk in / out -> 12 seconds turnaround
+ //frames to start/cycle/stop walking
+ //penguin: 11,35,11
+ //raccoon: 20,39,43
+
+ //penguins: 8 cycles + end = 291, diff 180ms (+ 1 frame per cycle? 0ms)
+ //raccoons: 6 cycles + end = diff 230ms (+1 fr/cyc? 90ms)
+ for (int i=0;i<3;i++) {
+ (*playanimal)[i].clear();
+ int numcycles,start;
+ if (playanimal==&penguins) {
+ start=400; //(of 700 cycle)
+ numcycles=7;
+ }
+ else {
+ start=400; //of 780
+ numcycles=5;
+ }
+ (*playanimal)[i].play("Walking",ofGetElapsedTimeMillis()+start);
+ for (int j=0;j<numcycles;j++) (*playanimal)[i].play("Walking");
+ (*playanimal)[i].play("Walk_end");
+ }
}
break;
case GAME_WALKON:
+ backgroundmusic.setVolume(max(0.0,(segamt-0.5)*2.0));
if (((float)(ofGetElapsedTimeMillis()-segmentStartTime))*.001>6.0) {
gamestate=GAME_READY;
segmentStartTime=ofGetElapsedTimeMillis();
- }
+ }
break;
}
}
@@ -573,7 +622,8 @@ void testApp::endGame(){
//penguins: start + 289 = 8.25
//raccoons: start + 280 = 7.17
for (int i=0;i<3;i++) {
- (*playanimal)[i].play("Walk_start");
+
+ (*playanimal)[i].playNow("Walk_start");
for (int j=0;j<9;j++) (*playanimal)[i].play("Walking");
}
}