本站原创,欢迎转载;尊重他人劳动,转载时保留以下信息:
本文转自:360ITO技术社区
原文标题:从零开始学社交游戏开发(九)
原文地址:http://www.360ito.com/article/618.html
1、先启动虚拟机:在E:\workspace\devel_env目录下执行vargrant up命令,如下图:
保存服务器时间:
python代码:
maps = [ # [值,次序] [100,1], [100,2], None, None, None,None,[901,0],[908,0],[909,0],[902|0xA0000,0], [102,3], None, [101,4], [100,8], None,None,[901,0],[908,0],[910,0],[909,0], None, None, None, [100,9], None,None,[902|0xA0000,0],[902|0xA0000,0],[909,0],[902|0xA0000,0], [103,5], [100,6], [100,7], None, [100,12],[100,3],[901,0],[908,0],[902|0xA0000,0],[910,0], None, None, None, [100,10], None,None,[904,0],[908,0],[909,0],[902|0xA0000,0], None, None, None, [100,11], None,None,[901,0],[911,0],[911,0],[909,0], [901,0],[901,0],[910,0],[901,0],[904,0],[902|0xA0000,0],[901,0],[902|0xA0000,0],[909,0],[902|0xA0000,0], [902|0xA0000,0],[904,0],[908,0],[902|0xA0000,0],[908,0],[908,0],[911,0],[908,0],[909,0],[909,0], [902|0xA0000,0],[902|0xA0000,0],[909,0],[909,0],[902|0xA0000,0],[909,0],[909,0],[909,0],[910,0],[902|0xA0000,0] ]
现在我们开始保存地图数据,先在game_data包下面创建一个TMapObj类和一个MapData类,TMapObj对应一个地图单元,MapData包含地图上的所有单元,如下图:
public function setData(arg_data:Array):void { var mapObj:TMapObj; onClear(); var count:int = arg_data.length; for (var i:int = 0; i < count; i++) { if (arg_data[i] != null) { mapObj = new TMapObj(); mapObj.setValue(arg_data[i][0],arg_data[i][1],i); FObjs[i] = mapObj; } } }
public function setValue(arg_value:uint,arg_order:int,arg_key:int):void { _FValue = arg_value; FType = getType(); // 类型 var point:Point = MapData.keyToCoord(arg_key); FOrder = arg_order; // 次序(每次放置一个单位,次序都会+1) FGridX = point.x; // 格子位置X FGridY = point.y; // 格子位置Y FShadows = getShadows(); // 黑影 0:不是黑影 1:是黑影 FFlash = getFlash(); // 闪光 0:不闪光 1:闪光 }
public static function keyToCoord(arg_key:int):Point { var result:Point = new Point(); result.x = int(arg_key % cfg.MAP_WIDTH); result.y = int(arg_key / cfg.MAP_WIDTH); return result; }
public static function coordToKey(arg_x:int, arg_y:int):int { return arg_y * cfg.MAP_WIDTH + arg_x; }
呼呼,地图数据都构建好了,接下来应该把场景搞定!先把美术资源都加载进来(在res目录下可以看到多出res002 - res004几个美术资源包),在系统配置文件中按下图配置好:
function get gme_scene():IGameScene;
public function get game_scene():IGameScene { return FGameScene; }
在IGameScene添加onUpdate方法,这个方法会根据MapData中内容更新场景。
switch(type) { case TVGDefine.ITEM_XIAO_CAO: { // 创建小草 } break; case TVGDefine.ITEM_DA_CAO: { // 创建大草 } break; }
今天先写到这里,休息一会...
共有0个评论 我要评论»
网友回复/评论仅代表其个人看法,并不表明本社区同意其观点或证实其描述。
1.不欢迎无意义的回复/评论和类似“顶”、“沙发”之类没有营养的文字
如果只是想简单的表个态,请点 有用无用支持反对 等按钮
2.发言之前请再仔细看一遍文章,或许是您遗漏、误解了,理性讨论、切莫乱喷
3.严禁发布违法、违规的信息,请勿到处招贴广告、发布软文;
4.如果您发现自己的回复/评论不见了,请参考以上3条
5.不停制造违规、垃圾信息的,账户将被禁止