大概渲染流程 def 渲染(list) list.sort_by_z.each{|d| if d.is_a?(Viewport) then 渲染(d.childrens) else d.render(...)} end |
恩。谢谢你的回答。 我说的意思就是对sprite进行管理。 就类似于我上面说的spriteManager的概念。 有没有这方面的代码可以参考下。 因为看了tilemap的第三方实现,了解到xp的三层是个逻辑三层, 而不是地图的三层,只是对layer中的图片进行了绘制,而layer是一个 sprite,所以猜想是viewport对sprite进行了管理。 是根据z轴进行绘制的。 然后最外层, 是对viewport进行绘制的,也是根据z轴。 这方面有什么参考吗?这样我也可以少走点弯路。 谢谢啦。 |
继承自Object和Viewport是否能够统一处理没有必然联系( 继承自Object,Sprite也可以再Viewport的容器里(~ |
个位高人,小弟在做地图的绘制的时候遇到个问题, 我简单的描述一下吧: 看代码,可以了解到 sprite,plane和window是展示在 对应的viewport视口上面的。 但通篇都没有看到对于viewport和sprite等的绘制部分, 全是update逻辑处理。 我猜想一下他们是不是这样处理的, 每次new新建一个viewport 视口的时候,就在viewportManager(暂定视口管理器)添加一个, 然后 sprite也是如此, 有一个spriteManager来管理他们, 其他同理, 那么就是先根据viewport视口的z轴判断进行绘制, 然后再绘制viewport 视口内的 sprite等等(也是根据z轴来判断绘制), 如果rm内部这样来做的 话,逻辑倒也说的清除, 但是参考help(帮助文档),发现 sprite,plane和window 是继承object(基类的),而不是一个viewport视口能够统一处理的类,例如 baseSprite。 难道绘制的时候还判断了下实例, 这个真的不得而知, 不知道我的猜测有无道理。 如果有哪位同学知道的,可以赐教下。 谢谢啦。 |
本帖最后由 爆发的妞 于 2013-6-21 17:41 编辑 需要用到数据库中的图块的数据,直接解析生成的文件, 貌似没有那么容易, 结构不太明白,还需要深入学习。所以就简单的在工程中输出了。 需要用到的同学,可以拿去 代码如下: RUBY 代码复制
下面的代码是对应地图图块的数据输出, 代码如下: RUBY 代码复制
后续还会解析其他的数据,感兴趣的可以,共同研究 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-5-12 04:57
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.