gpt4 book ai didi

java - 图像错误

转载 作者:行者123 更新时间:2023-12-01 15:14:26 26 4
gpt4 key购买 nike

我最近完成了我正在制作的游戏的基础知识,我打算将其发送给一些 friend ,但每当他们打开 .jar 时,它只是一个灰色的窗口。当我听到这个消息时,我认为这是因为我获取图像的方式(我使用了完整路径:C:\Users\etc)。我做了一些谷歌搜索,找到了一种看起来更有效的获取图像的方法。

private static Image[] mobImages =  new Image[1];

public static void loadImages()
{
mobImages[1] = Handler.loadImage("res/EnemyLv1.png");
}

public static Image getMobImages(int index)
{
return mobImages[index];
}

这就是我想用的。但我这样做了,并更改了其余的代码来支持这一点。每当我运行游戏时,我都会遇到一些错误。这一切都指向

这个:if(getBounds().intersects(tempEnemy.getBounds()))

所以可能也是我获取图像的方式。我该如何解决这个问题?还有更好的方法来获取图像吗?我尝试了一些,但没有成功。

编辑:我终于解决了所有错误! :D 唯一的问题是没有出现任何图像。这是my code再次。还有什么帮助吗?那太棒了!感谢大家到目前为止的支持!

最佳答案

很难说你的代码出了什么问题。不过,我建议您将图像文件放入java项目中的包中(这样它们将成为JAR文件的一部分)并使用Class.getResource()/Class.getResourceAsStream()访问它们。这可以避免多个陷阱并将所有内容保持在一起。

如何将图像构建到包中的示例:

myproject
  images
    ImageLocator.class
    MyImage1.jpg
    MyImage2.jpg

ImageLocator 类需要使用相对路径(只需图像名称+扩展名)来访问资源。

public class ImageLocator {
public final static String IMAGE_NAME1 = "MyImage1.jpg";

public static Image getImage(final String name) {
URL url = ImageLocator.class.getResource(name);
Image image = Toolkit.getDefaultToolkit().createImage(url);
// ensure the image is loaded
return new ImageIcon(image).getImage();
}
}

这可以做得更优雅,但这应该可以帮助您入门。在 ImageLocator 类中将图像名称定义为常量可以避免在整个项目中传播具体路径(只要 ImageLocator 中的名称正确,其他所有内容都将由编译器检查)

关于java - 图像错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com