所以,我一直在关注Slick API 2D Game Java教程的教程,并且我已经掌握了如何使用API的基础知识。但是,当我在玩游戏并尝试制作游戏时。我试图在我的2D太空射击游戏中实现子弹/射击系统。我似乎找不到办法做到这一点!
我试过在谷歌和YouTube上四处寻找,但它根本没有帮助......!我现在所有的游戏都是从右到左移动一艘船。我希望能够做到这一点,以便每次按下空格键时都会触发类似子弹的对象。我只是不确定如何去做...我希望有人可以简单地向新程序员解释它!
答案 0 :(得分:5)
我对Slick知之甚少,但“子弹系统”背后的想法并不是那么糟糕。
除非你想要在他们开火时立即点击,这似乎不是你所做的,你需要做的背后的一般想法是这样的。
首先,听一下空格键。发生这种情况时,请创建一个新的“子弹”对象。
为此物体指定移动方向和速度,然后逐渐向该方向移动。
移动它时,还会检测它是否与敌人交叉。如果确实如此,则移除子弹并杀死敌人。
这是你应该做什么的一个非常基本的想法。
答案 1 :(得分:1)
假设您正在使用轮询进行输入,则需要在空格键的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
方法中调用bulelts的更新方法。通过以下方式执行此操作:
for(Bullet bullet : bullets)
{
bullet.update(delta, true);
}