JavaFX 2 GameTutorial第1部分

介绍

我相信大多数软件开发人员可能会在年轻人(年轻人)一生中的某一时刻被迫创建游戏来帮助他们学习编程语言(我知道我确实做到了)。 以前,我的第一台计算机实际上是Franklin Ace 1000 ,后来是Apple [] 。 在这些系统上开发游戏时,这非常具有挑战性。 对于初学者,您必须学习汇编语言(6502),实际上几乎没有工具来创建精灵(图形资产)。 我认为我最喜欢的一款游戏可能是第一款实时策略(RTS)游戏,是Rescue Raiders (1984)。

让我们向前迈进2012年,此后,计算机,图形工具包,库和游戏引擎已经走了很长一段路。 许多API都会提供很多屏蔽API用户的管道,以便他们可以专注于使游戏变得有趣和刺激。 谈到API JavaFX 2.x不仅是创建美观应用程序的出色UI工具包,而且还可以使游戏变得有趣。 使用JavaFX 2.x,您将能够创建可以消磨时间并带来数小时乐趣的游戏!

图1太空飞船的SVG

长大后我总是对科幻电影如“星球大战”和“ 星际迷航”着迷。 我一直想创建一个简单的顶视图显示游戏(2D),在其中我可以像经典游戏《小行星》一样控制飞船。 但是,随着时间的流逝,一位朋友与我分享了《 星际争霸 1》和《 母巢之战》,我感到非常惊讶。 我真的很喜欢今天的比赛,所以我想采用游戏的某些元素,例如使用鼠标指针和按钮(例如:Terran Battle Cruiser)导航部队和部队。

在此博客文章(第1部分)中,我将简要说明使用简单形状的简单太空船的游戏或导航。 在第1部分(此博客条目)中没有显示代码,而是一个简单的应用程序来演示飞船在最终游戏中的行为。 随着系列的进行,您会注意到渐进式的变化,例如酷炫的精灵,声音等。记住,最后一场比赛将是一艘宇宙飞船,避开敌舰并以声音效果向后射击。 该船将看起来像此博客条目开头所描述的船(图1)。

我想创建一系列博客条目( 六个部分 ),详细介绍如何创建JavaFX 2.x游戏的教程。 。 以下是该系列的简要摘要:

第1部分–简介( 单击此处以运行演示 )
第2部分– 游戏循环
第3部分-输入/(鼠标,键盘) 第4部分–精灵/碰撞 第五部分–声音 第六部分–结论性思想

需求与设计

  • 使用基本形状创建太空飞船的原型。
  • 根据鼠标右键单击的屏幕位置,顺时针或逆时针旋转飞船。
  • 按下主按钮时发射射弹。
  • 显示鼠标按下(x,y)屏幕坐标
  • 显示角度以旋转船头(船前)
  • 显示飞船旋转的方向(顺时针或逆时针)

图2中显示的是一个使用简单形状的简单原型,以帮助我们专注于数学。 一个好的原则是在投入大量时间来绘制图形资产之前,先创建一个功能原型。

图2太空飞船原型
  • (MX,MY)–鼠标按下(x,y)可以协调JavaFX Scene上的空间。
  • (vx,vy)–相对于船心的结束角或鼠标按下(x,y)坐标转换为笛卡尔坐标。
  • (ux,uy)–起始角或上次鼠标按下(x,y)坐标转换为相对于船中心的笛卡尔坐标。
  • U形角:船首旋转角度。 在笛卡尔坐标系(1,0)中,鼻子指向西或零度。 随着船舶逆时针旋转,角度会增加。 当沿顺时针方向移动时,旋转角度将为负数。
  • V角:船头应在其停止位置旋转的角度。 在笛卡尔坐标系(1,0)中,鼻子指向东或零度。 随着船舶逆时针旋转,角度会增加。 当沿顺时针方向移动时,旋转角度将为负数。
  • 方向:旋转船头以顺时针或逆时针旋转船。 当单击鼠标以在小于180度的角度旋转船舶时,船舶将转向鼠标单击,而不是转向大于180度的另一种方式(长距离)。

演示版

要求:

  • Java 7或更高版本
  • JavaFX 2.0或更高版本
  • Windows XP或更高版本(应该很快可用于Linux / MacOS)

