void PropsDemo::updateScene(float dt) { mTime += dt; mGfxStats->update(dt); gDInput->poll(); // Fix camera to ground or free flying camera? if( gDInput->keyDown(DIK_N) ) mFreeCamera = false; if( gDInput->keyDown(DIK_M) ) mFreeCamera = true; if( mFreeCamera ) { gCamera->update(dt, 0, 0); } else { gCamera->update(dt, mTerrain, 2.5f); } mWater->update(dt); }
void WaterDemo::updateScene(float dt) { mGfxStats->update(dt); gDInput->poll(); gCamera->update(dt, 0, 0); mWater->update(dt); }
static void idle (void) { static float cTime = 0.0; camera.update(mouseX, mouseY); water.update(cTime); glutPostRedisplay(); cTime += 0.02f; }
void Level::update(float dt) { float Spread = 0.1; for(unsigned int i = 0; i < waterBlock->count(); i++) { Water *w = (Water *)waterBlock->objectAtIndex(i); w->update(dt); } //iteration speed and position for(int j = 0; j < 3; j++) { //adjust velocity for(unsigned int i = 0; i < waterBlock->count(); i++) { Water *w = (Water*)waterBlock->objectAtIndex(i); if(i > 0) { Water *lw = (Water *)waterBlock->objectAtIndex(i-1); leftDelta[i] = Spread*dt*(w->getPosition().y-lw->getPosition().y); lw->velocity.y += leftDelta[i]; } if(i < waterBlock->count()-1) { Water *rw = (Water*)waterBlock->objectAtIndex(i+1); rightDelta[i] = Spread*dt*(w->getPosition().y-rw->getPosition().y); rw->velocity.y += rightDelta[i]; } } //adjust Height for(unsigned int i = 0; i < waterBlock->count(); i++) { if(i > 0) { Water *lw = (Water*)waterBlock->objectAtIndex(i-1); CCPoint old = lw->getPosition(); old.y += leftDelta[i]; lw->setPosition(old); } if(i < waterBlock->count()-1) { Water *rw = (Water*)waterBlock->objectAtIndex(i+1); CCPoint old = rw->getPosition(); old.y += rightDelta[i]; rw->setPosition(old); } } } }