-
【10-25】OOP基础-飞机游戏知识点
知识点
![图片1_thumb 图片1_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233238536-1491505717.png)
- 鼠标适配器类为抽象类,使用匿名子类实现鼠标事件的重写,创建一个鼠标适配器对象
![图片2_thumb 图片2_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233242036-644409452.png)
- 添加鼠标事件监听器到JPanel对象实现鼠标的响应
![图片3_thumb 图片3_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233248114-1667755661.png)
- 创建定时器Timer对象,在定时器的任务列表方法schedule中,添加一个定时器任务TimerTask抽象类的匿名子类对象,并重写run()方法,实现定时任务
![图片4_thumb 图片4_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233257255-1961495773.png)
- repaint()方法默认调用JPanel的子类重写方法paint(),使用参数Graphics对象的drawImage(BufferedImage,x,xy,null)方法实现画面填充
![图片5_thumb 图片5_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233302614-1735605654.png)
- 使用Graphics对象的set方法设置画笔的参数,drawString(String,x,y)方法填充字符串
![图片6_thumb 图片6_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233307083-223749292.png)
- 要显示画面,添加一个JPanel对象到JFrame对象,设置框架参数,显示画面
![图片7_thumb 图片7_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233318552-127008339.png)
- 飞机发子弹是通过飞机对象的shoot()方法返回一个Bullet对象数组实现的
![图片8_thumb 图片8_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233329552-1767401529.png)
- 添加射击的动作把飞机方法产生的子弹添加到子弹数组,利用定时重绘就产生连续发射的效果
![图片9_thumb 图片9_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233337364-244947079.png)
- 由于定时器每隔interval执行一次run方法,因此利用整除和取余的技巧实现interval的设定倍数添加对象到数组
![图片10_thumb 图片10_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233339458-1016555687.png)
- 创建BufferedImage对象为Graphics对象提供参数进行画面绘制,利用ImageIO.read(ClassName.Class.getResource(String))静态方法获取资源
![图片11_thumb 图片11_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233351161-71121474.png)
![图片12_thumb 图片12_thumb](https://images2015.cnblogs.com/blog/563149/201510/563149-20151025233352411-713894730.png)
ClassName.class.getResource(String)方法
- 当String加根目录的斜线时,表示从包外为根目录(也就是项目路径)来获取资源当不加斜线时,表示从当前包为根目录来获取资源
ClassName.class.getClassLoader().getResource(String)方法
- class.getResource("/")==class.getClassLoader().getResource("")
- 只能访问项目内的文件,怎么去访问项目外的文件?
- 总结一句话就是,不加斜线时getClassLoader().getResource(String)时以项目路径为根目录,而class.getResource(String)则是以包为根目录(前者以类加载器为寻找依据,后者以类路径为寻找依据)
-
相关阅读:
2072=删数问题
2872=M--二分查找
4165=全排列问题
2805=大家快来A水题
4148=1.1联结词真值运算
2748=第X大的数
3479=青蛙过河
1200=汉诺塔
Leetcode92_反转链表II
Leetcode206_反转链表
-
原文地址:https://www.cnblogs.com/achievec/p/4910020.html
Copyright © 2020-2023
润新知