帆布等距游戏引擎 - 移动地图
我已经通过教程(http://glacialflame.com/category/tutorial/)合作,建立一个等距游戏引擎,但我想在地图与字符作为焦点移动。帆布等距游戏引擎 - 移动地图
所以,当你移动 - 在角色在地图中心。
我有一个小引擎收录在这里: http://pastebin.com/U75Pz4Yy
看到它在这里的行动: http://www.wikiword.co.uk/release-candidate/canvas/newEngine/index.html
有一个小提琴,按要求! http://jsfiddle.net/neuroflux/vUxYg/2/
注:如果您使用的是IE6 这是唯一的HTML5和Canvas浏览器,不要抱怨;)
任何想法和帮助,将不胜感激,我想我可以做到这一点分别用+1或-1更新数组中的每个“切片”,但我似乎无法为画布上已有的切片图像执行ForEach循环。
提前欢呼!
移动地图应该像玩家位置翻译上下文一样简单。
用X或Y的球员动作,所以应画布相同的量(或由负即量)翻译
我没有打扰找到合适的偏移,使兔子始终的中心屏幕,但它应该让你知道它是如何完成的。
Simon Sarris - +1给你!绝对的明星!谢谢! – 2011-04-29 12:42:49
很高兴帮助。我对Canvas游戏非常感兴趣,如果你有公开发展的话,我会很乐意关注你的游戏。 – 2011-04-29 14:18:19
你的jsfiddle链接已死亡。如果你还有它们,请添加你的例子的相关部分。 – Ken 2012-01-29 14:44:08
我可以给一个想法,而不是只有一个画布,你可以管理3个帆布和设置他们3周的div绝对定位,让每个DIV是建立在透明的背景前面的顶部。
- 一个背景
- 一个玩家
- 一个在地图上的对象(即可以重叠的球员)
画布会比看到操场较大(可能是用溢出CSS设置管理)。玩家总是在游乐场的中心。移动时,不必重绘背景和顶层,只需处理div位置,浏览器就可以完成图形工作。
之后还有装载新的背景砖的问题,可能有一些隐藏的帆布预紧处理。这种分层画布的方式可以应用于其他图层(活动标记图层,其他玩家图层等),它是一个'精灵层',其中浏览器图形引擎完成大部分最终屏幕图像渲染。
有几种方法来攻击这一点:
您可以移动整个画布,删除这成为无形(最终)的元素。那么如果左上角是-257467,374672呢?这只是渲染器的一个补充。
而不是移动的画布,你可以移动时代的图像。因此,为地图块的所有样式元素创建一个数组,然后在循环中移动
background-image
样式。地图元素保持原样,只有图像发生变化。您可以创建/删除DOM节点加上移动现有的。但是根据我的经验,这很贵(因为浏览器需要弄清楚你改变了什么,然后更新DOM树,刷新渲染缓存,渲染你再次更改的部分,创建和销毁大量对象......)
您应该制作一个jsFiddle,以便我们可以协作尝试:) – alex 2011-04-29 12:06:29
更新后的问题:) – 2011-04-29 12:09:52