搜索
首页web前端js教程使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑

使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑

钥匙要点

  • 游戏循环是任何游戏的心跳,是一个每秒运行多次的函数,并且有两个主要作业
  • 更新正在发生的事情并绘制新场景。 Easeljs ticker类用于管理游戏循环的时间安排,暂停/恢复游戏循环并测量经过的时间。
  • 游戏逻辑涉及添加用于发射镜头,更新显示器,移动射击,处理命中和结束游戏的功能。 easeLjs displayObjects支持一个hittest()方法,这使得可以轻松查看当前对象的位置是否存在点。
这是四个星期内四个帖子的系列中的第三部,它将向您展示如何使用HTML5,JavaScript,Winjs和CreateJS创建一个简单的Windows 8游戏。 该游戏基于XNA样本游戏“弹射战争实验室”。当我们为Windows 8开发基于Web技术的Windows 8的新版本时,我们将重复使用该游戏的资产。 在这篇文章中,我们将使用一些游戏逻辑和JavaScript将事物栩栩如生。

游戏循环

任何游戏的心跳是游戏循环。  这是一个每秒多次运行的函数,并具有两个主要作业 - 更新发生的事情,然后绘制新场景。 在第2部分中,我们已经进行了大纲: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 现在的问题是,我们如何启动gameloop()函数并保持每秒多次运行?

easeljs ticker class

幸运的是,Easeljs的股票类别具有我们将使用的一些功能:
  • 管理游戏循环的时机
  • 暂停/恢复游戏循环
  • 测量经过的时间
这是一个静态类,因此我们可以开始使用它。  在default.js中,添加一个新的startGame()函数,并在prepargame()末尾调用它: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 在这里,我们告诉使用window.requestanimatimationframe来控制Gameloop函数的频率。 requestAnimationFrame是Web应用程序的相对较新的API,可帮助确保不必要地完成工作。  要了解为什么这比设置固定计时器(例如使用Settimeout())更好,请参见IE测试驱动器网站上的RequestAnimationFrame样本。 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 每当RequestAnimationFrame准备就绪时,我们的游戏循环都会运行。

“准备好,瞄准,开火!”

好的,现在我们有一个游戏循环的游戏,所以是时候添加一些乐趣了! 每个玩家/弹射器都将向另一个发射弹药/岩石。  我们需要知道目前是否开枪,转弯是谁以及镜头的移动方式。 首先,让我们添加更多变量到default.js: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 现在,让我们通过将以下内容添加到update()函数: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 目前,两个玩家都会自动发射(以随机的速度发射)。  AmmobitMap移至射击弹射器的顶部中心,并在有界范围内给予射速值(按屏幕分辨率调整)。 我们还将添加一个fireshot()功能以显示镜头并告诉游戏中的游戏: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑  

更新显示

在我们在空中移动镜头之前,让我们专注于游戏循环方程式的第二半部分 - 绘制到屏幕上。  这通常非常复杂,但是Easeljs阶段会照顾我们的内容(所有孩子 - 位图,文字等 - 我们添加到舞台上),因此我们需要:这就是我们所需要的: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 就是这样!  如果您运行游戏,则玩家1将自动开枪,而射门将出现在红色弹射器上… 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 …但是它不会让人感到不安。  让我们走动。

移动射击

让我们返回到update()函数,然后将逻辑添加到if(shotFlying)语句中: 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 不要运行它,我们仍然需要两个功能,但这是发生的事情:
  • 线149&150 - 通过添加速度(可能为负数和/或左)移动镜头
  • 第151行 - 将重力应用于慢速
  • 线153-155 - 镜头是否撞到了屏幕的左侧或右边缘?
  • >第157-160行 - 错过 - 结束射门和更改播放器
  • >
  • >行162-168 - 播放器1的射门 - 查看是否命中播放器2。如果是,则更新玩家2的生活。
  • 行169-175 - 播放器2的射门 - 查看是否命中播放器1。如果是,则更新玩家1的生活。
  • >
  • 让我们添加校园(位图) 功能:
  • 关于Hittest的话题是什么?  easeljs displayObjects(基于哪个位图)支持hittest()方法,这使得很容易查看当前对象的位置是否存在点。  不幸的是,我们正在缩放对象,而Hittest仅适用于原始尺寸,因此我们需要检查自己的命中率。  只是一点点数学,我们已经设定了。
处理命中使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 现在,添加

processHit()

