4
地图、城市、基本上算是有了。
接下来是城市里的建筑。
上面讲的资源增加, 其实定位在建筑上更准确。 不过建筑的分类和数
值会复杂很多。那是策划考虑的问题。
建筑上,只讲一个前台的修建效果。
当然,这个效果是可有可无。你可以直接给个类似新闻列表的显示,
再加个倒计时就行。
显示的效果就是,点修建后。不刷新页面,调入一张动画图片。并在
时间到后自动转换为其他图片。
<script language='javascript'>
function xiujian()
{
top.abc.document.getElementById(' 前台建筑位置所在图片
的 id').src=' 修建后建筑的图片地址 ';
// 显示修建后的建筑图片。可以加上后台时间判断。其中 abc ,是建
筑所在层的 id,
}
function xiujian1()
{
setTimeout('xiujian()',5000);// 动画时间 5 秒。这里也可
以加入时间判断。当时间不到的完成的时候,继续调用动画。
}
function donghua()
{
top.abc.document.getElementById(' 前台建筑位置所在图片
的 id').src=' 建筑动画所在的地址 ';// 显示修建动画。
}
donghua();
xiujian1();
</script>
附带讲一下。如果要考虑多浏览器兼容,那么用 prototype.js 。如果
只需要 ff 和 ie。那么用而 jqury.js
或尽量自己写。因为 120k 的 prototype.js 不算小。
后台部分,把时间到,增加资源的代码,改为时间到,增加或更新建
筑就行了。又是增加 N 个表。。
新的方法是,增加事件子类。
建筑基础表:产出,类型,图片等等。。
建筑详细表: 属于哪个城市, 可以在城市表里关联。 关联的方式不同
会对程序有很大的影响。 各种关联方式都行, 但是一旦关联方式确定
后,最好别改动。
现在建筑也有了。用类似的定时方式,打工,征兵等等都可以实现。
战斗,
兵的参数:兵种,数量,攻击,防御等等。
战斗的临时表:谁的兵,打谁,出发时间,战斗时间,战斗结果。
这里的几个字到是简单。实际的表会复杂一些。
webgame中,战斗的过程分两种,
一种是给出双方参数,时间到,就根据公式计算结果。
一种是半即时或者即时的战斗,可以边打边喝药边用技能的那种。
第一种流程。
点出兵。这时候,兵的参数,出发时间,到达时间,都记录进战斗临
时表。
定时器中, 处理战斗的部分, 判断时间是否到开打的时候。 到开打的
时间了,则取得被攻击方的兵的参数。然后通过几个公式计算结果。
处理结果, 比如谁的兵挂了多少, 战场掉落了多少钱, 城市被谁抢到
了。一大堆判断以及 updata 。(这里的定时器处理和获得资源的定
时器处理是很类似的。)
最后把结果分别发给双方。(又涉及到一个短信息系统。)
第二种流程。
点攻击。马上就处理数据。打打 npc 好做。玩家之间对战,也可以
把被攻击的玩家当成 npc 来处理。
两个人或两人以上即时战斗。需要用到 ajax 了。目前在技术上和理
论上是没问题的,还没实际写代码,所以不好讲。
现在,技术上已经确定可以很好的实现了。
很简单的公式,两种战斗都可以用到:
intval(sqrt($User_B_AP)-sqrt($User_A_DP));
根号下攻击 -根号下防御 = 伤害。
具体写的时候, 公式肯定会复杂不少, 不过这头痛的事, 还是交给策
划去做吧。
战斗的具体参数,其实已经不是程序考虑的了。
程序只需要考虑从数据表 A 取得数据, 存入临时表 B。然后当时间到
了后(通过定时器实现),再从数据表 C 取得数据,通过公式计算,
最后删除临时表 B 或者把临时表 B 存到另外一个地方备份。
这里的思路其实就是定时器类。
数据是哪些?找策划要。 有几个表?找策划要。 战斗公式?找策划要。
有地图、城市、建筑、士兵、战斗后,道具的出现就有必要了。
为什么呢?
有了城市能做什么?产生资源,产生钱,产生兵。
有了士兵做什么?可以抢资源,抢钱。
资源和钱做什么?买道具。
买道具做什么?更好的抢资源和抢钱。
(同时,抢资源,抢钱的时候,资源会被消耗)
这是一个很简单的循环。 就是绕成了一个圈, 虽然这个圈很小。 有部
分策划想得非常好,就是绕不成圈,那样没任何意义。
首先,需要一个道具的基础表。