1.概述
相信很多小伙伴和答主一样,在学完javaSE之后面临以下的灵魂拷问—–
1 知识点零散,如何将串联起来呢?
2.基础的知识点已经学完,对于项目“我”已经跃跃欲试了
3.网上的资源零散,缺少详细又难度适中的项目练手
那么在这个过程中我们的目的便是——
将知识点整合,对于项目有具体而明晰的思路,这有助于为自己以后的学习增加经验与自信心。
闲言少叙,让我们先来一睹飞机大战的真容吧——
2.成果展示
3.核心知识点
核心知识点 | 重要性星级 |
---|---|
面向对象的思想 | * * * * * |
函数化,结构化编程 | * * * * * |
接口,抽象类,静态代码块 | * * * * * |
重写run方法实现多线程 | * * * * * |
Swing图形化界面,以及添加相关鼠标事件 | * * * * |
使用集合存储对象,并使用集合的相关方法 | * * * * * |
4.项目需求
英雄机发射子弹,敌机(飞机+小蜜蜂)自上而下产生,命中敌机加分,命中小蜜蜂得双倍火力或者赢得一条命,如果撞上飞机或者小蜜蜂,将减命,双倍火力清零,当生命值为0时,游戏结束
5.项目思路
6.重点代码展示与分析
(1)定时器
Time(定时器)的全名为java.util.Timer,该类用于线程调度任务在后台线程中执行一次或多次,这个类线程安全:多个线程可以共享一个单独的Timer对象,而不需要外部同步,另外需要注意的是,这个类可以扩展到大量并发计划任务。在内部,它使用二进制堆表示其任务队列,因此计划任务的成本为O(log
n),其中n为并发计划任务的数量,所有的构造函数启动定时器线程。
常用方法
schedule(TimerTask task, Date firstTime, long period);//从指定的时间开始对指定任务执行重复的固定延迟执行
局部代码
int interval=10;
Timer time=new Timer();
time.schedule(new TimerTask()