学习java有一段时间了,都是处于那种三天打鱼,两天晒网的状态,没有效率,因为方法不对,一直是在看资料,看视频,并没有实际上手项目,就算当时看了,记住了,最后还是不会用,或者说要到用的时候不会用。这样学下去,根本没有任何效果,反思反思再反思,为什么有的人一个星期就能理解个大概了,因为他一直玩代码啊~~~
好吧,这样就开始了自己的第一个小项目,坚持下来,会发现自己每天过得好充实,开始的时候是找了一个飞机游戏,跟着视频敲代码,虽然第一遍不懂,那就再来一遍,两遍不懂,那就来三遍,一遍一遍的理清逻辑,搞清楚方法之间的调用关系。记得有人跟我说过,招聘要求有几年经验,并不是说真正的非得工作那么几年,而是有那么几年的代码量。
总之,勤能补拙。
下面是我的小游戏最终实现的效果
有点丑,因为没有图片处理技术,慢慢来吧。然后说说这个项目中遇到的问题。
1:引用出错
Date自动引用会出现两个,一个是java.util,一个是java.sql,因为之前不懂,就随便到了一个包,结果一直出错,却又找不到原因,util是工具包,sql始于数据库相联系——导包要根据实际需要仔细看清楚,不要觉得自动提示的东西都是对的,看也不看直接导
2:初步学习,先知道怎么用,不要急于去研究那些看不懂已经封装好的内部的东西,越看越晕。
3:要让物体动起来,需要借助于线程,所以线程一定是进阶的关键点
4:算法很重要,但不要对算法死记硬背,要去理解,实在理解不了也不要老是花时间去深究,会陷入死循环,有时候,需要用时,百度一大堆,关键是要有那种思想,思维里有该用什么,,至于怎么用,度娘会帮你。
5:仔细一些,我在做的时候,创建了很多工程,每个工程里面可能会出现一些与其他工程一样的类名,然后你懂得,就可能没有及时关闭上一个工程的某个类,却又在下一个工程中运行同名类,然后错误,一直纠结哪里出错。
6:一定要静下心来,要做到不易被外界打扰,能够专心按照自己的逻辑去撸代码,一定要建立一套自己的思维体系。
7:最后一点,熟能生巧!
技能总结:
1:双缓冲解决闪屏
private Image offScreenImage = null;
public void update(Graphics g) {
if (offScreenImage == null)
offScreenImage = this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
Graphics gOff = offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage, 0, 0, null);// 内存中先画一个图片进行缓存
2:碰撞检测
飞机与子弹看成两个矩形,获取两个矩形坐标,宽度和高度,调用rect里面的intersects来检测是否相撞
3:图片轮播
爆照效果:多张图片放在数组中,依次读取
,
依次播放
4:存活计时
开始和死亡的时间计数,然后做差