程序员用Java实现扫雷小游戏,引来广大网友狂点赞,直呼炸天
扫雷游戏想必大家都玩过,但有没有想过自己开发呢?Java开发过许多小游戏,其中扫雷给小白来练手非常适合不过了。
话不多说,首先展示一下游戏界面:
实现过程如下:
首先设计一个二维数组,用于存放雷和周围八个格子雷的个数,再定义两个一维数组分别存放雷的X和Y坐标,布雷,记录周围八个格子雷的个数。
我使用的是EditPlus(新建Java项目Boom,新建package:boom,新建Class:Block)
代码:
建立一个顶层容器JFrame,上面添加一个JPanel——JpMain,使用BorderLayout布局North为重新开始按钮,Center为雷区(新建一个对象,把雷区进行了封装),South为选择难度区域(任然使用一个JPanel,上面添加JRadioButton单选器),顶层容器代码:
(在Boom项目下新建Class,命名为SuperJpanel。)
代码
创建一个对象——雷区对象的初始化,整个雷区使用一个JPanel包含,这个JPanel使用GridLayout布局方式,雷区有多少个格子就添加多少个JPanel,使用卡片布局方式,每个JPanel中有两个卡片,第一个卡片为按钮,第二张卡片为JLabel——用于显示雷,周围雷的个数。
(新建Class命名为CenterJpanel)
PS:将遍历周围八个数组封装成方法,再递归调用,最后发现因为递归层次太多极其容易卡死,所以不得不另想办法,最后想到了使用队列,把每个0的点放入队列,直到判断到不为0的地方。
代码:
新建Class ——BoomMain 勾选产生主函数
主函数,初始化一个SuperJpanel对象
代码:
用Java开发简单又好玩的——雷霆战机小游戏,几行代码就搞定
- 资源加载
- 音乐播放
- 创建类
- 创建爆炸和珍宝类
- 创建导弹和飞机类
- 鼠标键盘控制
新建项目:Java Project -> planewar
将图片文件资源和音乐文件资源拷贝到项目中
然后我们导入第三方的jar
我们将jar包存放的目录拷贝到项目中,防止找不到jar
选择项目属性
选择java build path,找到图示中jar的位置
我们创建如下包结构
然后我们开始编写代码:
我们创建一个类constant
我们再创建一个图片读取的工具类
我们创建一个窗体类,编写一个绘制图形的方法线程
构造方法
创建主窗体系
补充一部分代码
主方法
此时可以加载出图片
我们创建一个播放音乐的类
在主窗体中添加属性
我们读取对应的音乐文件
此时音乐可以正常播放
此时画面图片刷新有明显的闪动,我们再加一段代码
此时界面正常,没有闪烁现象
我们需要创建飞机、珍宝、导弹、爆炸、等实体
我们先创建一个方向类
我们先创建类Bullet
继续补充属性
初始化的图片
初始化的代码
构造方法
赋值属性
条件语句中的代码 表示是不是\”友好\”的
Else中包括一个if else 表示如果是敌方的,那么是不是Boss发出来的
不是boss的敌方
创建两个方法,的移动和绘制,需要控制是不是出界
击中飞机的方法
创建一个矩形
多个飞机击中判断
在主窗体中创建对应的属性就可以了
我们需要创建飞机、珍宝、导弹、爆炸、等实体
我们创建爆炸类
我们在主窗体中创建集合类
设置属性和对应的资源
设置构造方法和属性方法
我们绘制爆炸效果
我们继续创建珍宝类
在主窗体中创建集合类
创建对应的属性类
创建对应的构造方法和属性方法
创建绘制和移动方法
我们继续创建导弹类
我们创建集合类
我们编写对应的属性
两个构造方法和矩形绘制
编写绘制图形的代码
我们需要创建飞机、珍宝、导弹、爆炸、等实体
我们创建导弹类(其中会用到飞机类,我们先简单创建一个飞机类)
增加主窗体的集合类
我们继续创建导弹类
我们创建集合类
我们编写对应的属性
两个构造方法和矩形绘制
编写绘制图形的代码
我们创建移动方法
我们继续编写创建击中的方法
多个击中的方法
我们创建使用于boss敌机的导弹
对应的属性和构造方法
绘制方法和简单计算
移动方法(这个比较长注意看)
移动方法(这个比较长注意看)
创建击中方法
我们继续补充飞机类的内容
图片资源加载(代码较长注意)
构造方法
绘制方法和其它一些属性方法
控制按下的代码
释放的代码
开火的代码
BOSS
开火的代码
方向控制
移动方法
暴走方法
控制键盘和鼠标,我们现在主窗体添加一些属性
我们再创建一个线程类
对应的构造方法和属性
线程运行类
主窗体中我们添加新的内容
我们添加两个事件监听的方法
键盘监听
主方法执行
游戏开发新手必知:哪种编程语言能为你的游戏梦想添砖加瓦?
Hello!这里是W3Cschool编程狮的小狮妹。
游戏开发一直以来都是编程领域中备受关注的一个重要方向。想象一下,在虚拟的游戏世界里,你可以成为超级英雄、探险家,创造自己的独特宇宙。游戏世界无限广阔,而成为一名游戏开发者就像是成为了这个神奇世界的创造者之一。
不过,对于编程的初学者和从业者来说,选择适合自己的编程语言可能是一项挑战。市场上有很多种编程语言,每一种都有自己的优缺点,那么你应该如何选择适合游戏开发的编程语言呢?
其实,这没有一个绝对的答案,因为不同的游戏平台和类型可能需要不同的编程语言。但是,小狮妹可以根据一些常见的游戏平台,给大家一些参考的建议。
首先要考虑的是游戏将在哪个平台上运行。一般来说,游戏平台可以分为以下三类:
PC端或主机端
如果你想开发PC端或主机端的游戏,那么你最好学习C#或C++这两种编程语言。这是因为:
- C#和C++都是高性能的编程语言,可以充分利用硬件资源,提高游戏的运行速度和画面质量。
- C#和C++都支持面向对象的编程范式,可以让你更好地组织和管理游戏的代码结构,提高代码的可读性和可维护性。
- C#和C++都有很多成熟的游戏引擎和库,可以让你快速地开发出各种类型和风格的游戏。例如,Unity、Unreal Engine、Cocos2d-x等。
- C#和C++都有很多参考资料和社区支持,可以让你在遇到问题时找到解决方案。
移动端Android平台
如果你想开发移动端Android平台的游戏,那么你最好学习Java这种编程语言。这是因为:
- Java是Android平台的官方开发语言,可以直接使用Android SDK进行游戏开发,无需额外安装其他工具或环境。
- Java是一种跨平台的编程语言,可以让你的游戏在不同的设备上运行,无需修改代码或重新编译。
- Java是一种易学易用的编程语言,它有着简洁明了的语法和丰富的内置类库,可以让你快速地掌握基本的编程概念和技巧。
- Java也有很多优秀的游戏引擎和库,可以让你轻松地开发出精彩的游戏。例如,LibGDX、AndEngine、Corona SDK等。
移动端IOS平台
如果你想开发移动端IOS平台的游戏,那么你最好学习Objective-C这种编程语言。这是因为:
- Objective-C是IOS平台的原生开发语言,可以直接使用Xcode进行游戏开发,享受苹果公司提供的优质服务和资源。
- Objective-C是一种基于C语言扩展的编程语言,它兼容C语言的所有特性,并增加了面向对象和动态特性,可以让你更灵活地设计和实现游戏功能。
- Objective-C也有很多专业的游戏引擎和库,可以让你打造出高品质的游戏。例如,SpriteKit、Cocos2d-iphone、Unity等。
除了上述主要语言之外,游戏开发人员可能还需要学习其他编程语言,以胜任各种工作任务。
例如:
- Lua:一种轻量级的脚本语言,可以用来编写游戏的逻辑和交互,或者作为游戏引擎的扩展语言。它有着简单的语法和高效的性能,可以让你快速地实现游戏功能。很多游戏引擎都支持Lua语言,例如,Cocos2d-x、Corona SDK、Love2D等。
- JavaScript:一种广泛应用于网页开发的脚本语言,可以用来开发基于HTML5的网页游戏,或者作为游戏引擎的扩展语言。它有着灵活的语法和强大的功能,可以让你创建出丰富多彩的游戏效果。很多游戏引擎都支持JavaScript语言,例如,Phaser、Pixi.js、Three.js等。
- HTML5:一种用于描述网页结构和内容的标记语言,可以用来开发跨平台的网页游戏,或者作为游戏引擎的基础技术。它有着简洁明了的标签和属性,可以让你方便地布局和显示游戏元素。很多游戏引擎都基于HTML5技术,例如,Phaser、Pixi.js、Egret Engine等。
- Python:一种优雅易读的编程语言,可以用来开发各种类型的应用程序,包括游戏。它有着丰富的内置类库和第三方模块,可以让你轻松地实现各种功能。它也有一些专门用于游戏开发的库,例如,Pygame、Pyglet、Panda3D等。
编程语言的选择取决于你的目标和水平,你需要根据自己的情况来做出合理的决定。一般来说,编程语言的选择可以分为以下两种情况:
- 如果你是一个初学者,想要通过学习尽可能少的编程语言来从事游戏开发,那么我建议你选择C++和Java。这两种编程语言都是非常通用和强大的编程语言,可以涵盖大部分的游戏开发需求,而且学习资源也很丰富。你可以通过学习C++来开发PC端或主机端的游戏,也可以通过学习Java来开发移动端Android平台的游戏。而且,这两种编程语言都跟Objective-C比较相似,都是在C语言基础上发展来的,所以你学习C++之后可以在短时间内掌握Objective-C,从而也可以开发移动端IOS平台的游戏。
- 如果你是一个从业者,想要提高自己的技能和水平,那么我建议你学习多种编程语言,并根据不同的任务和需求来选择合适的编程语言。因为游戏开发是一个需要不断学习和更新的领域,因为游戏技术和市场都在快速变化,所以你需要掌握多种编程语言和工具,以及适应不同的游戏风格和类型。你可以通过学习Lua、JavaScript、HTML5、Python等编程语言来增加自己的灵活性和创造性,也可以通过学习C#、Objective-C等编程语言来增加自己的专业性和效率。
总之,游戏开发需要用到不同的编程语言,而且没有一种编程语言是万能的。选择适合自己情况和职业发展的编程语言对于游戏开发至关重要。你需要根据自己的目标和水平来选择合适的编程语言,只有这样,你才能做出好玩的游戏。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。