Java에서 내 APCS 클래스 용 게임을 만들고 있습니다. 그것은 대수학 및 수학을 사용하지만 문제가 아닙니다.내 렌더링 방법에 아무 것도 표시되지 않는 이유는 무엇입니까?
어떤 이유로 Enum이 작동하지 않기 때문에 상태 클래스 대신 State 클래스를 사용합니다.
public class State {
private int option;
public int getState(){
return option;
}
public void setState(int option){
this.option=option;
}
}
지금, 나는 실제 게임 상태 번호 상태를 설정할 때 배경을 표시하지 않습니다 제외하고, 그것은, 잘 실행되기 때문에 이것은 문제가되지 않습니다 90 % 확신한다.
public Rectangle playButton= new Rectangle(GameMain.WIDTH/2 +120,200,117,49);
public Rectangle helpButton= new Rectangle(GameMain.WIDTH/2 +120,300,117,49);
public Rectangle quitButton= new Rectangle(GameMain.WIDTH/2 +120,400,117,49);
ImageLoader loader = new ImageLoader();
GameMain game;
public BufferedImage bgrd, play,help, quit;
public void init(){
try {
bgrd = loader.loadImage("res/imgs/bgrd.png");
play = loader.loadImage("res/imgs/play.png");
help = loader.loadImage("res/imgs/help.png");
quit = loader.loadImage("res/imgs/exit.png");
} catch (IOException e) {
e.printStackTrace();
}
}
public void render(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g.drawImage(bgrd,0,0, null);
g.drawImage(play,game.WIDTH/2 +120,200,null);
g.drawImage(help,game.WIDTH/2 +120,300,null);
g.drawImage(quit,game.WIDTH/2 +120,400,null);
}
당신은 스스로를 테스트 할 수 있지만 모든 이미지는 올바른 디렉토리에 있고 고해상도 폴더는 빌드 경로에 추가되었습니다
내 메뉴 클래스는 다음과 같습니다.
ImageLoader 클래스에는 BufferedImage를 반환하는 loadImage 메서드가 포함되어 있습니다. 내 GameMain 클래스에서
,이 이미지를 표시해야하는 내 렌더링 방법 : 여기private void render(){
BufferStrategy bStrat = this.getBufferStrategy();
if(bStrat==null){
createBufferStrategy(3);
return;
}
Graphics g = bStrat.getDrawGraphics();
if(state.getState()==1){
menu.render(g);
}
if(state.getState()==2){
}
if(state.getState()>2 && state.getState()<11){
Font font=new Font("Verdana",Font.BOLD,20);
g.setFont(font);
g.drawImage(bgrd,0,0,this);
g.drawString(gameName, 300, 100);
g.drawImage(wizard,x,y-75,this);
g.drawImage(hdkn,x,y,this);
g.dispose();
bStrat.show();
}
if(state.getState()==11){
}
}
그리고를 내 init 메소드 (I 완료있을 때) 모든 초기화되는 :
public void init(){
state=new State();
state.setState(1);
loader = new ImageLoader();
menu=new Menu();
menu.init();
try{
bgrd=loader.loadImage("res/imgs/bgrd.png");
wizard=loader.loadImage("res/sprites/wiz.png");
hdkn=loader.loadImage("res/sprites/hdkn.png");
}catch(IOException e){
e.printStackTrace();
}
}
을 나는 메뉴 상태 (1)로 상태를 설정할 때
이것은 결과입니다 Menu State Game
그리고 이것은 국가가 할머니로 설정되어있을 때 결과입니다 전자 상태 (숫자 3-10) : Game State Game
편집 : 누군가가 ... 내 생각, 내 주요 방법을보고 싶어
game=new GameMain();
game.setPreferredSize(new Dimension(WIDTH,HEIGHT));
game.setMaximumSize(new Dimension(WIDTH,HEIGHT));
game.setMinimumSize(new Dimension(WIDTH,HEIGHT));
JFrame frame = new JFrame("Math Game");
frame.add(game);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
game.start();
편집 : 작동하지 않은 이유 이 발견했다. 내 GameMain 렌더링 메서드에서 render 메서드를 호출 한 후 bStrat.show()를 포함하지 않았습니다.
편집 2 : 그것은 어쩌면
, 내가 한번 풀어주고 열거가 작동되지 않은 이유를 찾을 다시 –
을 얻을 것이다 :
여기를 보라. 분명히 그것은 IDE 이슈 (Eclipse)이므로 JRE 작업 영역을 다시로드하면됩니다. –'Enum' 때문에 문제가 되었습니까? –