gpt4 book ai didi

Java 游戏 - 如何让敌人移动?

转载 作者:太空宇宙 更新时间:2023-11-04 07:22:36 25 4
gpt4 key购买 nike

我正在做一个射击游戏,并用数组添加很多敌人,然后给他们在 map 上随机位置,但我不知道如何让他们在到达位置后移动。这是我的敌人类别:

import com.badlogic.gdx.math.Vector2;
import java.util.Random;
public class Enemy {

private static final Random r = new Random();
int x = r.nextInt(36);
int y = r.nextInt(24);
Vector2 vect = new Vector2(x,y);
float ROTATION_SPEED = 500;

public Follower(float SPEED, float rotation, float width, float height,
Vector2 position) {
super(SPEED, rotation, width, height, position);
}

public void advance(float delta, Ship ship) {
if(rotation > 360)
rotation -= 360;

position.lerp(vect, delta);

rotation += delta * ROTATION_SPEED;


super.update(ship);

//Edited: i forget to put this lines:
if(vect.equals(this.getPosition())){
x = r.nextInt(36);
y = r.nextInt(24);

}
}

我应该在这个类中实现什么样的方法来让它们在一定时间后移动x/y值?

最佳答案

当您在没有多线程的情况下使用 Thread.sleep 时,整个游戏将卡住。但您也可以使用 Timer 和 TimerTask 来解决它,这对于初学者来说很容易(您可以之前将其添加到代码中):

import java.util.Timer;

import java.util.TimerTask;

public class Enemy{

Timer t;

public Enemy(){ //in your constructor

t = new Timer();
t.scheduleAtFixedRate(new TimerTask(){
public void run(){
/*here the code for the movement, e.g:
x += 5;
y += 5;*/
}


}, delay, speed); //delay is after which time it should start usually delay is 0, speed is the time in ms e.g. 9

}

}

关于Java 游戏 - 如何让敌人移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19076148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com