Flash 2D/2.5D 简单的Y轴深度排序
from happy milk: 用三个类来说明。 ? ? 人物类 public class Avatar extends Sprite { public var depth:int; //主人公在map地图中的深度 public function Avatar():void { //人物样式不管 } } ? ? 更新障碍物和人物在map地图中的深度类 public class Solve
//初始化map中的所有子级实例 public static function initIndex (map:DisplayObjectContainer,avatar:Avatar):Array var arr:Array = [ ]; for(var i:int;i < map.numChildren;i++) { var dis:DisplayObject = map.getChildAt(i); if(dis is Avatar) { avatar.depth = i; }else if(dis is Sprite && dis.name != "back") {//分析为障碍物 而且不是 back 背景 arr[i] = [dis,i]; } } return arr; } ? 寻路走路类 public class Road private var map:MovieClip; //地图 private var block:Array = [ ]; //障碍物 private var avatar:Avatar; //人物 //内有函数update -- 人物行走过程中 以帧频去循环或者setInterval或者Timer都可以 //其中省去了一些具体操作函数 private function init():void block = Solve.initIndex(map,avatar);//更新深度信息 private function update():void var len:int = block.length; for(var i:int;i < len;i++) var dis:DisplayObject = block[i][0];//障碍物 var depth:int = block[i][1]; //障碍物深度 if((avatar.y >= dis.y && avatar.depth < depth) || (avatar.y <= dis.y && avatar.depth >depth))? map.setChildIndex(avatar,depth); Solve.initIndex(map,51)"> } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |