尚学堂高琪--简单飞机小项目
作者:互联网
花了一个星期时间大致过了一遍java基础部分的内容,感觉心里空荡荡的,自己写代码也无从下手,为此找了一个小项目来练练手,巩固一下java语法和继承的内容。
参考的尚学堂高琪视频:Java300集
尚学堂java300集随堂课件:速学堂
我写的代码在这:plane_game.rar,CSDN不要积分下载。
,在这里记录一下我的学习笔记。
1.游戏主界面窗口及图形和文本的绘制
- 继承JFrame类,画出一个窗体;
- 注意坐标问题,窗口和物体的左上角顶点为原点;
- 关于窗口关闭问题的设计
这里我还不是太熟悉AWT相关操作,后期再慢慢复习。
2. ImageIO实现图片加载技术
这里需要注意的是图片路径问题,细节方面在代码的注释中解释
3.多线程和内部类实现动画效果
跟漫画一样,不断地重画可以造成动漫效果。这里利用多线程和内部类,每次重画时改变飞机的位置,由于时间相隔很短在cpu执行时间内,人眼看到的就是动起来的效果。
(注:因为JFrame闪烁特别严重,加一段双缓冲技术,解决闪烁问题,这里对于该知识点还是不太懂,直接复制粘贴的,但是在我的电脑上效果不太好,可能是电脑原因)。
4.游戏物体父类及子类设计
写一个GameObject父类,飞机Plane炮弹Shell都继承此类,
通过此例子可以理解构造方法的作用,以及将飞机plane类封装
5.飞机类增加键盘控制方向
在飞机类中增加两个按下和抬起,以此控制飞机移动的方法,并从写父类中画出自身位置的方法。
6.在炮弹类中实现任意角度飞行和反弹
增加一个用Graphics g画笔画炮弹的方法,并增加用简单三角关系实现任意角度飞及碰撞反弹的方法。
7.容器对象存储多发炮弹
为了存储多发炮弹,定义一个容器ArrayList来管理这些对象,循环遍历这些炮弹并画出来,就会在窗体上出现多个炮弹。
8 .利用矩阵检测进行飞机炮弹碰撞检测
在主函数所在程序的画图方法中增加飞机和炮弹的矩形检测代码,碰撞了则飞机消失。
9. 新增爆炸类并轮播实现爆炸图片
主要思想是,爆炸类中定义一个static区域实现16组爆炸图片循环以出现爆炸动画,然后主函数中new该类。
10.最后增加计时功能
主要为两点:
-
时间计算:当前时刻- 游戏结束的时刻
-
显示时间到窗口
这里我对Date这个类不太了解,基本上是参照视频写的。
总结:
自己从头到尾把这个小项目的代码敲下来并加以理解,加深了我对java面向对象中继承关系的理解以及强化了eclipse的操作和部分基础语法的印象,虽然部分代码实现还不太明白,但保持继续学习的心态最后总归要把它弄清楚的。
标签:高琪,飞机,java,代码,炮弹,学堂,父类,类中 来源: https://blog.csdn.net/qq_35027690/article/details/105893854