Java 2D游戏相机无需滚动世界

时间:2011-04-06 04:25:01

标签: java

我刚刚完成了一个长达一个月的项目,为2D瓷砖RPG游戏构建一个非常复杂的地图/世界编辑器。现在,我正处于实际玩游戏的阶段,并且正在使用地图编辑器生成的地图,角色和其他内容创建游戏的运行时实现。除了相机,我几乎完全知道我在做什么。我想不出一种方法可以使摄影机的工作方式类似于像zelda(gameboy)这样的游戏(相机固定在角色上),而不是每次都在我的游戏中滚动每个精灵和瓷砖的(x,y)值玩家移动。我已经研究了一些游戏引擎,但我不相信这是我需要的,尽管我很愿意在这个假设上做错。整个游戏都是用图像完成的,没有渲染的形状,这使我相信我不需要乱用openGL来使相机按照需要工作。谁能建议一种不使用openGL来实现相机的方法?我并不反对使用openGL,但如果我不需要,我宁愿不学习它,因为我已经和其他项目一起度过了一段时间。谢谢你的建议。

2 个答案:

答案 0 :(得分:1)

我只会绘制角色相机区域中可见的内容,因此您不需要移动所有精灵等等。但是,屏幕上的任何内容都必须重新绘制。这不会是内存密集型的,您可以使用某种数据库系统或甚至多维数组来设置它,它只会绘制相机内的内容。

例如,如果你的角色位于瓷砖100(x)和50(y)上,并且相机是瓷砖的7乘7网格,那么你需要绘制的就是周围的48个瓷砖玩家;选手。这就是几乎所有平铺游戏都在滚动的方式,并且在内存上并不是很难。你应该能够以最小的延迟而不是太多的编程来做到这一点...取决于你如何设置你的瓷砖及其分层。

答案 1 :(得分:0)

一个简单的解决方案是创建一个Image对象,绘制到该对象,然后使用正确的偏移量在屏幕上绘制