javafx中的tree_JavaFX中的塔防(5)

javafx中的tree

这是有关使用FXGameEngine在JavaFX中创建塔防游戏的本教程的第5部分。 敌人现在飞向目标的攻击路径,炮塔瞄准并射击。 因此,最重要的部分在那里,但是仍然缺少许多细节。 游戏只是开始,没有给我们准备下一波的机会。 它不显示分数(实际上还没有分数)。 浪潮永无止境,您无法赢或输。 因此,我们需要向HUD和控件添加一些游戏逻辑。 我们还需要查看敌人的损坏状态。 最后一个是功能,我们将在本教程的这一部分中进行介绍。

StackedRenderer

因此,让我们从敌人状态开始。 我们可以将它们添加到额外的HUD层中,因为这就是HUD的用途,但是我准备通过渲染器来实现。 每个精灵都有一个当前的渲染器。 您可以切换渲染器,这就是SpriteActions的功能(我们将在其他教程中介绍),但是您一次只能拥有一个活动的渲染器。 在我们的EnemySprite中,它是LookAheadTileSetAnimation。 为了允许渲染器的组合,可以使用StackedRenderer类。 它允许您堆叠无限数量的Renderer,并在每次方法调用时简单地将它们委托给它们。

因此,我们可以创建一个简单的HealthBarRenderer并使用它:

public class HealthBarRenderer implements Renderer {@Override
public boolean prepare(Sprite sprite, long time) {
return true;
}@Override
public void render(Sprite sprite, GraphicsContext context, float alpha, long time) {
EnemySprite enemySprite = (EnemySprite) sprite;
double health = enemySprite.getHealth();
double maxHealth = enemySprite.getMaxHealth();
if (health == maxHealth) {
return;
}int width = sprite.getWidth();
int height = sprite.getHeight();
double percent = health / maxHealth;
context.setFill( Color.rgb(200,200,200,.5));
context.fillRect(4+(width / 2), 10+(height / 2), (width / 2), 4);context.setFill( Color.rgb(0,255,0,.5));
if (percent < .5) {
context.setFill(Color.rgb(255,255,0,.5));
}
if (percent < .2) {
context.setFill(Color.rgb(255,0,0,0.5));
}
context.fillRect(4+(width / 2), 10+(height / 2), (width / 2 * percent), 4);
}
}

我们在StackedRenderer中使用它:

final TileSetAnimation tileSetAnimation = new LookAheadTileSetAnimation(enemy1, new int[]{0, 1, 2, 3, 4, 5}, 10f);
final StackedRenderer stacked = new StackedRenderer(tileSetAnimation, new HealthBarRenderer());

这就是我们得到的:

在下一部分中,我们将添加HUD。

翻译自: https://www.javacodegeeks.com/2014/03/tower-defense-in-javafx-5.html

javafx中的tree

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android tag定义快捷键,Android Studio快捷键生成TAG、Log.x日志输出介绍

生成TAGlogtTab键&#xff1a;private static final String TAG "Extract";生成Log.d()logdTab键&#xff1a;Log.d(TAG, "onCreate: ");生成Log.e()logeTab键&#xff1a;Log.e(TAG, "onCreate: ",new Throwable());生成Log.i/w类似Log.i(TAG,…

让电流检测更精确的AMR技术

先进的系统需要准确、高效率且可靠的传感器&#xff0c;以取得适当的回馈信息来调节系统运作。不久前《Power Electronics News》(编按&#xff1a;EE Times出版集团ASPENCORE旗下刊物)与美商ACEINNA副总裁John Newton、技术长Mike Horton一起讨论了电流检测问题。 1 Newton表…

选购安防交换机时需要注意哪些误区?

一般来说&#xff0c;家庭、办公室、学校、小型监控等简易网络环境设计&#xff0c;都是使用的安防交换机&#xff0c;也是比较常用的&#xff0c;我们在购买安防交换机的时候&#xff0c;其实是有很多误区的&#xff0c;很多人都不知道&#xff0c;导致购买到了劣质的产品&…

【渝粤教育】国家开放大学2018年秋季 2247T社会工作政策法规 参考试题

试卷代号&#xff1a;2322 物流信息技术试题 2019年1月 一、单项选择题&#xff08;每小题1分&#xff0c;共10分&#xff0c;将正确答案选项的字母填入括号内&#xff09; 1&#xff0e;( )是存放在计算机存储设备中的以一种合理的方法组织起来的&#xff0c;与公司或组织的 业…

5G三兄弟NB-IoT排老几?NB-IoT介绍

5G 作为一个大家长&#xff0c;家里有三兄弟&#xff1a;LTE&#xff08;授权频道&#xff09;、LTE-U&#xff08;非授权频道&#xff09;、NB-IOT&#xff08;授权频道&#xff09;。就像是最近爆火的揭露现实中国家庭的电视剧《都挺好》中&#xff0c;苏家的三兄弟一样。作为…

Java中的CopyOnWriteArrayList

介绍&#xff1a; Java中的CopyOnWriteArrayList是List接口的线程安全实现。 它属于java.util.concurrent包&#xff0c;是ArrayList实现的增强版本。 顾名思义&#xff0c; CopyOnWriteArrayList为每个add&#xff08;&#xff09;或set&#xff08;&#xff09;操作创建基础…

[渝粤教育] 广东-国家-开放大学 10180k2_统计基础_21秋考试

1、次数分配数列是&#xff08;&#xff09;。&#xff08;2 分&#xff09; A&#xff0e;按数量标志分组形成的数列 B&#xff0e;按品质标志分组形成的数列 C&#xff0e;按统计指标分组所形成的数列 D&#xff0e;按数量标志和品质标志分组所形成的数列 2、下列指标中属于时…

