java游戏-PrisonBreak1.1

来源:互联网 发布:网络机顶盒安装 编辑:程序博客网 时间:2024/06/06 00:52

  1.更改了控制物体,将书中源程序字符改成了一个圆圈

  2.更改了信息显示,可以直接在控制面板显示

 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class game extends JFrame{
    
private GamePane gamePane=new GamePane();
    
public game(){
        getContentPane().add(gamePane);
        gamePane.setFocusable(
true);        
    }

    
/**
     * 
@param args
     * 主函数
     
*/

    
public static void main(String args[]){
        game frame
=new game();
        frame.setTitle(
"PrisonBreak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(
700,500);
        frame.setVisible(
true);
    }

}

class GamePane extends JPanel implements KeyListener{
    
boolean key=false;            //在此定义钥匙-“key”的数据类型
    boolean door=false;
    
private int x=200;
    
private int y=200;
    
public GamePane(){
        addKeyListener(
this);
    }

    
/**
     * 当按键放松时执行的操作
     
*/

    
public void keyReleased(KeyEvent e){
        
//获得钥匙
        if(x>100&&x<150&&y>100&&y<120){
            key
=true;
        }

        
//判断是否能可以开门
        if((x>500&&x<550)&&(y>400&&y<450)){
            
if(key==true){
                door
=true;
            }

        }

    }

    
public void keyTyped(KeyEvent e){
    }

    
public void keyPressed(KeyEvent e){
        
switch(e.getKeyCode()){
            
case KeyEvent.VK_DOWN:y+=10;break;
            
case KeyEvent.VK_UP: y-=10;break;
            
case KeyEvent.VK_LEFT: x-=10;break;
            
case KeyEvent.VK_RIGHT: x+=10;break;
            
default:break;
        }

        repaint();
    }

    
protected void paintComponent(Graphics g){
        
super.paintComponent(g);
        
//画出控制物体
        g.setColor(Color.red);
        g.fillOval(x, y, 
2020);
        
//画出门
        g.setColor(Color.blue);
        g.fillRect(
5004005050);
        g.setColor(Color.white);
        g.drawLine(
525,400,525,450);
        
//画出钥匙
        g.setColor(Color.black);
        g.fillOval(
1001002020);
        g.setColor(Color.black);
        
int Poly_x[]={110,130,130,135,135,145,145,150,150,110};
        
int Poly_y[]={105,105,95,95,105,105,95,95,115,115};
        g.fillPolygon(Poly_x, Poly_y, 
10);
        
if(key==true){
            g.drawString(
"You get the key!"8080);
        }

        
if(door==false&&(x>510&&x<540)&&(y>410&&y<440)){
            g.drawString(
"The door is closed,you need the key!"440380);
        }

        
if(door==true){
            g.drawString(
"Congratulation!You get out the prison!",440,380);
        }

    }

}
原创粉丝点击