飞船导航和武器系统的简单原型。

说明:

  • 右键单击(在Windows上)鼠标以飞船。
  • 主武器(在Windows鼠标上单击鼠标左键)以射击武器。

单击此处运行演示

参考文献

富兰克林Ace –老式计算机:http://www.vintage-computer.com/franklin.shtml

Apple] [ –老式计算机:http://en.wikipedia.org/wiki/Apple_II

救援攻略 –维基百科:http://en.wikipedia.org/wiki/Rescue_Raiders

星球大战 –电影数据库:http://www.imdb.com/title/tt0076759/

星际迷航 –电影数据库:http://www.imdb.com/title/tt0796366/

星际飞船 –维基百科:http://en.wikipedia.org/wiki/Star_Craft

星际飞船母巢之战 –维基百科:http://en.wikipedia.org/wiki/StarCraft:_Brood_War

http://en.wikipedia.org/wiki/Rescue_Raiders

参考:来自我们的JCG合作伙伴 Carl Dea的JavaFX 2 GameTutorial第1部分 ,位于Carl's FX博客上。


翻译自: https://www.javacodegeeks.com/2012/04/javafx-2-gametutorial-part-1.html

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

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

相关文章

虚拟现实-VR-UE4-认识UE4

VR的火热,让每个人都想参与一下, 公司在展会上面搞了一个VR的Demo,关注度超出预期,使得公司高层决定来个VR项目 所以 关于UE4 百度百科地址:http://baike.baidu.com/link?urlmEmbwOcqEuqtkfdu9lNdxVtWAkv0Q6UHZ4VgIHr…

轻松完成Birt报告

这是使用Birt插件在Eclipse中构建报告的完整指南。 Birt或Business Intelligence and Reporting工具是一种无需编写太多Java代码即可生成报告的工具。 如果您使用的是ireport,那么您知道我在说什么:)(晶体报告..毫无意义&#xff…

揭开Python科学计算的面纱

春牛春杖。无限春风来海上。便与春工。染得桃红似肉红。 春幡春胜。一阵春风吹酒醒。不似天涯。卷起杨花似雪花。 标准的Python中用列表保存一组值,可以当做数组使用,但是由于其值类型任意,所以列表中保存的是指针,这样的话保存一…

TeamCity构建依赖项

介绍 构建依存关系的主题既不重要也不是次要的。 各种构建工具从不同的角度处理此主题,从而提供各种解决方案,每种解决方案都有其优点和缺点。 熟悉发行版和快照依赖项的Maven和Gradle用户可能不了解TeamCity快照依赖项,或者认为他们与Maven…

复选框操作checked选中为true,反之为False,也可以赋值为true,false

转载于:https://www.cnblogs.com/shiluoliming/p/6518236.html

从0开始学习 GitHub 系列汇总笔记

本文学习自Stromzhang, 原文地址请移步:从0开始学习 GitHub 系列汇总 我的笔记: 0x00 从0开始学习GitHub 系列之[初识GitHub] GitHub 影响力 a.全球顶级科技公司纷纷加入 GitHub ,并贡献他们自己的项目代码 Google: https://github.com/goog…

SOA示例应用程序

SOA描述了一组用于创建松散耦合的,基于标准的,与业务相关的服务的模式,由于描述,实现和绑定之间的关注点分离,因此提供了新的灵活性。 近年来,至少在参与大多数信息技术活动的人们中,面向服务的…

Repeater 中TextBox 触发TextChanged事件

两种方法 1.TextBox 绑定TextChanged 并设置AutoPostBack "true" &#xff0c;如果不设置AutoPostBack "true"则不会触发TextChanged事件&#xff0c;然后在对应的方法里面循环Repeater查找改变项 部分代码 <ItemTemplate ><tr><td style &…

真机调试问题

1.拔掉插头重新插入 2.转载于:https://www.cnblogs.com/sanvow/p/5633976.html

ANTLR教程– Hello Word

Antlr代表另一种语言识别工具。 该工具能够为任何计算机语言生成编译器或解释器。 除了明显的用途&#xff08;例如需要解析一种真正的“大型”编程语言&#xff0c;例如Java&#xff0c;PHP或SQL&#xff09;外&#xff0c;它还可以帮助执行更小&#xff0c;更常见的任务。 每…

centOS 6.5安装python和nginx

一、安装python3.5 1、安装python3.5 2、安装pip并升级到最新 下载wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz 注意&#xff1a;wget获取https的时候要加上&#xff1a;--no-check-certificate tar zvxf 1.5.5.tar.gz #解压文件 cd pip…

插件化编程实现的一份糖炒栗子~~

迷茫的原因是因为想得太多&#xff0c;做得太少。因为只是 想 真的很容易&#xff0c;转瞬之间就会产生无数个念头&#xff0c;或许是该做点什么了吧。 但是整个人都是懒的&#xff0c;是废的&#xff0c;是大脑控制不住自己的行为的。解决方案唯有一步一步的去把行为变成习惯。…

用C#来学习唐诗三百首和全唐诗

Begin 最近把项目做完了&#xff0c;闲来无事&#xff0c;就想做点好玩的事情&#xff0c;刚好前几天下载了【唐诗三百首】和【全唐诗】这两个txt文件&#xff0c;正好用C#来整理一下。 然后导出QData格式&#xff0c;可以给其他软件读取。 以后弄个开机自动显示一句诗&#xf…

sts java配置tomcat_STS配置Tomcat.9.0

今天&#xff0c;心血来潮&#xff0c;弄了一下STS,按着建立WEB项目的方式建立工程。一、新建工程(FILE --NEW--Dynamic Web project)二、输入项目名称&#xff0c;TestWeb&#xff0c;然后下一步&#xff0c;点击FInish.三、新建index.jsp并打开index.jsp,书写测试成功&#x…

javaweb国际化

根据数据的类型不同&#xff0c;国际化分为2类&#xff1a;静态数据国际化和动态数据的国际化。 静态数据&#xff0c;包括 “标题”、“用户名”、“密码”这样的文字数据。 动态数据&#xff0c;包括日期、货币等可以动态生成的数据。 国际化涉及到java.util.Locale和java.ut…

20145335郝昊《网络攻防》Bof逆向基础——ShellCode注入与执行

20145335郝昊《网络攻防》Bof逆向基础——ShellCode注入与执行 实验原理 关于ShellCode&#xff1a;ShellCode是一段代码&#xff0c;作为数据发送给受攻击服务器&#xff0c;是溢出程序和蠕虫病毒的核心&#xff0c;一般可以获取权限。我们将代码存储到对方的堆栈中&#xff0…

玩转Android之加速度传感器的使用,模仿微信摇一摇

Android系统带的传感器有很多种&#xff0c;最常见的莫过于微信的摇一摇了&#xff0c;那么今天我们就来看看Anroid中传感器的使用&#xff0c;做一个类似于微信摇一摇的效果。 OK ,废话不多说&#xff0c;我们就先来看看效果图吧&#xff1a; 当我摇动手机的时候这里的动画效果…

Java两种设计模式_23种设计模式(11)java策略模式

23种设计模式第四篇&#xff1a;java策略模式定义&#xff1a;定义一组算法&#xff0c;将每个算法都封装起来&#xff0c;并且使他们之间可以互换。类型&#xff1a;行为类模式类图&#xff1a;策略模式是对算法的封装&#xff0c;把一系列的算法分别封装到对应的类中&#xf…

JAXB自定义绑定– Java.util.Date / Spring 3序列化

JaxB可以处理Java.util.Date序列化&#xff0c;但是需要以下格式&#xff1a; “ yyyy-MM-ddTHH&#xff1a;mm&#xff1a;ss ”。 如果需要将日期对象格式化为另一种格式怎么办&#xff1f; 我有同样的问题时&#xff0c;我正在同春MVC 3和Jackson JSON处理器 &#xff0c;最…

双足机器人简单步态生成

让机器人行走最简单的方法是先得到一组步态曲线&#xff0c;即腿部每个关节随时间运动的角度值。可以在ADAMS或3D Max、Blender等软件中建立好机构/骨骼模型&#xff0c;设计出脚踝和髋关节的运动曲线&#xff0c;然后进行逆运动学解算&#xff0c;测量每个关节在运动过程中的转…