网络编程
位置:首页>> 网络编程>> JavaScript>> 挑战! 纯Javascript 重现经典网游! <魔力宝贝>(2)

挑战! 纯Javascript 重现经典网游! <魔力宝贝>(2)

作者:阿伍 来源:51js 发布时间:2008-10-04 10:37:00 

标签:游戏,网页游戏,魔力宝贝,Javascript

更新历史:

// 10月2号下午 更新:

   这两天我在做地图编辑器, 这是一个相当难的事.. 目前我完成了大约2/3, 预计明天或后天可以更新到网上.
  
   虽然我做不少系统,但地图编辑器显然比起那些东西来说,需要考虑更多.不光是系统结构和数据存储.还要考虑到界面的一些问题.

   well .. 不是一些,是很多!

   目前编辑器所具备的功能: 设置地图图象,起点,大小,障碍点,静态遮罩物,拖拽定位,脚本生成.

// 10月4号晚上 更新:

   编辑器的最初版本终于完成, 这个玩意足足用去了我70个小时以上. 我的大半个国庆就这么过去了..

   开发的过程是很艰辛的,就像前天我说的. 必须考虑到很多界面性的东西,这就要求我不能再采用以后台程序为主的开发思路.因为那样可能会导致一点小小的改动就要刷新整个页面.
   所以我采用的思路是纯js操作,一切数据都储存在变量中.提交保存的时候汇总这些变量,序列化储存到数据库里. 编辑的时候再读取出来,按顺序还原变量。

   至此,这个程序的基础引擎就算完成了. 战斗.人物属性,买卖.物品,这些就可以独立出来做了.

   这次我把地图格默认关闭了,看看是不是顺了不少呢? (图象的预载仍然没做,见谅);

   编辑器测试地址: http://www.xgate.net.cn/cg/system/maplist.aspx   

   以下是编辑器操作与程序中某些功能实现的思路,有兴趣可以看看。

   编辑器操作指南:
   
     1. 全局

           1) 地图卷轴: 将鼠标放在地图区四周的箭头上.
               //以下是下方按钮.
           2) 显示选区: 显示鼠标在绝对坐标系上的位置. 如果要设置障碍点,地图起点,NPC坐标等,则必须先开启这个功能.
           3) 显示边界: 只将地图四周的tile显示出来,目的是简化的显示地图范围.用于大地图情况下显示全部格子会影响性能的情况.
           4) 显示网格: 显示地图所有tile,本操作会明显影响性能.适用于小型地图.
           5) 设置障碍: 作用就不多说了.  如果对一个障碍点再次点击,则取消此点.
           6) 停止设置: 解除鼠标所绑定的任何操作,如果不确定给鼠标绑了什么操作,可以点点.
           7) 显示特殊点: 只显示障碍,起点,出口(暂无);
           8) 隐藏所有: 隐藏所有格子,包含特殊点.
           9) 重定位NPC: 地图原点被修改后,点此可以重新定位NPC到正确的位置.
          10) 保存地图: 将地图数据保存到数据库.如果提示"已锁定",表示该地图被我锁定了,无法被保存.
          11) 返回列表:略.

     2. 地图设置

         1) 名称: 略;
         2) 原点: 指游戏中,坐标为0,0的地图块所在的位置. 要填写的就是该点css中的left与top属性. 作用是和地图图片进行照准.
                     点击"设置原点",可以给鼠标绑定一次性操作. 此时在地图区,点击一个位置,即可设置原点.
                     如果你更改了原点,网格和NPC并不会改变位置,这是出于性能考虑.可以点"重定位NPC"和"显示网格"修改位置.

         3)大小: 略;
         4)起点: 主角初试位置,填写的是绝对坐标.
         5)图象: 地图所用的图片,目前只有map_test.jpg可用.
            以上所有操作都要点"更新数据"才会有效,以下所有功能都一样.

      3. 静态遮罩 ,作为永久性遮罩与地图一起卷轴,如树,石柱.

           1) 名称:略
           2) 坐标: 点设置坐标,给鼠标绑定一次性操作. 移动鼠标在地图区, 该遮罩会变为半透明. 点一个位置后,设置完成.
           3) 路径: 默认为空,所以添加一个遮罩后显示的是X. (目前可用的只有m.gif )
        
      4.NPC
            
           1) 名字:略
           2) 偏移: 由于NPC图象大小不一,需要对图象的位置进行修正.修改后需要点更新数据.
           3) 坐标:点"设置坐标"给鼠标绑定一次性操作,在地图中点一个绝对坐标完成设置.
           4) 对话: 在内容框里添加一条对话内容,添加到列表中. 可以点"测试对话"进行测试,该对话效果与游戏中一样.

                  规则: 普通对话, 选中"对话", 取消"分支".
                          事件: 选中事件,其他选项则被忽略. 事件是指各种行为,如战斗,买卖..   
                                  内置的行为有: #goon() ,#stop() , #goto(n) 分别代表继续对话,停止对话,跳转到第n条对话.

                          分支: 选中对话,选中分支,选择类型. 游标A是指当主角选了肯定回答后对话流程的走向.
                                  如第2句选择是后要转到第5句,则填写4(从0开始). 游标B即选否的情况下,原理一样.

        5. 生成脚本: 用于debug,生成的信息即是地图的"资源".
     
     之后的道具编辑器,战斗编辑器之类我就不再继续传到网上了,这里涉及到服务器的配置. 我会沉寂一小段时间,然后等战斗,地图,交易,人物属性等基本完成的时候,发布Demo. 各位,再会.

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com