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

问题描述 投票:1回答:2

我正在做一个射击游戏,并添加了许多带阵列的敌人,然后在地图上给他们一个随机位置,但我不知道如何让他们在到达他们的位置后移动。这是我的敌人类:

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值?

java

game-physics

2个回答

1

投票

当你在没有多线程的情况下使用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

}

}

0

投票

Thread.sleep是在进行进一步处理之前休眠一段时间的方法。您将很好地开始研究Java中的多线程以轻松解决此类问题。你可以从这里开始:http://docs.oracle.com/javase/tutorial/essential/concurrency/

要立即解决,只需在while循环中编写Thread.sleep()。

热门问题

java游戏移动_java - Java游戏 - 如何让敌人移动? - SO中文参考 - www.soinside.com相关推荐

  1. ldap java 对象 存储_java - 修改UID在LDAP存储库 - SO中文参考 - www.soinside.com

    我使用LdapTemplate对LDAP库开发应用程序的春天启动了获取用户信息. 我使用的用户电子邮件作为UID,当用户更新他的电子邮件,我必须得更新自己的UID.问题是,下面的工作方法,对所有的人域 ...

  2. Java点击按钮加一行数据_java - 单击按钮java时如何从txt文件绘制下一行? - SO中文参考 - www.soinside.com...

    单击按钮java时如何从txt文件绘制下一行? 问题描述 投票:0回答:1 import javax.swing.*; import java.awt.*; import java.awt.event ...

  3. java zoneoffset,java - 如何在java8中获取默认的ZoneOffset? - SO中文参考 - www.soinside.com...

    tl;dr OffsetDateTime.now().getOffset() 但您可能应该使用时区而不是仅仅偏离UTC. ZoneId.systemDefault() Offset versus Ti ...

  4. Java输入字符串输出成语_java - 在Java中,你怎么把这种模式/成语? - SO中文参考 - www.soinside.com...

    我的Java库提供了一个实现类SomethingClient接口SomethingClientImpl.该接口包含将被应用调用,如你所期望的方法. 但是有一个"镜像"接口Somet ...

  5. java实现rle游程编码,java - 我如何解决这个游程编码算法的解释? - SO中文参考 - www.soinside.com...

    对于学校,我必须在java中构建一个使用RLE(行程编码)压缩数组的方法.我无法在网上找到解决方案,因为我的老师希望我自己解决问题.不幸的是,我不能这样做,因为我是一个忙碌的人,有一些繁忙的计划. R ...

  6. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  7. java 大富翁 游戏下载_Java手机游戏大富翁源代码+注释JAVA游戏源码下载

    源码介绍 Java手机游戏豪富翁源代码+注释 (3 folders, 3 files, 3.08 KB, 627.96 KB in total.)      Readme.txt 1.69 ...

  8. java五子棋图片_java五子棋游戏如何加载图片

    展开全部 直接上程序吧: //wuziqi.java import java.applet.Applet; import java.awt.Button; import java.awt.Checkb ...

  9. java五子棋源代码_java 五子棋游戏源码

    [实例简介] [实例截图] [核心代码] package game; import java.applet.Applet; import java.applet.AudioClip; import j ...

最新文章

  1. 训练AI要“什么自行车” 只用了1万辆小破车 | ICCV2021 VIPriors
  2. MySQL 主从复制原理及搭建
  3. jquery 选中单选按钮的值
  4. python堆排序求topn_Java堆排序,取得前TopN个数
  5. Maven的maven-clean-plugin插件详解
  6. ctrl导致开机弹出计算机,Win7系统开机黑屏提示Press Ctrl+Alt+Del to restart如何解决...
  7. 【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)
  8. 终极解密输入网址按回车到底发生了什么
  9. Python_共轭梯度法与最速下降法之间的比较
  10. ImageView的属性android:scaleType
  11. 【POJ3349】Snowflake Snow Snowflakes(哈希表判重,维护一个集合)
  12. 【TSP】基于matlab模拟退火算法求解旅行商问题【含Matlab源码 1129期】
  13. ae渲染出现错误是什么问题_ae渲染提示渲染错误,渲染出现偏移解决方案
  14. svg图标如何修改大小?
  15. 【Python 项目】02 微信定时发送消息
  16. 【上海交大oj】畅畅的牙签袋(状态压缩dp)
  17. 惊!brat安装后进行标注-实战,并且通过一行代码自动标注为BIO格式,便于模型训练-and 错误解决
  18. android基础学习
  19. Redis-入门学习笔记
  20. Spring Boot 中三种跨域场景总结

热门文章

  1. ISME Comm:南农韦中等-菌群移植筑建根际免疫新防线
  2. Nature方法 | 三代长读长宏基因组组装软件metaFlye
  3. P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
  4. 科研经验2:云协作建立实验室工作总结和内部资料共享平台
  5. R语言ggplot2可视化绘制一头奶牛、Linux下使用cowsay打印奶牛(cow)
  6. Python使用matplotlib可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
  7. R语言ggplot2可视化强制设置x轴、y轴坐标的起始点为0或者其他实战
  8. DeepWide推荐系统
  9. 验证曲线( validation curve)是什么?如何绘制验证曲线( validation curve)?验证曲线( validation curve)详解及实践
  10. oracle 表空间初始分配,在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将哪个表空间分配给用户作为默认表空间。...