繁体   English   中英

Java 2D游戏摄像头,无需滚动世界

[英]Java 2D game camera without scrolling the world

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

我只会绘制在角色摄影机区域中可见的内容,因此,当角色移动时,您无需移动所有精灵。 但是,屏幕上的所有内容都必须重绘。 这不会占用太多内存,您可以使用某种数据库系统甚至多维数组来设置它,因为它只能绘制摄像机内部的内容。

例如,如果您的角色位于图块100(x)和图块50(y)上,并且摄像机是7×7的图块网格,那么您所需要绘制的就是在玩家周围的48个图块中发生的一切。 这就是几乎所有平铺游戏进行滚动的方式,并且在内存上不是很困难。 您应该能够以最小的滞后和不太多的编程来完成此操作……这取决于您如何设置图块及其分层。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM