1
ここでは、画面上で正方形を動かすために書いたアルゴリズムです.XcenterとYcenterは正方形の中心です。 speedXは水平スピード、speedYは垂直スピードです。角の増減速度
while (true)
{
int keyState = getKeyStates();
// Update the ball's position
xCenter += speedX;
yCenter += speedY;
// Check if the ball hit the bound. 'Reflect' the ball if so.
if (xCenter > xMax)
{
xCenter = xMax;
speedX = -speedX;
}
else if (xCenter < xMin)
{
xCenter = xMin;
speedX = -speedX;
}
if (yCenter > yMax)
{
yCenter = yMax;
speedY = -speedY;
}
else if (yCenter < yMin)
{
yCenter = yMin;
speedY = -speedY;
}
スピードを上げるためのアルゴリズムは何でしょうか。 speedX ++は、水平方向に増加するだけなので、望みの結果は得られません。
ありがとうございます。
方向を同じに保つには、両方のコンポーネントを比例して増やす必要があります。 –
私は知っていますが、私はどのように把握できません。最初にx ++を書いてからy ++を書いた場合、それらは順番にxの方向を変えてからyを順番に実行します。ただし、それらは一緒に発生する必要があります –
速度の概念を方向の概念から分離する必要があります。そのままですが、 'speedX'が-2であれば、' speedX ++ 'は-1に減速します。もう一度やって、四角形が死んで止まる(水平になる)。 –