java游戏-PrisonBreak1.0(越狱1.0版)

博主分享了他们的首个游戏程序作品——PrisonBreak1.0,灵感来源于电视剧《越狱》。游戏简单,玩家需操控角色找到钥匙并到达门处,以完成越狱。游戏代码基于《java程序设计导论》中的程序进行轻微修改,展示了基本的Java编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  这是我做的第一个游戏程序,挺高兴的,虽然很差,很差,不过我会慢慢修改的。最近一直在看《越狱》这部电视剧,这个游戏和这个名字还有点靠谱,所以给游戏取了这个名字。 这个程序是将《java程序设计导论》上的一个程序稍加修改而成的,改动也不大,能够实现的功能也就只有一个:就是将字符走到钥匙处,对话框就会出现一句:"You get the key!",然后走到门处(在DOS对话框中)出现:"Congratulation!You get out the prison!"

下面是游戏源程序:

 

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

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

    
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  KeyboardPanel  extends  JPanel  implements  KeyListener {
    
boolean key=false;            //在此定义钥匙-“key”的数据类型
    private int x=200;
    
private int y=200;
    
private char keyChar='A';
    
public KeyboardPanel(){
        addKeyListener(
this);
    }

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

    
public void keyReleased(KeyEvent e){
        
/**
         * 获得钥匙
         
*/

        
if(x>100&&x<150&&y>100&&y<120){
            System.out.println(
"You get the key!");
            key
=true;
        }

        
/**
         * 判断是否能够出去
         
*/

        
if((x>500&&x<550)&&(y>400&&y<450)){
            
if(key==true){
                System.out.println(
"Congratulation!You get out the prison!");                
            }

            
else{
            System.out.println(
"The door is closed,you need the key!");
            }

        }

    }

    
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:keyChar=e.getKeyChar();
        }

        repaint();
    }

    
protected void paintComponent(Graphics g){
        
super.paintComponent(g);
        g.setFont(
new Font("TimesRoman",Font.PLAIN,24));
        g.drawString(String.valueOf(keyChar),x,y);
        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);
    }

}

 

下面是书上未被我改动前的源程序:

 

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

public   class  test  extends  JFrame {
    
private KeyboardPanel keyboardPanel=new KeyboardPanel();
    
public test(){
        getContentPane().add(keyboardPanel);
        keyboardPanel.setFocusable(
true);        
    }

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

}

class  KeyboardPanel  extends  JPanel  implements  KeyListener {
    
boolean key=false;
    
private int x=200;
    
private int y=200;
    
private char keyChar='A';
    
public KeyboardPanel(){
        addKeyListener(
this);
    }

    
public void keyReleased(KeyEvent e){
    }

    
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:keyChar=e.getKeyChar();
        }

        repaint();
    }

    
protected void paintComponent(Graphics g){
        
super.paintComponent(g);
        g.setFont(
new Font("TimesRoman",Font.PLAIN,24));
        g.drawString(String.valueOf(keyChar),x,y);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值