java实现弹球游戏

这个博客展示了如何使用Java编程实现一个简单的弹球游戏。游戏包含一个滑板和一个移动的小球,玩家可以通过控制滑板来接住小球。游戏的难度可以通过速度设置进行调整,并且游戏结束条件是小球落到屏幕下方。博主提供了详细的源代码,包括滑板的移动、小球的碰撞检测以及游戏速度的控制等关键功能。
摘要由CSDN通过智能技术生成
 
源代码:


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

public   class  BallGame  extends  JApplet {
    
private  JMenu controlBar,speedBar;; //  3个主控菜单
     private  JMenuItem startItem,exitItem; //  control下的开始结束菜单
     private  JRadioButtonMenuItem stepItem[]; //  难易程度
     private  ButtonGroup Group,speedGroup; // 组件组
     private  JPanel gameJP; //  添加游戏区容器
     private   int  dx,dy,randomNum; //  球的移动量和球撞到滑板上的随机量
     private  JButton RecBox; // 滑板作为Button来操作,好处在于可以直接对此组                                                                                                                                                                                            件添加KeyListener
     private  Rectangle Rect; // 滑板矩形框的定义
     private  ImageIcon backGround; // 背景图片声明
     private   int  xRec,widRec,SPEED,heiRec,
width,height,Height,delay,xcenter,ycenter,r,marks;
//  parament                                                                  //  of drawings
     public  BallGame(){
        xcenter
= 200 ;ycenter = 25 ;r = 10 ; //  球的参数
        dx = 0 ;dy = 0 ; //  球的移动量
        randomNum = ( int )Math.random() * 5 ; // 调节小球碰到滑板时的随机反弹
        SPEED = 20 ;delay = SPEED; //  速度因数,delay变量,speed常量
        width = 400 ;height = 300 ;Height = 275 ; //  JFrame框长宽,Height表示游   戏框的高(菜单栏占了25的高度)
        xRec = 160 ;widRec = 80 ;heiRec = 15 ; //  滑板框参数
        marks = 0 ; //  初始得分
        RecBox = new  JButton();
        backGround
= new  ImageIcon( " Thank.gif " );
        Rect
= new  Rectangle(xRec,realY(heiRec),widRec,heiRec);
    
package org.crazyit.ball; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException; /** * 小球对象 * * @author yangenxiong yangenxiong2009@gmail.com * @author Kelvin Mak kelvin.mak125@gmail.com * @version 1.0 * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> * <br>Copyright (C), 2009-2010, yangenxiong * <br>This program is protected by copyright laws. */ public class Ball extends BallComponent { // 定义球的竖向速度 private int speedY = 10; // 定义弹球的横向速度 private int speedX = 8; // 定义是否在运动 private boolean started = false; // 定义是否结束运动 private boolean stop = false; /** * m 有参数构造器 * * @param panelWidth * int 画板宽度 * @param panelHeight * int 画板高度 * @param offset * int 位移 * @param path * String 图片路径 */ public Ball(int panelWidth, int panelHeight, int offset, String path) throws IOException { // 调用父构造器 super(panelWidth, panelHeight, path); // 设置y坐标 this.setY(panelHeight - super.getImage().getHeight(null) - offset); } /** * 设置横向速度 * * @param speed * int 速度 * @return void */ public void setSpeedX(int speed) { this.speedX = speed; } /** * 设置竖向速度 * * @param speed * int 速度 * @return void */ public void setSpeedY(int speed) { this.speedY = speed; } /** * 设置是否在运动 * * @param b * boolean * @return void */ public void setStarted(boolean b) { this.started = b; } /** * 设置是否结束运动 * * @param b * boolean * @return void */ public void setStop(boolean b) { this.stop = b; } /** * 返回横向速度 * * @return int 速度 */ public int getSpeedX() { return this.speedX; } /** * 返回竖向速度 * * @return int 速度 */ public int getSpeedY() { return this.speedY; } /** * 是否在运动 * * @return boolean 是否在运动 */ public boolean isStarted() { return this.started; } /** * 是否已经结束运动 * * @return boolean 是否已经结束运动 */ public boolean isStop() { return this.stop; } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值