我已经在游戏引擎中工作了大约6天,从过去的DOS时代开始,我收获了从制作游戏中学到的一切。但是,那时有双重缓冲,您可以以超快的速度重新绘制所有内容。HTML,在HTML5中是另一个故事。
到目前为止,我的引擎具有“层”,这些层是画布在0,0位置彼此叠放的位置,我在屏幕坐标0,0上将它们的上下文绘制在另一层上。这意味着,您将绘制一个图层,然后在渲染阶段绘制该图层(当然,如果满足一些条件)。
我设法建立了一个例程,以便在画布上绘制平铺的地图,并使用->这篇<-文章,通过在每帧上重画来使其滚动。当您使用320x240时,一切正常且花花公子,但是当我将其增加到640x480并将图块数增加一倍时,它的速度会降低。
因此,我想出了这个主意(在此示例中,仅使用水平滚动),方法是使用稍大的画布:
这样,我只会在每次滚动时重画画布,并且通过一些优化,我什至可以只重画边缘瓦片而不是整个画布(无论如何就是这样)。
所以我的问题是:我将如何在代码中做到这一点?我可能已经连续六天没有为这个引擎工作,但我只是看不到它。另外,还有什么让我更加困惑:如何在不影响画布其余部分的情况下绘制边缘瓷砖?:(
我可以显示一些代码,但是我想我可以使用一个小的jsfiddle示例来做,我可以适应自己的代码。但是,如果您确实需要查看代码,我可能为此准备一个小示例。但是请注意,我的绘图代码只是文章代码的改编版本(用于测试滚动),因此您可以假定我没有编写图块映射代码。我有,但是我敢打赌,对于这种情况xD,我需要重写它。
提前致谢!-黑暗之子
好吧,我终于设法做到了,并解决了自己的问题-但是,它速度更快,但仍然像我以前的尝试一样跳动。如果有人感兴趣,请询问-但由于我什至没有收到任何评论,所以我认为没有人愿意。
这是GameDev的最终工作解决方案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句