POE交换机技术及优势介绍

PoE交换机就是支持对网线供电的交换机&#xff0c;和普通交换机相比就是受电终端&#xff08;比如AP、数字摄像头等&#xff09;不用再进行电源布线&#xff0c;对整个网络而言可靠性更高。今天&#xff0c;飞畅科技的小编在这里为大家详细介绍下POE交换机的技术及优势&#xf…

物联网的下一步动作会是什么?

​物联网发展最初的技术成熟度曲线只是基于已部署和潜在传感器的数量增加。如今&#xff0c;我们可以展望未来&#xff0c;探讨一些重要的成功因素。物联网的未来趋势包括物联网应用&#xff0c;会给最终客户带来经济效益。还有一个趋势是电池使用寿命更长&#xff0c;能持续数…

[渝粤教育] 广东-国家-开放大学 10259k2_经济学基础_21秋考试

单项选择题 1、基数效用是指&#xff08; &#xff09;&#xff08;2 分&#xff09; A&#xff0e;效用是可以计量并加总求和的 B&#xff0e;效用不可计量&#xff0c;也不能加总求和 C&#xff0e;效用是可以比较的 D&#xff0e;效用只能用序数来表示 2、下列哪种情况所对应…

无线网络拓扑结构简析

拓扑一词源自几何学&#xff0c;原意是指研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。它只考虑物体间的位置关系而不考虑它们的形状和大小。而我们耳熟能详的网络拓扑&#xff0c;则描述的是网络中不同节点之间如何相互连接和通信。 现代网络由许多不…

织梦模板不支持html,html中{}是什么样的模板?如何使用它?HTML5template模板标签是什么?html常用的字体样式是什么?dede后台文件为什么不能生成html?...

html中{}是什么样的模板?如何使用它?HTML5template模板标签是什么?html常用的字体样式是什么?dede后台文件为什么不能生成html?我们经常遇到这些问题&#xff0c;下面就和小编一起来看看吧!html中{}是什么样的网站模板?如何使用它?你的这个html代码中嵌入了angular的表现…

[渝粤教育] 广东-国家-开放大学 21秋期末考试Java程序设计基础10232k2

1、下列关于线程状态转换的描述中&#xff0c;错误的是&#xff08; &#xff09;&#xff08;2 分&#xff09; A&#xff0e;死亡状态下的线程调用start()方法可以使其重新进入就绪状态 B&#xff0e;线程获得CPU使用权后会从就绪状态转换成运行状态 C&#xff0e;线程失去CP…

以太网交换机性能测试丢包的原因?

在工业以太网交换机性能测试过程中&#xff0c;我们经常会遇到非设备性能因素导致的丢包&#xff0c;对测试产生困扰。那么&#xff0c;以太网交换机性能测试丢包的原因有哪些呢&#xff1f;在这里杭州飞畅科技的小编简单罗列几种&#xff0c;一起来看看吧&#xff01; 1、测试…

ZigBee与智慧家居-ZigBee方案

看过电影《钢铁侠》的朋友应该对影片里面小唐尼的别墅“自由之城”不会陌生&#xff0c;不论是充满未来科技感的整体外观设计&#xff0c;还是以智能AI“贾维斯”为核心的智能系统&#xff0c;无不让人产生一种想要切身体会的冲动。其实&#xff0c;在万物互联的浪潮下&#xf…

[渝粤教育] 广东-国家-开放大学 21秋期末考试互联网金融(本)10575k1

单项选择题 1、网络保险能解除传统保险中客户与保险机构的时间、空间制约主要体现的方式是&#xff08; &#xff09; &#xff08;2 分&#xff09; A&#xff0e;一个网址 B&#xff0e;一对多 C&#xff0e;一对一 D&#xff0e;一个服务器 2、P2P网络借贷是&#xff08; &a…

slf4j 桥接与被桥接_合成和桥接方法

slf4j 桥接与被桥接如果您曾经玩过反射并执行了getDeclaredMethods()您可能会感到惊讶。 您可能会获得源代码中不存在的方法。 或者&#xff0c;也许您看了一些方法的修饰符&#xff0c;发现其中一些特殊方法是易变的。 顺便说一句&#xff1a;对于Java采访来说&#xff0c;这是…

隔离电源模块的5个作用

在工业控制设备中&#xff0c;有时候要求两个系统之间的电源地线隔离&#xff0c;如隔离地线噪声、隔离高共模电压等&#xff0c;采用带变压器的直流变换器&#xff0c;将两个电源之间隔开&#xff0c;使他们相互独立&#xff0c;从而实现以上目的&#xff01;每个隔离电源模块…

[渝粤教育] 广东-国家-开放大学 21秋期末考试基础会计10258k2

1、在登记账簿时&#xff0c;红色墨水不能用于&#xff08;&#xff09;。 &#xff08;2 分&#xff09; A&#xff0e;更正错账 B&#xff0e;记账 C&#xff0e;结账 D&#xff0e;冲账 2、下列凭证中属于自制原始凭证的是&#xff08;  &#xff09;。&#xff08;2 分&a…

html纵向滚动特效,带视觉差效果的垂直全屏整页滚动特效

这是一款效果非常炫酷的带视觉差效果的垂直全屏整页滚动特效。该特效使用jQuery和CSS3完成&#xff0c;用户可以通过滚动鼠标来一次垂直切换一个页面&#xff0c;在页面切换的时候还带有一些视觉差特效。使用方法HTML结构这个特效的HTML结构使用一个作为包裹容器。里面每一个是…