8.1 贪吃蛇界面绘制
一个游戏由哪几个部分组成呢?
简单来说,主要就两部分:图形界面 和 逻辑(java基础绘图流程控制)
- 图形界面:
- 首先就是游戏的布局,你可以理解为 一个 二维的 表格,我们会将图形画进去!
- 然后在时间的概念下,每秒就刷新 多少次。这就是我们所说的 “帧数”!无论是动画,还是游戏,帧数是使它们能动起来的原因。帧数越高,显示的动画就越流畅!
平时的 30fps、60fps 指的都是 一秒内 刷新画面的次数 是多少!(连起来就是动画,拆开来就是静态显示给你的图像)
- 逻辑
- 我们的所有逻辑,都是 JavaSE 学过的流程控制语句,和自我培养的 编程思维。
- 这里我们要 使用 一个叫做 Timer定时器(或者我们管它就 “时钟”),来进行 画面的刷新(实现帧数),还需要用 到 键盘监听(KeyListener)
8.1.1 设计每个元素点的大小 和 创建主程序窗口!
- 设计每个元素点的大小为 25 像素
- 整体面板为 900x720 像素大小(设定窗体大小为 916x728 即可)
- 然后创建一个 JPanel 面板,直接添加到窗体上,JPanel 会自适应填满整个窗体!(默认布局就是尽量的填充)
- 创建 Data 图片素材类
用 class.getReSource 获取到 URL 路径,然后通过 new 一个 ImageIcon 图片图标的对象,来进行图片的存储!
- 创建 GamePanel 类
面板里面有个方法 叫做 paintComponet(),它是Swing 用来绘制窗体的 组件的。仅仅只是用来绘制 窗体内的组件,而不绘制 其它的东西。
Swing中的paint方法被调用时,paintComponent、paintBorder、 paintChildren 这三个方法也会被按顺序调用,之所以要按这个顺序调用是为了保证子组件能正确地显示在目前这个组件之上。
所以我们说一般在使用 Swing 的时候,都是用 paintComponet 来进行 画画的,而不是 Paint(因为Paint涉及的东西太多了。)并且 Swing 只要涉及到 Paint 的方法,都不要 把 super 方法的调用删掉。(否则可能会发生各种奇怪的事情!)
AWT 里的 paint 是可以随便重写的,不会对 本身的任何东西造成影响。
通过 g这个对象,我们就可以进行绘画了。先填充背景颜色,然后 绘画 游戏区域 g.fillRect(25,75,850,600);(画个矩形,不就相当于 游戏区域了吗 ~ ~)。
- 主程序搭建
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/3559.html