java小游戏_Java编程实现打砖块小游戏,超清晰思路,适合初学者加强学习!

打砖块是一款非常经典小游戏,废话不多说,让我们来用Java实现它吧!

程序中使用的数据结构和符号说明:

HitBrick类

GreenBallThread控制小球路线

xUp,yUp,bouncing定义变量存储16位数值形式

x,y小球坐标

xDx,yDy坐标增量

MAX_X,MAX_Y坐标最大值

renew初始化

label标签

Rx,Ry横板坐标

Brick[]砖块

ball小球

HitBrick()定义小球横板及砖块位置坐标

keyPressd(keyEent)定义小球启动键(按空格键启动)

keyReleased(keyEvent)接收键盘事件侦听器接口)

keyTyped(keyEvent)键入空格键时调用keyEvent

paint(Graphics)对砖块填充颜色

move定义小球的运动轨迹和砖块的消失

main主函数

BallThread类

通过继承Thread类使Ball类线程化,并把小球的弹跳动作放进Run()中执行

Brick类

定义砖块坐标位置和砖块按钮

Ball类

定义小球坐标位置

程序设计流程:

程序中使用的部分方法解释

开始命令:空格键

privateJLabellabel;定义一个标签,label=newJLabel("按空格键开始");内容为空格键开始,addKeyListener(this);定义一个键盘监听器,

bb0a646b42fffff3d50d091d38910b57.png

重置并开始游戏

小编整理了一份java学习资料,私信回复【01】,获取源码。

89394aefa04b9911c921dd4495c557c5.png

移动命令:方向键左键和右键

ed18bd663de19acd5ec0c16509160fa9.png

同开始命令原理,如果键入左键,横版向左移动20个单位(Rx为横板坐标),如果小球还在运动,当横板移到最左侧(Rx=0),不能再向左移动,则横板靠在最左侧(Rx=0),

cc174e7f13c808170f7eda4d67435671.png

向右移动同向左移动原理,因为定义界面横坐标最大值为300,横板长度80,故Rx=220时碰最右侧

砖块设定:

b218633c59673ae4125e590e4ccf7ba4.png
2a4ec4e57f5eabb75576b2cdebb0681d.png

brick[0]=newBrick(0,60,50,20);设置砖块坐标,ball=newBall(150,450,10,10);和小球的坐标

if(brick[i].visible==true)判断砖块存在,用switch语句,逐个对砖块填充颜色,最后四行代码是分别对小球和横板颜色坐标的定义

小球的移动:

ff499c44fea4a92b8419174e71d1bd66.png

定义小球的速度,若发生错误,则执行catch语句,打印错误

c31b8a7382abec7251cfab4c7737602c.png

当小球接触到砖块时,砖块不可见(消失)

6c364b3ea27bcc61105bdae061ee458d.png

判断小球坐标和横板坐标,当小球落在横板坐标之内,小球反弹,小球横坐标和纵坐标都以一个随机值改变后运动

c79d4eff224679f3cb4c9b93f2ba1dc4.png

判断小球横坐标如果在增加,小球横坐标=小球原横坐标+小球横坐标增量,否则小球横坐标=小球原横坐标-小球横坐标增量;纵坐标同理

61aa66ecc302a04dfa43a9e5bff9fad7.png

判断小球到画面顶部(定义顶部的纵坐标为0),小球向下反弹,原理同小球和横板接触的反弹规则,否则,判断小球纵坐标是否大于MAX_Y-15(纵坐标最大值-15),反弹规则改变为横坐标不变,纵坐标随机改变

84696818f254a1352b6e556f9cc724d4.png

判断小球到画面最左侧(定义最左侧横坐标为0),向右侧反弹,反弹规则同小球和横板接触的反弹规则,或者小球到画面最右侧,向左反弹,反弹规则同上,(if(x>=MAX_X-10)判断小球是否到右边侧,小球的直径为10)

a00c80740bbcbba4ec761ec11f69b5df.png

如果所有砖块都不可见,则重新玩

a66b598e2c04379db3dce70c005011ed.png

重新开始,初始化,小球静止,所有砖块可见,小球在横坐标方向,可随横板移动而移动,纵坐标在未开时游戏前不能改变,定义小球横坐标和纵坐标增量都为1,小球初始位置坐标(150,450)横板初始位置坐标(120,460)

1fce8112d4ffd24a4049c0aa621f9f1b.png
9f885ace3013a8618bb04a1b1835777d.png
eb7cd7bb44e9dccd7fb12c8c457fccd2.png
f85547a0770b5beee6376066419a3254.png
288b183958e6cc28b32e7a109ec7a02d.png
46179f4ea82065ae6016d60b82961fd8.png

游戏界面展示:

9da74876173d665f19ee1decea013cc5.png

声明:本文内容来源于网络,如有侵权请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值