Java GUI实现简单弹珠游戏(新手入门练习项目)

游戏界面

 

 代码:

package 弹珠游戏;

public class Demo {

    public static void main(String[] args) {

        GuiWindow gwin = new GuiWindow();
        gwin.init();

    }

}
package 弹珠游戏;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class GuiWindow extends JFrame {

    private int w = 600;
    private int h = 800;
    Cav cav = new Cav();

    ActionListener Alis = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            cav.startBallX();
            cav.startBallY();
            cav.repaint();
            if(cav.getBallX()+10>=w||cav.getBallX()+10<=0){
                cav.changeBallspeedX();
                cav.repaint();
            }
            if(cav.getBallY()+10<=0){
                cav.changeBallspeedY();
                cav.repaint();
            }
            if(cav.getBallY()>800){
                cav.setOver(true);
                timer.stop();
            }

            if((cav.getBallY()>=cav.getPY()&&cav.getBallY()<=cav.getBallY()+5)
                &&(cav.getBallX()>=cav.getPX()&&cav.getBallX()<=cav.getPX()+125)){
                cav.changeBallspeedY();
                cav.repaint();
            }
        }
    };
    Timer timer = new Timer(10,Alis);

    public void init(){
        setTitle("弹珠游戏");
        setSize(w,h);
        setLocationRelativeTo(null);

        timer.start();

        addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                cav.changePX(e);
                cav.repaint();
            }
        });

        add(cav);
        setPreferredSize(new Dimension(600, 800));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

}
package 弹珠游戏;

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

public class Cav extends Canvas {
    private int ballX = 300;
    private int ballY = 20;
    private int ballspeedX = 1;
    private int ballspeedY = 3;

    private int PX = 275;
    private final int PY = 700;
    private int Pspeed = 20;

    private boolean isOver = false;

    public void startBallX(){
        ballX+=ballspeedX;
    }

    public void startBallY(){
        ballY+=ballspeedY;
    }

    public int getBallX() {
        return ballX;
    }

    public int getBallY() {
        return ballY;
    }

    public int getPX() {
        return PX;
    }

    public int getPY() {
        return PY;
    }

    public void changeBallspeedX(){
        ballspeedX = -ballspeedX;
    }

    public void changeBallspeedY(){
        ballspeedY = -ballspeedY;
    }

    public void setOver(boolean isOver){
        this.isOver = isOver;
    }

    public boolean getOver(){
        return isOver;
    }

    public void changePX(KeyEvent ke){

        if(ke.getKeyCode()==KeyEvent.VK_A&&PX>=0){
            this.PX-=Pspeed;
        }
        if(ke.getKeyCode()==KeyEvent.VK_D&&PX+125<=600){
            this.PX+=Pspeed;
        }
    }

    @Override
    public void paint(Graphics g) {
        if(!isOver) {
            g.setColor(Color.red);
            g.fillOval(ballX, ballY, 20, 20);
            g.setColor(Color.pink);
            g.fillRect(PX, PY, 125, 30);
        }else{
            g.setColor(Color.blue);
            g.setFont(new Font("over",Font.BOLD,30));
            g.drawString("游戏结束",250,350);
        }

    }
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Javagui打地鼠游戏实训项目文档是一个详细描述该项目的文档,介绍了该项目的目标、功能、需求和实施计划等内容。 首先,该项目的目标是设计一个具有用户界面的“打地鼠”游戏,提供给用户一个互动的娱乐体验。通过该游戏,用户可以通过点击地鼠出现的位置来获得分数,并在规定时间内尽可能地获得更高的分数。 其次,该项目的功能包括游戏开始和结束的控制、地鼠出现的随机位置生成、用户点击地鼠并计算分数等。游戏开始时,地鼠会随机在游戏界面的多个位置出现,用户需要在规定时间内点击地鼠以获得分数。游戏结束后,会显示用户的得分和游戏排行榜。 对于项目的需求,需要一个具有可视化界面的Java应用程序,包括游戏开始和结束的按钮、计时器、计分器等控件,并能够响应用户的鼠标点击动作。地鼠出现的位置应该是随机的,并且在规定的时间内消失。用户的得分应该能够实时更新,并显示在游戏界面上。 最后,项目的实施计划包括以下几个阶段:需求分析和设计、编码和测试、优化和调试。需求分析和设计阶段需要明确项目的详细需求并设计出界面和功能的草图。编码和测试阶段需要根据设计的要求进行代码编写和单元测试。最后,在优化和调试阶段,可以对代码进行优化,修复未知的错误并进行整体测试,以确保项目的正确性和稳定性。 综上所述,Javagui打地鼠游戏实训项目文档是一个描述该项目的详细文档,包括了项目的目标、功能、需求和实施计划等内容,为项目的开发和实施提供了指导和参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值