↓↓↓↓↓↓↓↓↓↓↓↓点击查看其它网站与此相关的信息!↓↓↓↓↓↓↓↓↓↓↓↓↑↑↑↑↑↑↑↑↑↑↑点击查看其它网站与此相关的信息!↑↑↑↑↑↑↑↑↑↑↑↑↑
: Y# o" Y" N N V v% P: }; m- m; p& V以上为成品御览~~~
7 F; g) G; f8 o% h3 I* ?2 O
' Z, S: f( ?% n, h% p
如果你感兴趣,先把所有源文件下载,然后对照文件看以下教程,其实光看源
文件已经非常清楚了,因为我大量注释,而且分步骤写代码,但还是想罗嗦几句,力求一看就懂(函数的使用可按F1查看帮助):
% R& N" C* p9 T/ g
7 c& m( C4 O$ h: j! R. ~! i- ~/ {第一步,自定义鼠标:
! f1 j* Y' h) f% a C7 H! ~, \
CTRL+F8加入新元件,画个魔法棒,做三帧,第一帧为普通状态,第二、三帧为按下状态,若按下状态只有一帧,动画太快。在库中(CTRL+L打开库)右键单击该元件,选择链接,在对话框中选定“为ActionScript导出”,然后在标识符输入一个名字,我的是mouse。这样attachMovie就能运行时导入影片魔法棒,创建鼠标侦听事件,做到棒子代替原鼠标图案。
# I3 H0 b) K/ b- i4 q
第一步:自定义鼠标效果.rar
& Y4 \9 I. Z9 G7 N+ p0 K: c! K. q# q6 h8 m4 `9 W7 _( y
[attach]32553[/attach]
& n, X9 R, q1 _& X: M8 ]* K, p
第二步,鼠标追随:
/ H/ M& @' R$ r# h 加入新元件(CTRL+F8),800%视角画个小星星,元件命名为flashStar,再加入一个manyStar,将flashStar拖入manyStar,同时
flashStar的属性的实例名称命名为mc0,它就是追随中的带头大哥,在manyStar里写代码,先复制一群小弟,后一个追着前一个跑就行了。然后将manyStar拖入场景,命名为mc,在代码处加入开始确定mc位置的代码就好了。简单吧,关于命名的东东我往后不详细说了。
$ v p; M: a8 G6 I
第二步:鼠标追随效果.rar
0 w! y5 ~7 c5 Y
8 x3 D. C, v% x/ U[attach]32554[/attach]
0 ?5 Y, d6 M2 b& `2 U* d
- q1 x2 {$ O" ]: L% N0 P) t% S, f# q& {第三步,变化的星星:
) h% ^; P, |8 Q7 ~" C- t
修改flashStar,让它做变色动画,这样我们的星星就能边追随边变色,再搞个revolutionStar,将flashStar加入其中,让flashStar做旋转动画,接着在manyStar中把原来的flashStar交换成revolutionStar(在属性框中交换),星星可以追随、变色加旋转了!这样我们完成了三个影片的嵌套使用,manyStar套revolutionStar套flashStar,关于嵌套我又不多说了。做个moveStar,套上revolutionStar,做引导线运动,引导线就随便画吧,再将manyStar中的revolutionStar交换成moveStar。
d; n8 l% Q! W5 J8 I" { 第三步:变化的星星效果.rar
% J: V% I% d# N) V3 U( L
3 K9 u; P$ @+ y J( x k8 p
[attach]32555[/attach]
; s: W! t8 S! b. @ r- ?, d: v* Z- {- j' P( E1 j! q
第四步,一堆星星:
- Z2 U) o) |' B+ n 做randomStar套moveStar随机决定其位置,再交换,做个allStar套randomStar将其复制出六个,旋转它们角度到六个方向上,再交换。好了群星追随全部完工。
- d; J! o) X9 {* V& s+ [- j" C
第四步:一堆星星效果.rar
9 Q% ^. |2 F8 f2 j. E' G) h# s! O) X: g# a
[attach]32556[/attach]
& w! t- _' e7 x+ O5 e: }. C
' c6 e2 R' r* {7 X' x6 p$ U: v5 }第五步,物体下落:
$ z% _: A) w! m
先做个函数randRange用于获取两数间的随机整数,以后多处用到。做个圆形元件第一帧停止,我的之所以持续多几帧,是为了将来设置帧标签时好看。创建this.onEnterFrame事件,这个就是游戏的主循环,意思是this(这里指主场景)进入帧后就不停的干。然后象第一步那样运行时导入圆形,设置属性,建立被导入圆形的onEnterFrame事件,这里是指这个圆形进入帧后就不停的干直到它被删除,事件中的this就指这个圆形而不是前面的主场景。通过改变_y属性做到下落,超出范围就删除。用个randRange来决定是否出现新物体下落,不然会有一堆圆形出现。还要注意的是我用了depth变量决定新物体的深度,并使它保持在一定范围内,而没有用getNextHighestDepth()方法,之所以这么做是为了保持鼠标图案的5000深度最高,这样物体不会覆盖到棒子的上面。但大家可以发现星星是在物体下面的,就是因为它的深度不够,大家可以想办法修改。
/ e7 j' R! h3 W0 k' c 第五步:物体下落效果.rar
& H5 r: O* z8 I, A
7 a1 Z0 x2 a. x, E0 u1 K[attach]32557[/attach]
* c" C# `4 C* Z; @+ T% P w, |4 @4 d
第六步,多种物体:
# M! } C8 Q) a. k* S/ H
加入多几种图形元件,在导入时随机决定种类、属性,with的用法值得注意下,这可以减少输入量。另外属性中有个叫speed的,它不是内置属性,是我们自己加的,FLASH允许不声明就使用变量,其实这个speed是新建依附于target的变量,各个导入元件的speed是不同的,所以物体以不同速度下落。
( m4 |. Y+ s! A7 `4 Z' H 第六步:多种物体效果.rar
3 }% t* r; E. M- S8 ~- t' @% ^. \/ M) I
[attach]32558[/attach]
* H1 p, r3 ]; T1 a0 J0 ^. R
* b7 N' _' S' c E* {5 S& Q
第七步,点击事件:
$ B" O( \ e2 ^1 h4 G
加入blast元件先不画东西,再修改各个物体元件,在他们后加入空白关键帧,设置帧标签(点帧看属性框)为hit,加入blast。这是为了做出点击后的爆炸效果,blast的动画就自己画了,就是做些碎片朝不同方向飞开就行了。回主代码处创建target的onPress事件,就是点这个元件后要做的事,然后this.gotoAndStop("hit")。要注意的是一定要用this而不能用target,虽然创建时target和this指的是同一个东西,但随后的运行target是会变的,而this一直都指向它的创建者。
% m7 I! M [$ ^ 第七步:点击事件效果.rar
" b" Q, x" \2 a, V7 C! a3 ^$ m* k0 S4 n" ]; ?" ^( c/ I
[attach]32559[/attach]
8 B/ A! y4 L; }. Z2 Y) }! L0 I+ i Y
* ^# g% j- }3 w& t
第八步,得分框:
2 ]* L2 {8 u k# X 这个主要自己看了,F1看帮助是好的学习方法,除Date和createTextField外就是加个score变量,在被点击时加分。
* Q% S4 A+ I) _
第八步:得分框效果.rar
Y# a; U4 T$ V: D
1 Q( ^$ ~& ` {" p% m; Z
6 ^- [5 d9 A, A4 k; w4 a; j$ s[attach]32560[/attach]
4 X1 l5 G+ R# p0 r1 ]
第九步,游戏难度变化:
, ^; \! m m6 l' V- m6 |
加入level变量,和两个关于level变化提示的元件,修改链接。score在物体超界时减少,level在updateStats()中根据score更新,再根据level变化情况导入相应levelDown或levelUp元件,同时物体下降速度和机率都根据level变化。当level到10后randRange(0, 30 - level * 2) == 11永远为假,即创建新物体行为停止,同时帧到第三,显示Win字样。至此,游戏基本完工,再改改细节,比如画布大小,背景色,帧数,在鼠标侦听onMouseMove中加入updateAfterEvent();使移动更顺畅,改改Bug,根据自己喜爱修改level,speed,score等,或加入自己的东西,但还有!
8 ~# @1 k: o$ b' f# b8 g/ u+ |5 s7 ^. X# Z9 {* c
第十步,自己搞:
, [: _( b' ~6 M* q7 D% Y7 K 重看源代码,先理解游戏整体结构,再看细节实现,充分理解后自己动起手来吧!
+ q+ q |0 c/ Z, B
8 |4 }6 u: v* ~( ^8 K 全部源文件.rar
& U1 u. j3 A7 Y. ~- V' O[attach]32561[/attach]