javafx2_JavaFX 2 GameTutorial第1部分

javafx2

介绍

我相信大多数软件开发人员可能会在年轻人(年轻人)生活的某一时刻被迫创建游戏来帮助他们学习编程语言(我知道我曾经做过)。 以前,我的第一台计算机实际上是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

javafx2

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

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

相关文章

webstorm最新破解方法

方法来自 Rover12421 大神。 1.从官网下载WebStorm2016.1安装。 2.下载 破解补丁 并解压,记住路径 3.编辑WebStorm安装目录下 bin 文件夹中的 WebStorm.exe.vmoptions 与 WebStorm64.exe.vmoptions 文件, 在头部加上 -javaagent:D:\Program Files (x86)\…

ajax 页面无刷新,Ajax的页面无刷新实现详解(附代码)

这次给大家带来Ajax的页面无刷新实现详解(附代码),Ajax页面无刷新实现的注意事项有哪些,下面就是实战案例,一起来看一下。ajax (ajax开发)AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页…

运营管理最新版史蒂文森_运营增长人都在看的硬核案例拆解是怎么做的?

你会拆案例吗?大部分运营增长人听到这个问题都会愣一下,心想这有什么会拆不会拆的?看一下活动规则,把流程走一遍,不就可以了?当马上要做活动但又没思路缺灵感时,我们通常会试着先去关注一下相关…

pc网站和移动网站在同一服务器吗,机动都市阿尔法PC服和移动服互通吗

机动都市阿尔法PC服已经开启了,很多小伙伴想知道这个PC服和移动服有什么区别,互通情况怎么样,下面就是机动都市阿尔法PC服和移动服互通的具体内容,一起来看看吧。PC服和移动服互通吗国服PC版开启时,将额外增设一个独立…

teamcity_TeamCity构建依赖项

teamcity介绍 构建依赖关系的主题既非琐碎的,也非次要的。 各种构建工具从不同的角度处理此主题,从而提供了各种解决方案,每种解决方案都有其优点和缺点。 熟悉发行版和快照依赖关系的Maven和Gradle用户可能不了解TeamCity快照依赖关系&…

刷新器-Java EE 7后端十大功能

这是我的Java EE 7小知识系列的第二部分。 在进行简要介绍的第一个介绍之后,我决定请Arjan Tijms撰写有关Java EE 7中他最喜欢的新后端功能的文章。如果您关注Java EE领域,您将知道Arjan。 他是Java EE开发人员,JSF和Security EG的长期成员&a…

spark官方文档_这些未在 Spark SQL 文档中说明的优化措施,你知道吗?

本文来自上周(2020-11-17至2020-11-19)举办的 Data AI Summit 2020 (原 SparkAI Summit),主题为《Spark SQL Beyond Official Documentation》的分享,作者 David Vrba,是 Socialbakers 的高级机器学习工程师。实现高效的 Spark 应用程序并获…

一键对频对讲机好吗_挑战传统,新型对讲机展现独特一面--极蜂智能网络对讲机...

说起对讲机你首先想到的是什么样子的,是香港电影中警察佩戴的那种,还是国内建筑工地上使用的傻大粗那种,不过无论是哪种形状的,现实中确实非常的实用。不过随着科技的发展,很多不可能的事情已经变为现实,而…

提防Java中的函数式编程!

这对函数式编程并不会造成太大的影响,这真棒。 这是关于某些实践的警告,您很可能会将其应用于您的代码,而这完全是错误的! 。 高阶函数对于函数式编程是必不可少的,因此,谈论它们将帮助您成为聚会中的焦点…

LoadRunner脚本增强技巧之检查点

检查点的设置理解起来非常简单,就是要在服务器返回的页面中检查是否存在关键信息。检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误。检查点的设置通常分为两种,一种是对文字的检查&#xff0…

Spark简介,您的下一个REST Java框架

希望今年您对Java的热情很高! 今天,我们将研究一个清新,简单,美观且实用的框架,以Java编写REST应用程序。 它将非常简单,甚至根本不会看起来像Java。 我们将研究Spark Web框架。 不,它与Apache…

SQL Search

Press TAB to expand wildcard tab键之后,会自动展开,直接枚举表中所有的字段 根据名字查找存储过程,发现找不到 原因是,本地是一个备份库。服务器上通过sql source control进行版本控制的。 在通过sql source control将服务器上新…

Python异常处理和进程线程

写在前面 最坏的结果,不过是大器晚成; 一、异常处理 - 1.语法错误导致的异常 - 这种错误,根本过不了python解释器的语法检测,必须在程序运行前就修正; - 2.逻辑上的异常 - 即逻辑错误,例如除零错误&#xf…

在Oracle中使用JDBC插入功能

介绍 在本文中,我将显示一个示例,说明如何使用Oracle支持的JDBC批量插入功能,这些功能特定于Oracle。 有关为什么可能希望一般使用批量插入的更多详细信息,例如,在某些情况下需要考虑性能,请参阅Joormana …

Vue+ECharts的小示例

VueECharts做数据可视化1. Vue Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现…

汇编学习笔记(3)-80x86指令集

前言 (1)指令的一般格式 [标号:] 助记符 [操作数1 , [操作数2]] [; 注释] 一行一条指令 助记符就是指令的名称,每条指定必定有个助记符。 助记符前面的标号是给汇编编译器看的,由我们自己取名,一般取表示本…

osg 三维gis开发_三维GIS平台的可视化应用 (下)

上一篇主要对三维GIS的基础数据和三维模型进行了一点说明,本篇将接着聊剩下的部分,主要是三维GIS平台能够支持什么样的场景展示,并来对平台的应用进行一些介绍。没看过上篇的朋友可以先了解一下再看本篇:MonoLog:三维G…

前端HTML介绍

一、HTML简介HTML定义:  超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符&#xff…

solr创建索引_Solr:创建拼写检查器

solr创建索引在上一篇文章中,我谈到了Solr Spellchecker的工作原理,然后向您展示了其性能的一些测试结果。 现在,我们将看到另一种拼写检查方法。 与其他方法一样,此方法使用两步过程。 相当快速的“候选单词”选择,然…

带有Javaslang的Java 8中的功能数据结构

Java 8的lambda(λ)使我们能够创建出色的API。 它们令人难以置信地提高了语言的表达能力。 Javaslang利用lambda来基于功能模式创建各种新功能。 其中之一是功能性集合库,旨在替代Java的标准集合。 (这只是鸟瞰图,您…