龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

开发网页游戏系列之简单程序应用(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
整个代码的意思就是: 当拖动地图释放鼠标后,显示层重新获得数据。并无刷新的显示出来。地图里的图片都用的png32的透明图。Ie7和ff3都没问题。遇到

整个代码的意思就是:
当拖动地图释放鼠标后,显示层重新获得数据。并无刷新的显示出来。地图里的图片都用的png32的透明图。Ie7和ff3都没问题。遇到ie6的话。。用gif的替代吧。map.php的功能。根据获得的x,y显示相应的一谢谢小图块。这个功能其实就是上面说的showMap(x,y),这个很像google地图的拖动。不过简单了很多。简单,效果还不错。2、角2、角色属性
因为设定的要求。角色需要有装备加成,有状态加成(buff,debuff)。这时候,把所有需要的加成,都放到角色类里。是一个很好的方法。
大概像这样:

 1 class role
 2 {
 3 //获得角色数据。
 4 getRloe()
 5 {
 6  从数据库里获得角色信息。
 7 }
 8 //获得装备加成。
 9  getEquip()
10 {
11     获得装备加成信息。
12 }
13 
14 //获得状态加成
15 getState()
16 {
17    获得状态加成信息。
18 }
19 
20     //把上面获得的信息相加或者相减,或者调整。
21 
22 //返回角色数据。
23    Return xxx
24 }

专门把这条提出来说。是因为没把加成放到角色对象里时。每次要战斗或者要干点什么的时候。获得角色数据后,还要加一大堆代码处理加成。重复太多。一让代码前置,世界就清静了。。。

3、道具
道具比较特殊。因为种类繁多,使用方式多,可能有多个存放地点,可能有唯一道具。有天看了web魔兽的代码。发现他的道具只有一个表。有一个字段,来处理道具位置,如(1,拍卖行,2,背包,3,仓库,4,商店)这个办法挺好的。不过,如果道具的复杂度上去了。比如不同的仓库,不同的拍卖行,需要合成等等。还是只有分表。

基础道具表:
id

itemname 名称

itemprice  价格

itemimage  图片

itemtype 类型

uptype  增加类型

uppoint 增加点数

addtype  增加类型(永久)

addpoint 增加点数(永久)

cleardebuff 清除debuff

addbuff  增加buff

从uptype开始。都可以写成xx|yy|zz的形式。最好一一对应。分割符号可以自己选。
调用和处理数据的时候,可以用类似下面的方式:

1 $uptype = explode("|", $iteminfo['uptype']);
2 $uppoint = explode("|", $iteminfo['uppoint']);
3 for ($j=0;$j<count($uptype);$j++)
4 {
5      echo $uptype[$j];
6  echo $uppoint[$j];
7 }


仓库,拍卖行,商店,背包等等。承载道具的地方。只要有个id字段来存道具id就可以。至于是横表或者是纵表,根据实际需要选择。目前为止,道具看上去处理得还不错。这时候,策划说。道具需要有唯一的,需要能附魔。ok,那么你把所有组合都填到道具表里吧。合成也就是a+b=c而已。。一计算。比如40个可能附魔的东西。200个可以附魔的道具。40*200=8000。显然,策划不会同意的。那么头痛的就是程序了。怎么处理呢。加表吧。 

唯一道具表:

id 唯一道具id(与普通道具id不能重复。方便背包等等调用)

temp_id 临时id(默认0。合成道具的时候可能会用到。)
itemid 原始道具id(获得道具的初始值)

fumo_id 附魔id。(默认0,即无附魔)

附魔表:(即增加的属性)
id
uptype  增加类型

uppoint 增加点数

cleardebuff 清除debuff

addbuff  增加buff

 

现在看功能修改
首先是道具类

 1 class Item
 2 {
 3   getItem()
 4   {
 5   //以前是直接根据id获得道具信息就ok了。
 6 
 7  //现在增加了附魔
 8  
 9  //首先判断道具id是否属于唯一道具。(比如普通道具1-10000。唯一道具id的从10001开始。如果觉得这样不好,那么基础道具表里,加个字段。判断道具是否唯一)                 
10 
11 if (道具唯一)
12   {
13      //从唯一道具表获得原始道具id和附魔id
14      //根据原始道具id,或者道具基础信息。
15      //根据附魔id,获得附魔加成信息。
16      //两边值相加。
17     Return 道具信息。                      
18 }
19 else
20 {
21     直接获得道具信息。
22 }
23 
24   }
25 }


精彩图集

赞助商链接