关于地图,现在我采用的方式更为简单。通过坐标来判断需要哪些图,然后直接显示出来。
当然没有碰撞什么的,因为暂时不需要。至于人物走动什么的,不在本文讨论范围。
有了地图和城市后。涉及到的问题就是城市里资源的产生。
这时候,City 表里需要有可供判断的时间和数量的字段。
比如:产生资金量 Money,产生资金花费的时间 Action_Time,上次产生资金时间
Money_time。
这两个字段的数值应该在 City_base 表里出现。(即城市基础表,不同等级,不同类型城
市的对应数值。这是给策划填数据用的,建好表后就等策划去头痛吧。如果你身兼数
职。。。)
如何自动产生资源呢?
我们可以在城市所有人改变的时候,写入一个时间。或者在城市初始化的时候写入一个时
间。
$Now_Time=date('Y-m-d H:i:s');
(说明:$开头是变量的意思。php 里特有的。如果是 asp 的话可以写成。
Now_Time=Now() )
把$Now_Time 写入到 Money_time 里。
update("UPDATE City SET Money_time='$Now_Time WHERE City_ID='$City_ID' LIMIT
1;");
$City_ID 是你自己定义的。指某一个城市。如:$City_ID=1;
我们假定当前城市产生资金量为 100。即$Money=100;(具体的数值,应该是由
City_base 表里取出的。)
假设间隔时间为$Action_Time,我们再假定是每小时执行一次。即$Action_Time=3600;
(具体的数值,是根据你的初始化表里取得的。也可以根据城市等级或者用户等级取得。
反正随便你自己怎么设定。)
这时候,有基础时间了。有基础资金产量了。有间隔时间了。让它循环执行起来就行了。
上面说过,服务端用 C 语言定时器。客户端用 javascript。
服务端,资源定时器设定为 5 分钟执行一次。那么我们的误差就是 5 分钟。对网页游戏来
说,可以接受。(战斗的定时器得 1 分钟吧。当然服务器够牛的话,几秒钟都可以。)
当然,可以完全 php 写,然后配置 php 的 corn。现在我在做的程序就是直接用 php 写了。
包括任意长时间的定时器类,专门控制抽象事件用的。C 的定时器暂时没用。
每次执行什么代码呢?
首先得新建一个定时器任务的表。目的就是让定时器知道需要执行哪些程序和数据的更新。
表内容比如:城市资源更新。当然,这个表可要可不要。建立的好处是方便处理类似保护
状态不产生资源之类的问题。
服务端程序:
获得当前服务器时间。
获得当前需要更新城市。
判断服务器时间与$Money_time 的时间差。(时间戳,具体的时间戳网上资料满多的。)
判断时间差是否大于$Action_Time。
大于,则更新资源。同时更新$Money_time。
评论1
最新资源