java飞机大战游戏的设计与实现(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

java飞机大战游戏的设计与实现(4)

frame。setLocationRelativeTo(null);

frame。setVisible(true);

}

}

public static void main(String[] args) {

JFrame frame = new JFrame("Fly");

startGame(frame);

}

运行原理:绘制界面时通过创建JFrame来新建一个容器,将所需组件添加到JPanel内部,最后把JPanel放入容器即可。用户可以通过鼠标单击事件即可启动游戏。实现主要代码如下:

public void mouseClicked(MouseEvent e){ 

switch (state) {

case START:

state = RUNNING;

break;

}

}

2。绘制飞行物(结果见图5。1。2)

核心代码如下:

/**Graphics g画笔,画飞行物对象 */

public void paint(Graphics g){

g。drawImage(background,0,0,null);

paintHero(g);

paintFlyingObjects(g);

paintBullets(g);

paintScore(g);

paintState(g);

}

/**画状态图(启动,暂停)*/

public void paintState(Graphics g){

switch (state) {

case START:

g。drawImage(start,0,0,null);

break;

case PAUSE:

g。drawImage(pause,0,0,null);

break;

}

}

/**画分数*/

public void paintScore(Graphics g){

g。setColor(new Color(0xFF0000));//设置颜色为纯红

g。setFont(new Font(Font。SANS_SERIF,Font。BOLD,22));

g。drawString("Score: "+score, 10, 25);

g。drawString("Life: "+hero。getLife(), 10, 45);

}

/**画英雄机*/

public void paintHero(Graphics g){

g。drawImage(hero。image,hero。x,hero。y,null);

}

/**画敌人*/

public void paintFlyingObjects(Graphics g){

for(int i=0;i<flyings。length;i++){

FlyingObject f = flyings[i];

g。drawImage(f。image,f。x,f。y,null);

}

}

/**画子弹对象*/

public void paintBullets(Graphics g){

for(int i=0;i<bullets。length;i++){

Bullet b = bullets[i];

g。drawImage(b。image,b。x,b。y,null);

}

}

3.绘制游戏说明界面

核心代码如下:

public class Frame2 extends JPanel{

public static final int WIDTH = 400; //宽

public static final int HEIGHT = 654; //高

private JTextArea jTextArea;

private JScrollPane jScrollPane;

private  ImageIcon imageIcon;

private String instructions = "进入游戏页面后,单击鼠标即可开始游戏。

使用鼠标进行上、下、左、右移动" + "可以控制英雄机的移动。游戏开始后,英

雄机拥有3条生命,任何飞行物碰撞到"+"英雄机则减少一条生命,一旦英雄机生

命值为0游戏结束。";

public Frame2() {

imageIcon = new ImageIcon("src/entity/pictures/background.png");

jTextArea = new JTextArea(instructions,8, 15){

Image image = imageIcon。getImage(); 

     Image grayImage = GrayFilter。createDisabledImage(image);

      {来-自~优+尔=论.文,网www.youerw.com +QQ752018766-

        setOpaque(false);

      } // 设置透明

@Override

public void paint(Graphics g) {

g。drawImage(grayImage, 0, 0, this);

         super。paint(g);

}

};

jTextArea。setFont(new Font(Font。DIALOG_INPUT,Font。BOLD,24)); (责任编辑:qin)