好的,所以我一直在关注关于浮动的教程,并使精灵以低于每帧 1 个像素的速度移动。相当容易。现在,我得到以下任务:
在计算新坦克的位置时添加重力影响,使其自动下降,而不是每次都弹到顶部。
我怎么做这个重力的东西?我只学会了如何添加到 x 和 y... 简单地添加到每帧的 y 值当然不能很好地工作,而且不是真正的重力。我真的不明白我在这里应该做什么。
要了解简短教程,请点击此处的链接。这很简单。 http://www.devmaster.net/articles/intro-to-c++-with-game-dev/part6.php
这是我的错误代码,用于使坦克在四个方向上移动并使其在下降时不可见。由于教程,我添加了花车。
Sprite theSprite( new Surface("assets/ctankbase.tga"), 16 );
float SpriteX = 50;
float SpriteY = 0; //the sprite starts at the top of the screen (2D coords system)
float screenBottom = 400; //I'm assuming your screen is 200 pixels high, change to your size
float speedY = 0.01; //the initial speed of the sprite
float accelY = 0.01; //the change in speed with each tick
bool Bottom = false;
void Game::Tick( float a_DT )
{
m_Screen->Clear( 0 );
theSprite.Draw(SpriteX, SpriteY, m_Screen ); // Draws sprite
if(SpriteY >= screenBottom) //when we hit bottom we change the direction of speed and slow it
{
speedY = -speedY/2;
Bottom = true;
}
if(Bottom == false)
{
SpriteY += speedY;
}
speedY += accelY;
}
那么我如何让这个坦克用“重力”在屏幕上弹跳,用更少的延迟代码呢?谢谢。对不起,如果这是一个愚蠢的问题,但我没有看到它。