OpenGL翻译 - 坐标

时间:2013-03-16 14:51:27

标签: opengl glut collision

我正在尝试制作一款简单的游戏,让您可以在不离开屏幕或跌落平台的情况下跳到屏幕上并进入平台。

到目前为止,我已经设法创建了一个2D广场,我称之为我的精灵或角色以及2个平台。

我终于让我的精灵向上,向下,向左和向右移动(没有跳跃)但是我离开屏幕的碰撞不起作用我怎么想...

我正在做的是使用glTranslate(x,y,z)移动我的精灵,这取决于键盘的key输入并测试精灵和屏幕之间的碰撞。不幸的是,我认为我对用于collisionScreen内的翻译的坐标感到困惑。

需要注意的是,无论在何处或何时绘制精灵,我都不能将精灵带到最初绘制精灵的原点ie "0"

1 个答案:

答案 0 :(得分: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;
}

实际上并未使用您传入的xy参数。

也许你的意思是这样的:

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,因为这是此方法的目的。