oradia 2017-08-10 13:07 采纳率: 0%
浏览 1175

java写的雷霆战机,我想让子弹一直出来怎么办呢,大神们来帮忙啊,最好给出代码+注释

package com.simpre;

import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class PlaneWar extends JFrame{
BackGround backGround = new BackGround();
Plane plane = new Plane();

public PlaneWar(){
    this.setTitle("PlaneWar");
    this.setBounds(300,150,450,800);
    this.setVisible(true);
    this.setResizable(false);
    this.addKeyListener(new KeyControl());
    Thread thread = new Thread(new PaintThread());
    thread.start();
}

public void paint(Graphics g){
    backGround.draw(g);
    plane.draw(g);
}

class PaintThread implements Runnable{
    public void run(){
        while(true){
            repaint();
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

class KeyControl extends KeyAdapter{
    public void keyPressed(KeyEvent e){
        if(e.getKeyCode() == KeyEvent.VK_UP){
            plane.up =true;
        }else if(e.getKeyCode() == KeyEvent.VK_LEFT){
            plane.left =true;
        }else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
            plane.right =true;
        }else if(e.getKeyCode() == KeyEvent.VK_DOWN){
            plane.down =true;
        }
    }
    public void keyReleased(KeyEvent e){
        if(e.getKeyCode() == KeyEvent.VK_UP){
            plane.up =false;
        }else if(e.getKeyCode() == KeyEvent.VK_LEFT){
            plane.left =false;
        }else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
            plane.right =false;
        }else if(e.getKeyCode() == KeyEvent.VK_DOWN){
            plane.down =false;
        }
    }
}

public static void main(String args[]){
    new PlaneWar();
}

}

```package com.simpre;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Plane {
boolean left,up,right,down;
int planeSpeed =10;
int x=200,y=700;
Image imgPlane = GameUtil.getImage("Images/MyPlane.png");

public void draw(Graphics g){
    g.drawImage(imgPlane,x,y,80,60,null);
    if(left & x>0){
        x-=planeSpeed;
    }
    if(up & y>40){
        y-=planeSpeed;
    }
    if(right & x<380){
        x+=planeSpeed;
    }
    if(down & y<750){
        y+=planeSpeed;
    }
}

public Plane() {

}

}

```package com.simpre;

import java.awt.Graphics;
import java.awt.Image;

public class BackGround {
int y;
int BgSpeed=2;
Image imgBg = GameUtil.getImage("Images/BG.jpg");

public void draw(Graphics g){
    g.drawImage(imgBg,0,y,450,800,null);
    g.drawImage(imgBg,0,y-800,450,800,null);
    y+=BgSpeed;
    if(y>800){
        y=0;
    }
}

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-08-11 02:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题