Flash 2D/2.5D 简单的Y轴深度排序
来源:互联网 发布:网络策划方案 编辑:程序博客网 时间:2024/06/02 06:24
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,avatar);//更新深度信息
}
}
}
}
- Flash 2D/2.5D 简单的Y轴深度排序
- flash的2D框架
- scanf("%d%d",&x,&y);与scanf("%d,%d",&x,&y);的区别 c语言输入注意
- Y/C分离/2/3D滤波器
- Problem D: 求(x-y+z)*2
- Problem D: 求(x-y+z)*2
- 3D软引擎之深度排序
- 简单的2D、3D的Vector结构示例
- 闪客工具:基于Flash 3D API Molehill 进行GPU加速2D的引擎
- 一个简单的2D向量类
- 一个简单的2d游戏引擎
- Quartz 2D的简单使用
- Quartz 2D简单的绘图
- 2-D树的简单理解
- Y D L M是什么意思?
- Android之bitmap的镜像3D翻转(绕x轴 Y轴)
- Flash(AS3) 实现的3D TileFlow
- 3D 标签云 Flash 的使用
- pthread_cleanup_push() 和 pthread_cleanup_pop()
- 状态模式
- 程序、进程和线程的区别
- ios + cocos2d-x 计数统计提示相应信息
- ios的AutoresizingMask属性
- Flash 2D/2.5D 简单的Y轴深度排序
- 数据库连接的一般步骤
- Object-关于NSAutoReleasePool的理解
- linux下Makefile学习之六(使用函数)
- jredis分片选择数据库且支持服务器故障动态过滤
- iOS 之正则表达式
- 黑马程序员-iOS基础-Objective-C基础(九)
- 关于几种不同结构数据处理的心得
- 爬虫的关键技术(以电影数据的爬取为例)