俗世迷人小眼儿镜 2021-07-12 15:57 采纳率: 0%
浏览 40

painticon中值改变 icon没有移动

public class MyPanel extends JPanel implements KeyListener, ActionListener{

boolean isStarted=false;
String direction="U";
int planeX=5;int planeY=650;//飞机位置
int a1[]=new int[50];int b1[]=new int[50];//炸弹位置
ImageIcon MPlane=new ImageIcon("有色飞机.png");
ImageIcon MBomb=new ImageIcon("炸弹.png");
Timer timer=new Timer(200,this);

@Override
protected void paintComponent(Graphics g) {

    super.paintComponent(g);
    this.setBackground(Color.white);
    g.setColor(Color.gray);
    g.fillRect(5,5,600,700);
    if(direction.contentEquals("U")) {
        MPlane.paintIcon(this,g,planeX,planeY);
    }
    MBomb.paintIcon(this, g, 5, 5);
    
    if(isStarted==false) {
        timer.stop();
    }else {
        timer.start();
    }
    
}

public void reset() {
    planeX=0;planeY=650;a1[0]=5;b1[0]=5;
}

public MyPanel() {
    reset();
    this.addKeyListener(this);
    this.setFocusable(true);
    timer.start();
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO 自动生成的方法存根
    
    
    
    if(isStarted=true) {
        if(direction.contentEquals("U")) {
            planeY=planeY-25;
            if(planeY<5) {
                planeY=650;
            }
            System.out.println(planeY);
        }else if(direction.contentEquals("D")) {
            
        }else if(direction.contentEquals("R")) {
            
        }else if(direction.contentEquals("L")) {
            
        }
    }
    
    repaint();
    timer.restart();
}

@Override
public void keyTyped(KeyEvent e) {
    // TODO 自动生成的方法存根
}

@Override
public void keyPressed(KeyEvent e) {
    
    int keyCode=e.getKeyCode();
    if(keyCode==KeyEvent.VK_SPACE) {//点击空格开始或暂停游戏
        isStarted=!isStarted;
        repaint();
    }else if(keyCode==KeyEvent.VK_UP) {
        direction="U";
    }else if(keyCode==KeyEvent.VK_DOWN) {
        direction="D";
    }else if(keyCode==KeyEvent.VK_RIGHT) {
        direction="R";
    }else if(keyCode==KeyEvent.VK_LEFT) {
        direction="L";
    }else if(keyCode==KeyEvent.VK_Q) {//子弹发射按钮
        
    }
}

@Override
public void keyReleased(KeyEvent e) {
    // TODO 自动生成的方法存根
    
}

}

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-07-15 18:24
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月12日

悬赏问题

  • ¥50 关于#stm32ADC##emc静电测试#的问题:stm32 DMA+ADC多通道数据,mec静电测试之后通道采集的数据紊乱,有没有清楚能提供帮助的
  • ¥15 求天御6000隔离软件
  • ¥15 springmvc redis
  • ¥20 来个看看这段代码怎么转换成二维码
  • ¥15 路线配置,规则,位置详解, 操作业类型在创建创建自定义路线中和各种业务详解
  • ¥15 SQL insert into错误
  • ¥50 zk+kafka三节点,zk异常重新选主后导致的高可用问题
  • ¥15 对回溯算法进行剪枝操作
  • ¥15 安全模式下,用户没有C盘所有权限
  • ¥15 grbl怎么清除一条命令?