SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Isometric 位图引擎技巧
    Aspirin @ Slide
投影法则
●
    统称轴测法( Axonometric )
●   Isometric
    ( 模拟城市,模拟人生 1/2 ,星际争霸 ...)
●   Dimetric
    ( 植物大战僵尸,英雄无敌 )
投影的特点
●
    没有消失点
●   3D 中平行的线,投影后仍然平行
●
    物体离观察点的远近不影响其在画面上的大小
●   一种对 3D 世界描述的简化
Isometric 的三种视角 ( 1 )
●   The 30° isometric projection
Isometric 的三种视角( 2 )
●   The 1:2 isometric projection
Isometric 的三种视角( 3 )
●   The "military" projection
Dimetric
●
    和 Isometric 的区别
    在 Isometric 中, x/y/z 轴的单位一样
    即如果一个立方体被投影到 2D 画面中,所有边
    的长度是一样的。
Dimetric
●
    和 Isometric 的区别
    在 Dimetric 投影中其中的一个轴(往往是 z 轴会
    被缩放)。
Isometric 投影
public static function spaceToScreen(x :
Number, y : Number, z : Number) : Point {
var screenX : Number = x - z;
var screenY : Number = y * Y_CORRECT + (x
+ z) * .5;
return new Point(screenX, screenY);
}
3D 投影
public function calScreenPosition( n : Number3D,
vanishingVertex : Number3D, centerVertex : Number3D,
focus : Number ) : void {
var scale : Number = focus/(focus + n.z + centerVertex.z);
var x : Number = vanishingVertex.x + (centerVertex.x +
n.x)*scale;
var y : Number = vanishingVertex.y + (centerVertex.y +
n.y)*scale;
screenX = x;
screenY = y;
}
NodeTree 结构
●   DisplayObject Node
    Add Child
    Remove Child
    Set Child Depth
    Get Child Number
    Event Bubbling
NodeTree 的应用
●
    人物身上的状态条
●   物品所处位置的地板高亮
●
    增加特效
●   进入,退出房屋 / 移动平台
地图网格
●
    碰撞检测计算
●   寻路
●
    安放物品



●   提示:创建一个 GridNode 类管理吸附在网格上
    的显示对象
位图渲染
●
    将 MovieClip 转换成位图
    1) 序列
    2) ScrollRect

●   使用迭代,遍历 NodeTree 上的显示对象,并把
    它渲染后的位图拷贝到同一张画布上
一些技巧
●
    MovieClip2BitmapData 的异步渲染
●   对象池
●
    不同大小动物的寻径
●   遮挡和排序
●
    如何分割显示层

Mais conteúdo relacionado

Mais de Shanda innovation institute

[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)Shanda innovation institute
 
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Shanda innovation institute
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒Shanda innovation institute
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握Shanda innovation institute
 
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)Shanda innovation institute
 

Mais de Shanda innovation institute (15)

[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
 
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
 
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
 
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
 
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
 
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
 
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
 
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
 
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
 

[Flash开发者交流][2010.03.28]isometric位图引擎技巧(史珉)

  • 2. 投影法则 ● 统称轴测法( Axonometric ) ● Isometric ( 模拟城市,模拟人生 1/2 ,星际争霸 ...) ● Dimetric ( 植物大战僵尸,英雄无敌 )
  • 3. 投影的特点 ● 没有消失点 ● 3D 中平行的线,投影后仍然平行 ● 物体离观察点的远近不影响其在画面上的大小 ● 一种对 3D 世界描述的简化
  • 4. Isometric 的三种视角 ( 1 ) ● The 30° isometric projection
  • 5. Isometric 的三种视角( 2 ) ● The 1:2 isometric projection
  • 6. Isometric 的三种视角( 3 ) ● The "military" projection
  • 7. Dimetric ● 和 Isometric 的区别 在 Isometric 中, x/y/z 轴的单位一样 即如果一个立方体被投影到 2D 画面中,所有边 的长度是一样的。
  • 8. Dimetric ● 和 Isometric 的区别 在 Dimetric 投影中其中的一个轴(往往是 z 轴会 被缩放)。
  • 9. Isometric 投影 public static function spaceToScreen(x : Number, y : Number, z : Number) : Point { var screenX : Number = x - z; var screenY : Number = y * Y_CORRECT + (x + z) * .5; return new Point(screenX, screenY); }
  • 10. 3D 投影 public function calScreenPosition( n : Number3D, vanishingVertex : Number3D, centerVertex : Number3D, focus : Number ) : void { var scale : Number = focus/(focus + n.z + centerVertex.z); var x : Number = vanishingVertex.x + (centerVertex.x + n.x)*scale; var y : Number = vanishingVertex.y + (centerVertex.y + n.y)*scale; screenX = x; screenY = y; }
  • 11. NodeTree 结构 ● DisplayObject Node Add Child Remove Child Set Child Depth Get Child Number Event Bubbling
  • 12. NodeTree 的应用 ● 人物身上的状态条 ● 物品所处位置的地板高亮 ● 增加特效 ● 进入,退出房屋 / 移动平台
  • 13. 地图网格 ● 碰撞检测计算 ● 寻路 ● 安放物品 ● 提示:创建一个 GridNode 类管理吸附在网格上 的显示对象
  • 14. 位图渲染 ● 将 MovieClip 转换成位图 1) 序列 2) ScrollRect ● 使用迭代,遍历 NodeTree 上的显示对象,并把 它渲染后的位图拷贝到同一张画布上
  • 15. 一些技巧 ● MovieClip2BitmapData 的异步渲染 ● 对象池 ● 不同大小动物的寻径 ● 遮挡和排序 ● 如何分割显示层