ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

壁で反射

ボールが壁で反射する処理は、ボールの移動速度を反転してやれば良い。
たとえば、X軸に平行な壁なら、X軸方向の速度を反転する。
画面の上下左右の壁で反転する処理は次のような感じ。

float x; // x座標
float y; // y座標
float vx; // x速度
float vy; // y速度

void move()
{
    if ( x < 0.0f ||
         x > SCREEN_WIDTH )
    {
        vx *= -1.0f;
    }
    if ( y < 0.0f ||
         y > SCREEN_HEIGHT )
    {
        vy *= -1.0f;
    }

    x += vx;
    y += vy;
}