1

我正在尝试制作一个简单的游戏,让您可以在屏幕上跳跃并跳到平台上,而不会离开屏幕或跌落平台。

到目前为止,我已经设法创建了一个小 2D 正方形,我将其称为我的精灵或角色以及 2 个平台。

我终于让我的精灵向上、向下、向左和向右移动(还没有跳跃)但是我离开屏幕的碰撞并没有像我想象的那样工作......

我正在做的是根据键盘的输入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;
}

实际上并不使用传递给它的xandy参数。

也许你的意思是这样的:

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 回答