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

有任何想法吗?
我的解决方案: 解决此问题的方法是通过JScrollPanes和JPanels的美好世界。
我在JScrollPane中添加了一个3x3的JPanels块,添加了一些滚动和“ goto”方法来使JScrollPane居中/移动,瞧,我有了我的相机。
虽然我选择的答案对想要做2D相机工作的人来说有点通用,但是我做的方式实际上帮助我可视化了我做的更好的事情,因为实际上我有一个可以移动的物理“相机”(JScrollPane)我的“世界”(JPanel的3x3网格)
只是以为我会在这里张贴此信息,以防万一有人谷歌搜索答案而出现。:)
你好stackoverflowites,
我正在开发一个2D游戏,当我在eclipse中运行它时,我的程序加载了它的所有图像和资源.但是,我使用的是不一定推荐的创建图像和图像图标的方法,如下所示:
bannerLogo.setIcon(new ImageIcon("/res/client/BannerHeader.jpg"));
Run Code Online (Sandbox Code Playgroud)
现在,当导出到jar时,它不会显示图像(这是预期的,因为我没有使用正确的方法.)
我搜索了正确的方法,我找到了:
URL imgURL = getClass().getResource("/res/client/BannerHeader.jpg");
Image bannerImg = Toolkit.getDefaultToolkit().getImage(imgURL);
bannerLogo.setIcon(new ImageIcon(bannerImg));
Run Code Online (Sandbox Code Playgroud)
而且没有任何工作,我得到一个"未捕获的错误获取图像:"痕迹,这只是告诉我,我的URL(imgUrl的)为空.(这是我在日食中运行的时候,请注意,我甚至还没有将其导出)
我认为它与我的类路径有关,但我无法弄清楚是什么.
在Eclipse中,我的包结构如下:
(父目录,项目名称)
+ src文件夹,在构建路径上有正常的包等
+资源文件夹,("res"),不在构建路径上(在构建路径上尝试过,没有任何更改)
+++资源文件夹的子目录
我不知道在这做什么.抱歉,文字墙.