[英]How can I make an object move randomly
我正在做一個游戲,在該游戲中,我會在屏幕頂部生成敵人,然后將敵人向下移動到屏幕底部。 我想讓它們隨機移動。
public void move_randomly(){
int random_x_pos = rd.nextInt(700);
if (xPos < random_x_pos){
xPos += get_speed();
if (xPos >= random_x_pos){
// get a new x position
}
}
if (xPos > random_x_pos){
xPos -= get_speed();
if(xPos >= random_x_pos){
// get a new x position
}
}
yPos += get_speed(); //makes the object keep moving down
}
問題是必須在無限循環內調用此方法,該循環不斷刷新屏幕,因此random_x_position變量始終在變化。 我希望給定的隨機X位置被“保存”,直到對象到達該位置,然后再對其進行更改。
您可以只創建一個類變量並存儲實例,直到需要更改它為止。 創建類時,您將初始化變量,然后根據需要對其進行更新。 它可能看起來像:
public class YourClass{
int random_x_pos;
publice YourClass(){
random_x_pos = rd.nextInt(700);
}
...
public void moveRandomly(){
//use your variable
random_x_position...
if(conditionMet){
random_x_postion = rd.nextInt(700);
}
}
...
}
您需要使用某種“冷卻”方式,以便它在該方向上移動一定的時間。 您可以使用System.currentTimeMillis()檢查冷卻時間是否已耗盡。
protected double moveCoolDownTime=.2*1000;
public void randomMove() {
double currentTime=System.currentTimeMillis();
if ((currentTime-movedTime)>=moveCoolDownTime) {
speed=random.nextInt(10)-10;
}
movedTime=currentTime;
}
}
//in your update method
xPos -= get_speed();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.