实时浏览器游戏战斗系统


Real time browser game fight system

最近我一直在阅读有关JS、Ajax、jQuery的文章,并决定使用这些语言编写一个系统。首先,我想为教育和学习做这件事。假设有一款游戏,其中一件事是与敌人战斗,战斗系统不是基于"点击"。它是这样的:

  1. 然后打开一个页面代码向MySql发送查询并获取玩家信息,如他拥有什么样的技能,hp,伤害等

  2. 代码根据玩家拥有多少技能创建按钮或图像

  3. 每个技能都有自己的冷却时间

  4. 代码检查左冷却时间是否为0秒,如果是激活按钮或图像,并让用户按下它,如果不是,然后设置一个计时器下面显示多少时间,直到技能是可用的,当计时器达到0,按钮激活。

  5. 当使用某些技能时,会有额外的冷却时间,这会增加所有技能和计时器

  6. 当一切都好,技能使用和东西更新mysql

  7. 然后所有重复直到敌人或玩家死亡

  8. 所有这些都是实时发生的

基本上这是一个像丝绸之路、坦克世界、英雄联盟和几乎所有mmorpg游戏这样的PC游戏的技能系统。

我一直在尝试用Ajax, JS做这个,但我不能找出最好的方法来做到这一点,记住它的快速和安全。

我不是要求完整的代码,只是一些信息,哪个函数最好这样做,以及如何做到这一点。

谢谢。

我回答这个问题是为了征求意见。

我曾经处于你的位置,想要在几乎没有经验的情况下创造出"最酷的"游戏。这是一场很难进行的游戏,特别是当你需要询问某人从哪里开始编写代码时。我的建议是:掌握编程基础知识和最佳实践。观看教程,从小项目开始。否则我保证你最终会得到有bug的、破碎的、意大利面条式的代码。

  1. 学习基础JavaScript。我更喜欢租一本实体书,但是网上也有很多教程。创建有趣的小项目来展示理解。

  2. 学习一门服务器端语言(比如PHP)。从制作简单的应用程序开始。对客户机-服务器模型有深刻的理解。一旦你掌握了它的窍门,就开始改进你的数据库技能,在MySQL或类似的东西中。(提示,这是一种存储游戏数据的方法)。

  3. 学习jQuery和AJAX不要重复,而是要不断学习。接受有挑战性的任务,但不要让自己不知所措。了解如何操作DOM以及如何使用AJAX在客户机和服务器之间进行通信。

  4. 学习Node.js和Socket.io。这只是一个建议。这两个库都非常适合创建实时游戏。但是,如果不掌握上面列出的基础知识,您将无法理解这些包。它们都是JavaScript。在Socket上有一个很棒的聊天教程。

  5. 在开始新游戏前完成游戏不要像我一样,承担太大的项目。从小处入手,并不是所有游戏都必须是带有出色图像的大型游戏。除非它是一个彻底的灾难,否则不要丢弃所有的代码来重新开始。制定计划并坚持执行。

总而言之,在做太难的事情之前,先掌握核心概念。

编辑:我刚刚读了你关于你有PHP和c++知识的评论。但我不会改变我的答案。无意冒犯,经验丰富的程序员不会问这样一个"新手"问题。学习书籍或教程,在努力寻找解决方案后,以后问一些具体的、高质量的问题。

你不能只用AJAX在Javascript中制作实时游戏。你需要把自己变成套接字。

套接字基本上是一个双向持久连接:当你发出http请求时,你打开请求,服务器响应你,你关闭请求。这使得构建实时应用程序变得困难,因为服务器无法在没有打开请求的情况下向您推送数据。套接字保持您和服务器之间的现有连接,因此它就像您和服务器之间的持久通道。

你可以检查Node.js,它非常适合这种套接字的使用。对于你的其他问题,我建议你自己多搜索一点;)