如何解决我在 Eclipse 中制作的 Java 游戏在导出后停止加载我的资产
我使用默认设置(除了主类)从 Eclipse 导出了我的 Java 游戏,它停止加载我的资产:图像、音乐、sfx。其他任何东西都可以正常工作但资产不会,我已经尝试在文件路径字符串中放置一个点并使用 java.io.file.exists();但是它在控制台上说 false 而在 eclipse 中它说的是 true,所有资产都不起作用,但这是一个示例 来自菜单类的代码
package src;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Menu {
File f = new File("res/Playbutt.png");
public Rectangle Playbutton = new Rectangle( Game.WIDTH/2-25,60,50,10);
public Rectangle Exitbutton = new Rectangle( Game.WIDTH/2-25,80,10);
public static String desc = null;
private BufferedImage imagePlay;
private BufferedImage players1;
private BufferedImage players2;
private BufferedImage imageExit;
private BufferedImage IMPOSSIBLE;
private BufferedImage Hard;
private BufferedImage Easy;
private BufferedImage Normal;
private BufferedImage imageTitle;
private BufferedImage imageResume;
private BufferedImage imageMain;
private BufferedImage OPTIONS;
private BufferedImage BACK;
public static int brightloss = 0;
public static enum STATE{
MAIN,P1P2,INGAME,DIFICULTY,OPTIONS
};
public static STATE State = STATE.MAIN;
public static STATE Statepre = State;
public static boolean dark = true;
public static Slider slider;
public static void SAVESTATE(){
Statepre = State;
}
public Menu() {
slider = new Slider(100,100,false,brightloss);
try {
imagePlay = ImageIO.read(new File(".res/Playbutt.png"));
IMPOSSIBLE = ImageIO.read(new File(".res/IMPOSSIbutt.png"));
Hard = ImageIO.read(new File(".res/Hardbutt.png"));
Easy = ImageIO.read(new File(".res/Easybutt.png"));
Normal = ImageIO.read(new File(".res/Normalbutt.png"));
players1 = ImageIO.read(new File(".res/1P.png"));
players2 = ImageIO.read(new File(".res/2P.png"));
imageExit = ImageIO.read(new File(".res/Exitbutt.png"));
imageTitle = ImageIO.read(new File(".res/Title.png"));
imageResume = ImageIO.read(new File(".res/Resumebutt.png"));
imageMain = ImageIO.read(new File(".res/Mainbutt.png"));
OPTIONS = ImageIO.read(new File(".res/Optbutt.png"));
BACK = ImageIO.read(new File(".res/Backbutt.png"));
} catch (IOException ex) {
// handle exception...
}
}
public void render(Graphics g) {
System.out.println(f.exists()+"");
g.setFont(new Font("DefaultFont",Font.PLAIN,10));
g.setColor(Colors.Trans_GREEN3);
g.fillRect(0,Game.HEIGHT-10,Game.WIDTH,10);
g.fillRect(0,Game.HEIGHT-9,9);
g.fillRect(0,Game.HEIGHT-8,8);
g.fillRect(0,Game.HEIGHT-7,7);
g.fillRect(0,Game.HEIGHT-6,6);
g.fillRect(0,Game.HEIGHT-5,5);
g.setColor(Colors.Trans_GREEN3);
g.fillRect(0,10,Game.HEIGHT);
g.fillRect(0,9,8,7,6,5,Game.HEIGHT);
g.setColor(Colors.Trans_GREEN3);
g.setColor(Colors.Trans_GREEN3);
g.fillRect(Game.WIDTH-10,Game.HEIGHT);
g.fillRect(Game.WIDTH-9,Game.HEIGHT);
g.fillRect(Game.WIDTH-8,Game.HEIGHT);
g.fillRect(Game.WIDTH-7,Game.HEIGHT);
g.fillRect(Game.WIDTH-6,Game.HEIGHT);
g.fillRect(Game.WIDTH-5,Game.HEIGHT);
Graphics2D g2d = (Graphics2D) g;
if(State==STATE.MAIN) {
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>60&&MouseInput.my<70) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,59,54,14);
}
else if(MouseInput.my>80&&MouseInput.my<90) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,79,14);
}
else if(MouseInput.my>40&&MouseInput.my<50) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,39,14);
desc=("");
g.setColor(Color.green);
g.drawString(desc,45,Game.HEIGHT/2+50);
}
}
g2d.drawImage(this.OPTIONS,Game.WIDTH/2-25,null);
g2d.drawImage(this.imagePlay,40,null);
g2d.drawImage(this.imageExit,null);
g2d.drawImage(this.imageTitle,Game.WIDTH/2-50,null);}
else if(State==STATE.INGAME) {
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>70&&MouseInput.my<80) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,69,14);
}
else if(MouseInput.my>90&&MouseInput.my<100) {
g.fillRect(Game.WIDTH/2-26,89,14);
}else if(MouseInput.my>50&&MouseInput.my<60) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,49,14);
}
}
g2d.drawImage(this.imageResume,70,null);
g2d.drawImage(this.imageMain,null);
g2d.drawImage(this.imageExit,90,null);
g2d.drawImage(this.imageTitle,null);}
else if(State==STATE.P1P2) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14,Game.HEIGHT-29,28,15);
desc=("");
g.setColor(Color.green);
g.drawString(desc,Game.HEIGHT/2+50);
}}
if(MouseInput.my>30&&MouseInput.my<90) {
if(MouseInput.mx>=60 && MouseInput.mx<=120) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-61,29,66,66);
}
if(MouseInput.mx>=130 && MouseInput.mx<=190) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2+9,66);
}}
g2d.drawImage(this.players1,Game.WIDTH/2-60,30,null);
g2d.drawImage(this.players2,Game.WIDTH/2+10,null);
g2d.drawImage(this.BACK,15,Game.HEIGHT-28,null);
}
else if(State==STATE.DIFICULTY) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14,Game.HEIGHT/2+50);
}}
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>70&&MouseInput.my<80) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,14);
g.setColor(Color.green);
desc=("for those who want challenge");
g.drawString(desc,Game.HEIGHT/2+50);
}
else if(MouseInput.my>90&&MouseInput.my<100) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,14);
desc=("for those who want to cry");
g.setColor(Color.green);
g.drawString(desc,Game.HEIGHT/2+50);
}else if(MouseInput.my>50&&MouseInput.my<60) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,14);
desc=("for those who want to play casually");
g.setColor(Color.green);
g.drawString(desc,Game.HEIGHT/2+50);
}if(Ball.pmih) {
if(MouseInput.my>33&&MouseInput.my<44) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26,32,14);
desc=("for those who don't really have a live");
g.setColor(Color.green);
g.drawString(desc,Game.HEIGHT/2+50);
}}
}
if(Ball.pmih) {
g2d.drawImage(this.IMPOSSIBLE,33,null);}
g2d.drawImage(this.Normal,null);
g2d.drawImage(this.Easy,null);
g2d.drawImage(this.Hard,null);
g2d.drawImage(this.imageTitle,null);
g2d.drawImage(this.BACK,null);
}
else if(State==STATE.OPTIONS) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14,Game.HEIGHT/2+50);
}}
slider.render(g);
g2d.drawImage(this.imageTitle,null);
}
}
public void tick() {
slider.tick();
if(State==STATE.OPTIONS) {
Statepre=STATE.MAIN;
}
else if(State==STATE.P1P2) {
Statepre=STATE.MAIN;
}
else if(State==STATE.DIFICULTY) {
Statepre=STATE.P1P2;
}
}
}
这也是我的文件在 eclipse 中的组织方式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。