0

因此,我一直在关注 Slick API 2D Game Java 教程的教程,并且掌握了如何使用 API 的基础知识。但是,当我在玩游戏并尝试制作游戏时。我试图在我的 2D 太空射击游戏中实现子弹/射击系统。而且我似乎找不到办法做到这一点!

我试过在 Google 和 YouTube 上四处寻找,但根本没有帮助......!我现在所做的所有游戏就是从右向左移动一艘船。我希望能够做到每次按下空格键时都会发射子弹状物体。我只是不知道该怎么做...我希望有人可以简单地向新程序员解释一下!

4

2 回答 2

5

我对 Slick 了解不多,但“子弹系统”背后的想法还不错。

除非你想在他们开火时立即命中,你似乎没有这样做,否则你需要做的事情背后的一般想法是这样的。

首先,听空格键按下。发生这种情况时,创建一个新的“子弹”对象。

给这个物体一个运动方向和速度,然后逐渐向那个方向移动。

在移动它时,还要检测它是否与敌人交叉。如果是这样,则移除子弹并杀死敌人。

这是你应该做什么的一个非常基本的想法。

于 2013-01-14T02:06:49.910 回答
1

假设您使用轮询输入,您需要update在空格键的方法中添加一个检查。如果按下空格键,则将 的新实例添加Bullet到项目符号数组中,并在构造函数中传递初始x的 ,和 。yvelocity

您的Bullet课程可能类似于:

public class Bullet
{
    public static float VELOCITY;
    private Vector2f position;

    public Bullet(float x, float y, float velocity)
    {
        position = new Vector2f(x, y);

        VELOCITY = velocity;
    }

    public void update(float delta, boolean vertical)
    {
        if(vertical)
        {
            y += VELOCITY * delta;
        }
        else
        {
            x += VELOCITY * delta;
        }
    }
}

您还需要在方法中为项目符号调用更新update方法。使用以下方法执行此操作:

for(Bullet bullet : bullets)
{
    bullet.update(delta, true);
}
于 2013-01-14T05:42:54.353 回答