我正在为分配工作进行突破性游戏,对于第2部分,我需要包含阻止蝙蝠移出边界的代码。我非常确定我需要使用if语句,但我不知道究竟应该把它放在括号内的其他内容(这样可以使蝙蝠移动)。我
这是我正在谈论的代码。
if (dist < 0)
{
}
else
{} // move
if ((dist + 150)> 600)
{
}
else
{} // move
(第2部分在ModelBreakout类中)。
有许多课程和代码的许多不同部分与蝙蝠的运动有关,我不知道该部分使用什么,我会很感激我的一点点需要做的!
编辑:我删除了所有课程,因为人们在抱怨。如果您想查看课程,请转到this页面并向下滚动到标题迷你项目:BreakOut游戏。
感谢您的帮助。我不是在找任何人为我做我的工作,我只想得到一些指导,我已经知道我需要做一个if语句,我只是不确定我是什么需要把它放进去。
答案 0 :(得分:1)
TL; DR
我最近创建了一个类似的游戏。这是我实现它的方式。
球拍类
protected static final float MIN_X = 10;
protected static final float MAX_X = 590;
public void moveLeft()
{
if (x > MIN_X)
{
x -= 5;
}
}
public void moveRight()
{
if (x < MAX_X)
{
x += 5;
}
}
播放器扩展了球拍
public void process(int key)
{
if (key == KeyEvent.VK_KP_LEFT || key == KeyEvent.VK_LEFT)
{
moveLeft();
}
else if (key == KeyEvent.VK_KP_RIGHT || key == KeyEvent.VK_RIGHT)
{
moveRight();
}
}
编辑:这不是完整的课程。这只是从他们身上取出的一些物品。在游戏中添加了一个关键的监听器,它将密钥传递给Player.process()。
编辑2:更新了我的代码。您的宽度设置为600,因此边界可以是10和590.这应该适合您
答案 1 :(得分:1)
查看类,屏幕上的每个对象都有内置的方法,所以你可以这样做:
If( Bat.GetX() < 0 ) {
Bat.moveX( *INSERT THE X HERE* )
}
你也可以为最大宽度做同样的事情。此外,如果您执行此类简单修复,请确保更改屏幕的刷新率,否则您将看到蝙蝠跳转到新位置。