关于实践周的第一个项目选择了制作Flying Birds小游戏,预备知识包括面向对象的封装,swing和awt包,Math类,事件监听器,多线程。
关于一些具体参数为何设置实际上应该是和所给素材图片的大小有关,其实也可以利用相关get函数读取相关参数输出后,就可以知道。
以此造成的影响包括图片设置的位置x,y的设定以及小鸟初始位置的设定,以及窗口大小设定。
总的来说,关于设计一个完整项目,最重要的是了解类的属性关系以及类的相关方法。
回顾总设计流程如下
1.绘制面板,放入背景图。
2.设计地面、柱子类完成移动的效果(移动方法实现)。
3.设计小鸟,完成飞行轨迹、与柱子是否碰撞的方法等。
4.设计游戏类,完成游戏类界面的绘制。
5.设计游戏开始的方法与流程。
6.增加鼠标监听器完成对小鸟飞行及游戏运行的控制。
具体知识点包括
变量
1.分支语句
2.循环语句
3.面向对象
4.异常处理
5.Random随机数
6.StringBuffer字符串操作
7.IO操作
8.多线程
9.swing组件和awt组件
10.Math类函数调用
相关知识点是在边学习边使用,需要更加理解并灵活运使用
Flying Birds总结回顾要点
动画参数中重要参数循环中的i
1 | //初始化动画帧参数 |
由于在source的文件里表示小鸟的图片有8张i是从0开始对应图片source0.jpg,所以i的循环中从0到7满足就是对souce里面source0.jpg到source7.jpg的遍历。
此处弧度作用
1 | public boolean hit(Ground ground) |
判断条件中判断到撞击地面后, alpha=Math.PI/2实际上将小鸟的弧度重置为Math.PI/2,表现在游戏中gameover的时候小鸟摔了个底朝天。
More info: 小鸟被撞翻啦
repaint()方法
1 | //休眠1000/60毫秒 |
repaint()这个方法是一个具有刷新页面效果的方法,如果你要页面进行重画就可以调用.一般都是在AWT的图形绘制当中调用的到
工作原理如下:
repaint()方法
|
|
V
AWT线程--->paint()方法-->图形绘制
|
|
V
update()方法--->paint()方法--图形绘制
主要需要判断出现的两大界面
1 | int state;//游戏状态 |
通过Bird类里面的碰撞判断再来判断Birdgame类里面的state//状态常量,通过状态常量在switch语句里面的条件判断情况后,绘制
不同情况下所应该显示的对应图片。
JFrame的使用到的代码
1 |
|
JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel。
JFrame 用来设计类似于 Windows 系统中窗口形式的界面。JFrame 是 Swing 组件的顶层容器,该类继承了 AWT 的 Frame 类,支持 Swing 体系结构的高级 GUI 属性。
JPanel 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。
JFrame常见使用方法
1 | JFrame jf = new JFrame("我是标题鸭!!!");//创建一个JFrame对象 |
JPanel常见使用方法
1 | //构造方法 |
More info: JPanel和JFrame的使用方法