前提・実現したいこと
javaを勉強していて
シューティングゲームを作っています。
発生している問題・エラーメッセージ
shipの画像だけが表示されません。
該当のソースコード
PlayScene
1public class PlayScene extends JPanel 2{ 3 Ship ship = new Ship(); 4 Image play_bg = Toolkit.getDefaultToolkit().createImage("../img/play_bg.png");//背景画像 5 PlayScene() 6 { 7 add(ship); 8 } 9 10 public void paintComponent(Graphics g)//画像の描画 11 { 12 super.paintComponent(g); 13 g.drawImage(play_bg, 0, 0, this);//背景 14
Ship
1public class Ship extends JPanel implements KeyListener 2{ 3 Image ship = Toolkit.getDefaultToolkit().createImage("../img/ship.png");//画像 4 int ship_x = 350;//自機のX座標 5 int ship_y = 500;//自機のY座標 6 7 Ship() 8 { 9 ship = ship.getScaledInstance(50,50,1); 10 setFocusable(true); 11 addKeyListener(this); 12 } 13 14 public void paintComponent(Graphics g) 15 { 16 super.paintComponent(g); 17 g.drawImage(ship, ship_x, ship_y,this);//自機 18 } 19 20 public void keyPressed(KeyEvent e)//キーを押したときの処理 21 { 22 if(e.getKeyCode() == KeyEvent.VK_LEFT) 23 { 24 if(ship_x > 0) 25 { 26 ship_x = ship_x -10; 27 repaint(); 28 } 29 else 30 { 31 ship_x = 0; 32 repaint(); 33 } 34 } 35 if(e.getKeyCode() == KeyEvent.VK_RIGHT) 36 { 37 if(ship_x < 740) 38 { 39 ship_x = ship_x +10; 40 repaint(); 41 } 42 else 43 { 44 ship_x = 740; 45 repaint(); 46 } 47 } 48 if(e.getKeyCode() == KeyEvent.VK_UP) 49 { 50 if(ship_y > 0) 51 { 52 ship_y = ship_y -10; 53 repaint(); 54 } 55 else 56 { 57 ship_y = 0; 58 } 59 } 60 if(e.getKeyCode() == KeyEvent.VK_DOWN) 61 { 62 if(ship_y < 510) 63 { 64 ship_y = ship_y +10; 65 repaint(); 66 } 67 else 68 { 69 ship_y = 510; 70 repaint(); 71 } 72 } 73 74 } 75 76 public void keyReleased(KeyEvent e) 77 { 78 79 } 80 81 public void keyTyped(KeyEvent e) 82 { 83 84 } 85}
試したこと
画像のパスの確認
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_LEFT)
{
System.out.println("aaaa");
}
と書いてイベントが動くかどうか。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/20 21:16