java游戏-PrisonBreak1.1

  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);
        }

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值