我正在尝试制作一款简单的游戏,让您可以在不离开屏幕或跌落平台的情况下跳到屏幕上并进入平台。
到目前为止,我已经设法创建了一个2D广场,我称之为我的精灵或角色以及2个平台。
我终于让我的精灵向上,向下,向左和向右移动(没有跳跃)但是我离开屏幕的碰撞不起作用我怎么想...
我正在做的是使用glTranslate(x,y,z)
移动我的精灵,这取决于键盘的key
输入并测试精灵和屏幕之间的碰撞。不幸的是,我认为我对用于collisionScreen
内的翻译的坐标感到困惑。
需要注意的是,无论在何处或何时绘制精灵,我都不能将精灵带到最初绘制精灵的原点ie "0"
。
答案 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;
}
实际上并未使用您传入的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
,因为这是此方法的目的。