函数: 这只是结束射门,改变玩家,并确保游戏还没有结束。 结束游戏使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 让我们结束游戏结束这篇文章。  添加最终游戏(图像)函数:

就是这样!  现在,您可以运行游戏,看看谁获胜。

使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑下一步是什么?使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑 我们在这一部分中增加了很多东西 - 事情正在绘画,移动,击球,结局……但是有两个张开的孔。  首先,播放器实际上没有玩,因此我们将接下来添加输入处理。  其次,事情非常安静,尤其是对于战争,所以我们也会折腾一些声音。 到第4部分:下周!

经常询问有关使用JavaScript创建简单Windows 8游戏的问题

>如何开始使用Windows 8的JavaScript创建游戏?您还需要安装Visual Studio,这是Windows 8应用程序的开发环境。拥有这些先决条件后,您可以首先在Visual Studio中创建一个新项目并选择“空白应用程序”模板。从那里,您可以开始在JavaScript中编写游戏逻辑,并使用HTML5和CSS设计游戏界面。

>

>我可以使用JavaScript创建的游戏示例是什么?可以用来创建各种游戏的编程语言。一些示例包括益智游戏,策略游戏,平台游戏,甚至3D游戏。可能性是无穷无尽的,借助正确的工具和资源,您可以创建您可以想象的任何类型的游戏。

>如何在JavaScript游戏中添加互动性?这些是发生特定事件时会触发的功能,例如鼠标单击或按键按下。例如,当用户单击游戏元素或“ onkeydown”事件时,您可以使用“ onclick”事件触发功能测试和调试我的JavaScript游戏?

测试和调试是游戏开发的关键部分。 Visual Studio提供了一个强大的调试工具,可让您浏览代码,检查变量并确定任何错误或错误。您还可以使用控制台登录消息并跟踪代码的执行。

>如何优化我的JavaScript游戏以进行性能?

>优化性能的JavaScript游戏涉及许多技术。其中包括最大程度地减少全局变量的使用,使用RequestAnimationFrame用于游戏循环,优化您的图像和资产以及使用有效的游戏逻辑算法。在各种设备和浏览器上测试游戏以确保其运行顺利也很重要。

>如何在我的JavaScript游戏中添加声音和音乐?使用HTML5音频API进行JavaScript游戏。这使您可以加载和播放声音文件,控制音量,甚至创建声音效果。您还可以使用诸如howler.js之类的库来简化过程并添加更高级的音频功能。

>一旦完成开发后,我如何在Windows Store上发布我的JavaScript游戏?您的游戏,您可以通过创建商店帐户,注册您的应用并提交认证来将其发布在Windows Store上。您需要提供有关游戏的屏幕截图,描述和其他信息。一旦您的游戏获得批准,它将可以在Windows Store上下载。

我可以将我的JavaScript游戏货币化吗?

是的,您可以以多种方式将JavaScript游戏货币化。一种选择是在Windows Store上出售您的游戏。您还可以包括应用内购买,玩家可以购买其他内容或功能。另一个选择是在您的游戏中显示广告,尽管应该很少这样做以避免破坏游戏玩法的体验。

>

我可以使用JavaScript为其他平台创建游戏吗?不限于Windows 8或任何特定平台。借助正确的工具和库,您可以创建在各种平台上运行的游戏,包括Web浏览器,移动设备甚至游戏机。一些与JavaScript进行跨平台游戏开发的流行库,包括Phaser,Pixi.js和Trix.js。

我在哪里可以通过JavaScript了解有关游戏开发的更多信息? W3Schools,Mozilla开发人员网络和CodeCademy等网站提供了有关JavaScript和游戏开发的教程和指南。还有很多书籍,在线课程和论坛,您可以在这里学习和获得其他开发人员的帮助。

以上是使用JavaScript创建一个简单的Windows 8游戏:游戏逻辑的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript的角色:使网络交互和动态JavaScript的角色:使网络交互和动态Apr 24, 2025 am 12:12 AM

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C和JavaScript:连接解释C和JavaScript:连接解释Apr 23, 2025 am 12:07 AM

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

从网站到应用程序:JavaScript的不同应用从网站到应用程序:JavaScript的不同应用Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python vs. JavaScript:比较用例和应用程序Python vs. JavaScript:比较用例和应用程序Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C/C在JavaScript口译员和编译器中的作用C/C在JavaScript口译员和编译器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在行动中:现实世界中的示例和项目JavaScript在行动中:现实世界中的示例和项目Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

了解JavaScript引擎:实施详细信息了解JavaScript引擎:实施详细信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。