Skip to content

Commit 0e2cd86

Browse files
committed
task2
1 parent e8d2a3e commit 0e2cd86

File tree

4 files changed

+88
-12
lines changed

4 files changed

+88
-12
lines changed
49.5 KB
Loading
9.17 KB
Loading
9.32 KB
Loading

2015_summer/task/game_yangfan_02.md

+88-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,100 @@
1-
# 游戏扬帆班任务二 - 打飞机游戏
1+
#游戏扬帆班任务二「打飞机」
22

33
## 任务描述
44

5-
实现一个在移动端玩的飞机战斗游戏,通过手机左右倾斜来控制飞机的水平位置移动,击打对面的敌机,并躲避敌人的子弹
5+
实现一个移动端游戏,玩家通过手机左右倾斜来控制飞机的水平移动,射击不断出现的敌机,并躲避敌机的冲击。
66

7-
[点击查看示例](http://www.4399.com/flash/122374.htm)
7+
![示例图](../asset/game_yangfan_task2_01.png)
88

9-
示例仅做参考,可按照自己想法任意设计界面及玩法
9+
## 任务步骤
1010

11-
## 任务要求
11+
### 1. 技术选型
1212

13-
* 通过手机左右倾斜来控制飞机的水平位置移动
14-
* 飞机爆炸有一定的爆炸效果
15-
* 敌机至少有两种
13+
参见:[技术选型说明](https://github.com/baidu-ife/ife/blob/master/2015_summer/task/game_yangfan_01.md#1-技术选型)
14+
15+
### 2. 游戏状态设计
16+
17+
本游戏包含四个基本状态:
18+
19+
- 欢迎状态:包含欢迎信息、开始游戏按钮、选项设置等;
20+
- 关卡状态:包含游戏的主体元素与核心玩法;
21+
- 暂停状态:通过关卡状态的暂停按钮触发,包含回到游戏按钮、重新开始按钮;
22+
- 结束状态:游戏关卡结束时触发,包含该局分数、最高记录、重新开始等元素;
23+
24+
### 3. 背景
25+
26+
- 利用「首尾相接」技巧,让一定高度的背景图片做反向循环滚动,造成主角向前行驶的视觉差;
27+
- 可以在背景的基础上添加更多的图片层,以不同的速度滚动,形成远近层次的效果;
28+
29+
### 4. 主角
30+
31+
本游戏主角即为我方飞机,它在飞行时会以帧动画的形式显示,例如下图的两帧构成飞机喷气的效果:
32+
33+
![主角帧1](../asset/game_yangfan_task2_02.png)
34+
![主角帧2](../asset/game_yangfan_task2_03.png)
35+
36+
可以增加更多帧使动画更加细腻流畅。
37+
38+
### 5. 子弹
39+
40+
- 初始位置:以所属飞机位置为基准;
41+
- 飞行效果:一旦发射,垂直方向移动,水平方向不变;
42+
- 回收机制:对于频繁创建和销毁的对象,可利用[对象池](https://zh.wikipedia.org/wiki/%E5%AF%B9%E8%B1%A1%E6%B1%A0%E6%A8%A1%E5%BC%8F)进行内存优化。
43+
44+
### 6. 操控
45+
46+
通过手机左右倾斜控制主角水平移动:
47+
48+
- 利用 HTML5 提供的重力感应特性实现;
49+
- 可以考虑倾斜速率对主角移动速度的影响;
50+
- 尽量适配移动端多设备多浏览器;
51+
- 开发时可以使用 Chrome 的传感器模拟功能进行调试;
52+
53+
参考资料:
54+
55+
- [检测设备方向](https://developer.mozilla.org/zh-CN/docs/Web/API/Detecting_device_orientation)
56+
- [使用 HTML5 设备方向检测特性开发的重力小游戏](http://www.gbtags.com/gb/share/4247.htm)
57+
58+
### 7. 敌机
59+
60+
- 至少有两种类型的敌机,各类型之间在贴图、生命值、移动速度、出现频率、击落奖励等方面有所不同;
61+
- 随机初始位置和出现时间;
62+
- 数量随分数增加而增加,或设置阶段性阈值;
63+
- 选用合理的回收机制。
64+
65+
66+
### 8. 碰撞检测
67+
68+
- 检测一:子弹与敌机的碰撞;
69+
- 检测二:敌机与主角的碰撞;
70+
- 主角、敌机的爆炸效果(帧动画或粒子效果)。
71+
72+
### 9. 暂停与屏蔽
73+
74+
暂停按钮触发暂停状态:
75+
76+
- 屏蔽重力感应,屏蔽关卡状态的可点击元素;
77+
- 暂停主角、敌机、子弹的飞行,暂停背景滚动,暂停帧动画。
78+
79+
### 10. 收尾
80+
81+
- 关卡状态的其它界面元素,如记分板;
82+
- 其余游戏状态,即欢迎状态和结束状态,以及对应的转场逻辑。
83+
84+
### 11. 扩展
85+
86+
想一想,怎样扩展可以使游戏更有趣呢?
87+
88+
比如:
89+
90+
- 天降各种类型的道具,如改变子弹类型的、全屏攻击的、短时间内无敌的,等等;
91+
- 敌机也会发射子弹(考虑到操控的特殊性,应注意适当调试参数以控制游戏难度);
92+
- BOSS 战,引入人工智能;
93+
- 子弹非自动发射,而是通过特定的操作;
94+
- 音效/音乐;
95+
- ……
1696

1797
## 任务时间
1898

1999
7月27日 至 8月14日
20100

21-
## 学习资料
22-
23-
* [春季班学习资料](https://github.com/baidu-ife/ife/tree/master/2015_spring/task/task0001)
24-
* [春季班学习资料](https://github.com/baidu-ife/ife/tree/master/2015_spring/task/task0002)

0 commit comments

Comments
 (0)