因此,我一直在关注 Slick API 2D Game Java 教程的教程,并且掌握了如何使用 API 的基础知识。但是,当我在玩游戏并尝试制作游戏时。我试图在我的 2D 太空射击游戏中实现子弹/射击系统。而且我似乎找不到办法做到这一点!
我试过在 Google 和 YouTube 上四处寻找,但根本没有帮助......!我现在所做的所有游戏就是从右向左移动一艘船。我希望能够做到每次按下空格键时都会发射子弹状物体。我只是不知道该怎么做...我希望有人可以简单地向新程序员解释一下!
我对 Slick 了解不多,但“子弹系统”背后的想法还不错。
除非你想在他们开火时立即命中,你似乎没有这样做,否则你需要做的事情背后的一般想法是这样的。
首先,听空格键按下。发生这种情况时,创建一个新的“子弹”对象。
给这个物体一个运动方向和速度,然后逐渐向那个方向移动。
在移动它时,还要检测它是否与敌人交叉。如果是这样,则移除子弹并杀死敌人。
这是你应该做什么的一个非常基本的想法。
假设您使用轮询输入,您需要update
在空格键的方法中添加一个检查。如果按下空格键,则将 的新实例添加Bullet
到项目符号数组中,并在构造函数中传递初始x
的 ,和 。y
velocity
您的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);
}