首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于PHP文本的游戏时间通道

基于PHP文本的游戏时间通道
EN

Stack Overflow用户
提问于 2012-01-31 02:22:56
回答 3查看 497关注 0票数 2

许多基于web的文本游戏的任务需要花费现实世界的时间才能完成。一个基本的例子是你需要处理一些资源的游戏。你可以“升级”你的加工厂,但是这样做需要6个小时。如果您选择进行此升级,您将无法在游戏中做任何其他事情,直到您的6小时过去,除了看到一个剩余的时间屏幕。对于如何在用PHP编写的游戏中实现这一点,有人有什么建议吗?

EN

回答 3

Stack Overflow用户

发布于 2012-01-31 02:37:49

实际上,这很简单:

  • 每个任务都与完成该任务所需的时间相关联
  • 当任务处于活动状态时,不能启动任何其他任务

现在,当用户启动一个新任务时,您可以记录任务的开始时间和任务是哪个任务,并添加任务将完成的时间。你把它存储在数据库里。下次用户登录游戏时,您将检查该用户是否有任何活动任务,如果有,则显示剩余时间。

因此您可以有一个表Tasks,其中包含

  • ID
  • name
  • description
  • time_to_complete

另一个表用于User,另一个表用于Active_Tasks,其中

  • user_id
  • task_id
  • started_at
  • ends_at

在PHP脚本中,您有相应的代码来查询和更新这些表。

试着从这个描述中得到一些有用的东西,当你遇到任何障碍时,问一个关于特定部分的新问题。

票数 1
EN

Stack Overflow用户

发布于 2012-01-31 02:38:27

首先,这些游戏中的大多数都不是用php编写的(我对你所说的很熟悉,因为我已经玩过了)。

但是如果一定要用php做,你还需要使用某种类型的数据库(这是一件好事,因为你也有mysql作为你的标签之一)。

我不确定你想要你的游戏做什么,例如:假设你的游戏的目标是让用户拥有相互竞争的业务或其他东西。

表:用户

  • id
  • username
  • password

表:business_types

  • id
  • title (示例:面包店、咖啡店、零售店
  • 价格(构建此类业务的成本)

表:users_businesses (一个用户可以拥有多个业务)

  • id
  • user_id (显然对应于用户table)
  • business_type (对应于business_types表:面包店、咖啡店、零售店等)
  • level (业务所在的当前级别)
  • last activity (datetime,您可以在用户无法升级业务级别的情况下执行查询,直到一段时间过去。您可以根据业务的level...higher级别增加等待所需的时间,这样等待时间会更长。在等待时间结束之前,不能执行任何活动。)
  • 其他字段,如此业务每小时产生多少钱

表:users_resources

  • id
  • user_id
  • amount (正整数或负整数。用户可以每小时从他们的业务中赚钱,并可以将他们的钱花在升级或购买新业务上)

这只是一个example...You需要cron job来为用户每小时拥有的每一项业务分配资源,这样即使他们没有登录,他们也可以收取资金。

但是,我再次建议您不要使用php。

票数 1
EN

Stack Overflow用户

发布于 2012-01-31 02:38:15

答案将取决于几个不同的东西。在php中有多种方法可以做到这一点。示例:

  1. 如果你不想在升级“加工厂”的过程中发生任何事情,你可以使用的睡眠或睡眠功能。我会阅读php.net的文档,但基本上它们会延迟x milliseconds.
  2. If的php函数的进一步执行你仍然需要用户能够在“加工厂”升级的同时执行其他任务你可以使用时间函数来获取函数启动时的确切unix时间戳。当你在游戏中运行其他函数时,你可以在其中一个函数中检查时间戳,该变量保存了等待升级过程完成所需的时间量。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9068768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档