1

画面を離れたり、プラットフォームを通り抜けたりすることなく、画面を飛び回ったり、プラットフォームにジャンプしたりできるシンプルなゲームを作ろうとしています。

これまでのところ、2つのプラットフォームとともに、スプライトまたはキャラクターと呼ばれる小さな2Dの正方形を作成することができました。

ついにスプライトを上下左右に動かしました(まだジャンプしていません)が、画面を離れるための衝突が思ったように機能していません...

私がやっていることは、キーボードからglTranslate(x,y,z)の入力に応じてスプライトを移動し、key前にスプライトと画面の間の衝突をテストするために使用しています。残念ながら、私の内部の翻訳に使用されている座標と混同されていると思いますcollisionScreen

注意すべき点は、ie "0"スプライトが描画された場所やタイミングに関係なく、スプライトが最初に描画された場所の原点を超えてスプライトを取得できないことです。

4

1 に答える 1

1

のようだ:

void collisionScreen (int x, int y)
{
    //stops sprite leaving current screen size
    if(x_pos < 0 || x_pos+s1_W > winX)
        x_pos -= x_pos;
    if(y_pos < 0 || y_pos+s1_H > winY)
        y_pos -= y_pos;
}

渡したパラメータxと実際には使用しません。y

おそらくあなたはこのようなことを意味しました:

void collisionScreen (int x, int y)
{
    //stops sprite leaving current screen size
    if(x_pos < 0)
        x_pos = 0;
    else if(x_pos+s1_W > winX)
        x_pos = winX - s1_W;

    if(y_pos < 0)
        y_pos = 0;
    else if(y_pos+s1_H > winY)
        y_pos = winY - s1_H;
}

0また、このメソッドが実行するように設計されているため、スプライトは通過しません。

于 2013-03-16T15:20:10.797 に答える