小编Luk*_*ell的帖子

如何使“相机”仅显示部分加载区域

我在找出一些东西时有一个小问题(很明显)。

我正在创建一个二维自上而下的mmorpg,并且在此游戏中,我希望玩家在瓷砖地图上移动,就像有人玩过《口袋妖怪》的游戏方式一样。

如果您还没有,请想象一下:我需要加载各个区域,从包含图像和位置(x,y)和对象(玩家,物品)的图块构造它们,但是玩家只能在时间,即20乘15瓦宽的区域,也就是100瓦高/宽瓦。我希望“摄像机”跟随玩家,使他保持居中,除非玩家到达加载区域的边缘。

我不一定需要代码,只需一个设计计划。我不知道该怎么办。

我当时正在考虑将整个加载区域分成10x10个瓷砖块(称为“块”)并加载它们,但是我仍然不确定如何从屏幕上加载碎片,并且仅在玩家处于范围内时显示它们。

图片应该描述它: 在此处输入图片说明

有任何想法吗?


我的解决方案: 解决此问题的方法是通过JScrollPanes和JPanels的美好世界。

我在JScrollPane中添加了一个3x3的JPanels块,添加了一些滚动和“ goto”方法来使JScrollPane居中/移动,瞧,我有了我的相机。

虽然我选择的答案对想要做2D相机工作的人来说有点通用,但是我做的方式实际上帮助我可视化了我做的更好的事情,因为实际上我有一个可以移动的物理“相机”(JScrollPane)我的“世界”(JPanel的3x3网格)

只是以为我会在这里张贴此信息,以防万一有人谷歌搜索答案而出现。:)

java swing 2d paint

5
推荐指数
1
解决办法
2225
查看次数

导出后,java无法查找/绘制图像

你好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"),不在构建路径上(在构建路径上尝试过,没有任何更改)

+++资源文件夹的子目录

我不知道在这做什么.抱歉,文字墙.

java resources swing image awt

2
推荐指数
1
解决办法
2970
查看次数

标签 统计

java ×2

swing ×2

2d ×1

awt ×1

image ×1

paint ×1

resources ×1