Пример #1
0
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);
}
Пример #2
0
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;
}
Пример #4
0
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);
            }
        }
    }
}