Javaでキー入力の回数を数えて条件分岐をしたい
Javaで右矢印キーの回数が10回を超えると右矢印を押してもフレーム内の小さな□が右ではなく上に移動したりするプログラムを作成したいです。とりあえずif文なしのプログラムは作れたのですがここからif文の条件がうまく組み込めません。どなたかわかる方教えてください。
発生している問題・エラーメッセージ
エラーメッセージ
import
1import java.awt.event.KeyAdapter; 2import java.awt.event.KeyEvent; 3 4import javax.swing.JFrame; 5 6public class MyJFrameif extends JFrame { 7 8 private final static int FRAME_LENGTH = 300; 9 10 private final static int LENGTH_OF_PLAYER = 10; 11 12 private Rectangle player = new Rectangle(FRAME_LENGTH / 2, FRAME_LENGTH /2, 13 LENGTH_OF_PLAYER, LENGTH_OF_PLAYER); 14 15 public static void main(String[] args) { 16 new MyJFrameif(); 17 } 18 19 public MyJFrameif() { 20 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 21 22 MyKeyAdapter myKeyAdapter = new MyKeyAdapter(); 23 addKeyListener(myKeyAdapter); 24 25 setSize(FRAME_LENGTH, FRAME_LENGTH); 26 setVisible(true); 27 } 28 29 public void paint(Graphics g) { 30 g.drawImage(getScreen(), 0, 0, this); 31 } 32 33 private Image getScreen() { 34 Image screen = createImage(FRAME_LENGTH, FRAME_LENGTH); 35 Graphics2D g = (Graphics2D)screen.getGraphics(); 36 37 38 g.setColor(Color.red); 39 g.draw(player); 40 41 return screen; 42 } 43 44 private class MyKeyAdapter extends KeyAdapter { 45 46 @Override 47 48 public void keyPressed(KeyEvent e) { 49 switch (e.getKeyCode()) { 50 case KeyEvent.VK_LEFT: 51 player.setLocation((int)player.getX() - 10, (int)player.getY()); 52 break; 53 54 case KeyEvent.VK_RIGHT: 55 player.setLocation((int)player.getX() + 10, (int)player.getY()); 56 break; 57 58 case KeyEvent.VK_UP : player.setLocation((int)player.getX() , (int)player.getY() - 10); 59 break; 60 61 case KeyEvent.VK_DOWN :player.setLocation((int)player.getX() , (int)player.getY() + 10); 62 break; 63 64 } 65 66 repaint(); 67 } 68 69 } 70 71} 72コード
試したこと
自分では以下のような文を追加してみました。
int count = 0;
if(case KeyEvent.VK_RIGHT){
count++;
}
if(count > 10){
public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: player.setLocation((int)player.getX() , (int)player.getY() + 10); break; case KeyEvent.VK_RIGHT: player.setLocation((int)player.getX() - 10, (int)player.getY()); break; case KeyEvent.VK_UP :player.setLocation((int)player.getX() + 10, (int)player.getY()); break; case KeyEvent.VK_DOWN :player.setLocation((int)player.getX() , (int)player.getY() - 10); break; }
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー