2017-10-22 11 views
1

私はいくつかのJavaゲーム開発チュートリアルに従っていました。私はキーボード入力で移動して境界線を作成できる楕円形のオブジェクトを作成できましたが、イメージを持つ楕円形ですが、何らかの理由でそれが表示されていない、私が選択したイメージが大きくないことを確信しています、それはもっと小さなアイコンのようであり、事前に感謝します。キーボードで移動する画像を読み込めません

package javagame; 


import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.Image; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 


public class JavaGame extends JFrame{ 

int x,y; 
private Graphics dbg; 
private Image dbImage; 
    Font font = new Font("Arial" , Font.BOLD, 30); 
    Image face; 
public class AL extends KeyAdapter{ 



    public void keyPressed(KeyEvent e){ 

     int KeyCode = e.getKeyCode(); 

     if(KeyCode == e.VK_LEFT) { 
       if(x<=0) 
      x=0; 
      else 
      x -=15; 
     } 


     if(KeyCode == e.VK_DOWN) { 
      if(y>=480) 
       y=480; 
      else 
      y+=5; 

     } 
      if(KeyCode == e.VK_UP) { 
      if(y<=20) 
       y=20; 
      else 
       y-=5; 

      } 

      if(KeyCode == e.VK_RIGHT) { 
      if(x>=480) 
       x=480; 
      else 
       x+=5; 
     } 

} 

     public void keyReleased(KeyEvent e){ 

} 
} 

public JavaGame() { 
    //game images 
    ImageIcon i = new ImageIcon("C:/Users/Sheref/Documents/NetBeansProjects/avaGame/src/javagame/type-of-solder-001-512.gif"); 
    face = i.getImage(); 
    //game properties 
    addKeyListener(new AL()); 
    setTitle(" Strategy Game"); 
    setSize(500,500); 
    setResizable(true); 
    setVisible(true); 
    setBackground(Color.CYAN); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     x = 20 ; 
     y = 30; 

} 

    public void paint(Graphics g){ 
     dbImage = createImage(getWidth() , getHeight()); 
     dbg = dbImage.getGraphics(); 
     paintComponent(dbg); 
     g.drawImage(dbImage , 0 , 0 , this); 
    } 

public void paintComponent(Graphics g) 
{ 
    g.setFont(font); 
    g.drawImage(face, x, y, this); 
    repaint(); 


} 

public static void main(String[] args) { 

    new JavaGame(); 

} 
あなた paint方法で

}

答えて

0

、代わりの

this.dbImage = this.createImage(this.getWidth(), this.getHeight()); 

プット:

this.dbImage = this.createImage((int) this.getSize().getWidth(), (int) this.getSize().getHeight()); 
関連する問題