在突破游戏中防止蝙蝠超出界限?

时间:2015-05-17 16:04:24

标签: java

我正在为分配工作进行突破性游戏,对于第2部分,我需要包含阻止蝙蝠移出边界的代码。我非常确定我需要使用if语句,但我不知道究竟应该把它放在括号内的其他内容(这样可以使蝙蝠移动)。我

这是我正在谈论的代码。

if (dist < 0) 
    {
    }
    else
    {} // move

    if ((dist + 150)> 600)
    {
    }
    else
    {} // move

(第2部分在ModelBreakout类中)。

有许多课程和代码的许多不同部分与蝙蝠的运动有关,我不知道该部分使用什么,我会很感激我的一点点需要做的!

编辑:我删除了所有课程,因为人们在抱怨。如果您想查看课程,请转到this页面并向下滚动到标题迷你项目:BreakOut游戏。

感谢您的帮助。我不是在找任何人为我做我的工作,我只想得到一些指导,我已经知道我需要做一个if语句,我只是不确定我是什么需要把它放进去。

2 个答案:

答案 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* )
}

你也可以为最大宽度做同样的事情。此外,如果您执行此类简单修复,请确保更改屏幕的刷新率,否则您将看到蝙蝠跳转到新位置。