我在找出一些东西时有一个小问题(很明显)。
我正在创建一个二维自上而下的mmorpg,并且在此游戏中,我希望玩家在瓷砖地图上移动,就像有人玩过《口袋妖怪》的游戏方式一样。
如果您还没有,请想象一下:我需要加载各个区域,从包含图像和位置(x,y)和对象(玩家,物品)的图块构造它们,但是玩家只能在时间,即20乘15瓦宽的区域,也就是100瓦高/宽瓦。我希望“摄像机”跟随玩家,使他保持居中,除非玩家到达加载区域的边缘。
我不一定需要代码,只需一个设计计划。我不知道该怎么办。
我当时正在考虑将整个加载区域分成10x10个瓷砖块(称为“块”)并加载它们,但是我仍然不确定如何从屏幕上加载碎片,并且仅在玩家处于范围内时显示它们。
图片应该描述它:

有任何想法吗?
我的解决方案: 解决此问题的方法是通过JScrollPanes和JPanels的美好世界。
我在JScrollPane中添加了一个3x3的JPanels块,添加了一些滚动和“ goto”方法来使JScrollPane居中/移动,瞧,我有了我的相机。
虽然我选择的答案对想要做2D相机工作的人来说有点通用,但是我做的方式实际上帮助我可视化了我做的更好的事情,因为实际上我有一个可以移动的物理“相机”(JScrollPane)我的“世界”(JPanel的3x3网格)
只是以为我会在这里张贴此信息,以防万一有人谷歌搜索答案而出现。:)
到目前为止,我已经通过创建和Image完成了双缓冲,使用其关联的Graphics对象绘制我想要的图像,然后使用paint方法的Graphics对象将该Image绘制到屏幕上.最近,我了解了BufferStrategy类及其用法.我想知道这两种方法的优点和缺点是什么.
编辑:我不认为我的问题非常清楚.我想知道DIY方法和BufferStrategy的优点/缺点,以及何时,如果有的话,我应该使用其中一个.