找回密码
 入住遨海湾
搜索
网站解决方案专享优惠-3折上云
查看: 1200|回复: 0

土人系列AS入门教程--实战篇

[复制链接]
发表于 2004-12-16 18:15:00 | 显示全部楼层 |阅读模式

登录后查才能浏览下载更多咨询,有问题联系QQ:3283999

您需要 登录 才可以下载或查看,没有账号?入住遨海湾

×

AS 实战篇4 O$ C+ Y; ~1 _) n. z3 C' y3 ^8 I -----------------------------------# f$ F; \# W# [) q9 m% p & M2 o" a' }8 {8 } E: I; o 这次我们要进入实战,我要教你们做一个很简单的游戏,下面的每句代码我都会加上注释,如果你看过上面的教程,我想要全部理解应该不会困难。 ! S" @* \/ d- O! t现在让我们开始吧。这个游戏是我初学的时候按教程做的一个游戏,所以印象比较深刻。这个游戏叫做蜗牛赛跑,流程是这样的:画面上有若干条赛道,每条赛道上面有一只蜗牛,每只蜗牛爬行的速度不一样。游戏开始了,你要猜猜哪只蜗牛先跑到终点。如果你猜对了,You Win,否则,Game Over。 9 G4 w3 G, x+ _, D# X2 H; T第1步,我们先设置场景的大小 600*400 px ,运行速度为 48帧/秒 这个是我个人喜好速度。! l: M& K2 ^, W+ }- k 9 m; p) Y8 F& M0 J, y/ _ [img]http://www.aosea.com/attachments/UploadFile/2004-12/2004121618284979.gif[/upload] 9 F# x3 d& R& s% C& W( j& B0 Q2 `4 a8 O3 L- a( B" z , m8 n) h) B/ X6 [; q. b第2步,我们把默认的层名称改成Bkground,并且画上赛道、起跑线和终点线,我这里是4条赛道。 8 D+ E/ |+ _! G1 w 1 k, W* R/ p0 r2 L6 h$ d[img]http://www.aosea.com/attachments/UploadFile/2004-12/2004121618284615.gif[/upload] 5 T' `( c; y$ J7 E4 x" ^. U0 ~* e+ L: R C: | 7 B3 k) `" J& f3 ]第3步,新建一个层,层命名成WN_Layer,然后画一个会动的蜗牛放在这个层,F8定义成MC,MC命名成WN_MC。把蜗牛的尾巴放在整个MC的正中间,如果少了这步,蜗牛还没到终点就结束了。然后复制3个一样的蜗牛,在属性栏里面调整一下颜色,使他们看起来有点区别。然后对齐放到各条赛道的起点位置。 1 _6 W. x, B- P第4步,新建一个层,命名成btn , 然后做一个按钮,复制4个分别放在4个蜗牛的旁边。 4 } X1 w Y d( `: Y/ v : V6 |! s, z# ~3 E+ ][img]http://www.aosea.com/attachments/UploadFile/2004-12/200412161828451.gif[/upload]( k% n! S4 t$ w8 X0 i+ V3 W) l + S$ `% h8 l: I( g: ], H2 f5 L " @" w% C6 r/ {; ^ 第5步,记住蜗牛开始的X轴位置数据,我这里是25,然后把一个蜗牛拖到终点看看它的X轴位置数据多少,然后记下来,为AS做准备。我这里得到的是540。记得把它放回去哦~

1 U4 d, z: N4 M9 [

[img]http://www.aosea.com/attachments/UploadFile/2004-12/2004121618284508.gif[/upload]1 H( }, C& _- X$ g. c 7 M3 W. l) I- L1 u) \5 P. Q" S, Y第6步,新建一个层,命名为Actoins,用来写AS的。这个层我们需要4个关键帧。我来讲一下为什么。; Z6 q8 u% T- u1 y }6 T0 g1 m 我们需要一个帧来准备开始游戏,也就是让玩家猜的帧,是游戏一开始的蜗牛不动的画面。这个就由第1帧来完成了。我们做的4个按钮也就是要让玩家去猜哪只蜗牛会赢。 " B& z$ p% @# R* {; O$ {当游戏开始以后,玩家不能改变数据了,所以在乌龟爬的过程中,按钮层没有内容。3 G0 P) N0 t& H2 L( e 第2个帧我们要让每个蜗牛都爬一次,为什么只让他们爬一次呢?因为时间轴的指针经过这个关键帧的时候,只让帧里面的AS执行一次而已。为了让蜗牛不断地爬,我们需要重复的让时间指针走过这个第2帧,所以我们第3帧的内容就是要让时间指针回到第2帧。; r: q; x5 I- d 第3帧以后就是显示结果的帧了,那我们新建一个层,命名show ,做第4跟第5两个关键帧,在第4帧放一个胜利的字样,在第5帧放一个失败的字样。3 \$ ~ ~" z- f3 e* n 另外在游戏结束后,我们需要一个按钮让玩家再玩一次,所以,按钮层的第 4到5 两个帧需要一个按钮。. v' E) k o7 z, x 布置完以后,整个层的结构如图(还没有任何 AS):( b# R" n$ X9 v' _. N. z # x( t" q9 v$ z0 k" Z* ?* R[img]http://www.aosea.com/attachments/UploadFile/2004-12/2004121618284385.gif[/upload]

# R6 v' _, Z) I

9 D/ d2 Q1 p3 {1 k, g* l5 ~ 现在我们有 4 个对象 : _root.wn1 , _root.wn2 , _root.wn3 , _root.wn4 $ U* M% p( b( {: T/ K. y2 X: B下面我们一帧一帧来做: , u$ X8 f0 h* t$ u( m" d7 u" L$ ^Action 第1帧6 M Y ?& L4 o) }# ? _root.stop(); //停止时间轴- a# p: C" S4 l$ X, W _root.truewinner = 0; ) E; Y# K# Y0 k' c9 w2 E _root.guesswinner = 0; 1 \. s7 r1 G/ |/ m7 C& A后面2句代码定义了两个变量truewinner,guesswinner在_root这条时间轴。变量是用来储存数据的,可以自己定义。这里的truewinner,guesswinner分别表示 哪号蜗牛赢了 和 玩家猜的是哪号 。这里初始化了这两个数据。5 d4 s: n0 G5 s# A# N; x9 j5 Z Action 第2帧 , f; t' N& ^0 \) G_root.wn1._x += random(10)/10+random(1); //蜗牛1号的X轴数据增加某一数值& k5 ?* H2 |$ l6 l _root.wn2._x += random(10)/10+random(1); //蜗牛2号的X轴数据增加某一数值 ; K$ H5 A# f9 u. H_root.wn3._x += random(10)/10+random(1); //蜗牛3号的X轴数据增加某一数值 $ q+ u% O" t% P! H1 o$ v1 p_root.wn4._x += random(10)/10+random(1); //蜗牛4号的X轴数据增加某一数值 8 S) c6 _9 f) y9 l* A" r看过对象篇,这里理解起来不难吧? % J& L0 P) ^+ _- U_x 表示对象蜗牛的属性之一:X轴的位置。 & d7 o! t0 }2 z+= 表示自加 , 这样理解 a=a+1 和 a+=1 是一样的。表示自加1。 1 G; `, h8 Y1 i8 }: f+ q这里有个方法 , random() 6 D% m8 c! ~, @8 D9 F1 `这个方法用来获得一个随机的数字,如 random(10) 获得 0-9 中间的任何一个数字。上面的表达式获得一个从 0-1.9 的一个随机数。 3 J+ _' t% A% t: h aAction 第3帧2 r6 j/ `) ~6 I$ [9 l8 O if (_root.wn1._x>540) {% N! Z9 }2 h' A7 I _root.truewinner = 1;' ?$ q8 H/ I& b* O% W j }: x/ ]3 P" H0 W; T6 u/ h# ] if (_root.wn2._x>540) { & x* ^% I$ Y: i* J- Y3 p_root.truewinner = 2;( N9 t0 d/ ~7 X3 i# e2 l( T } + s) K0 B7 O p. t8 [3 Sif (_root.wn3._x>540) { + L2 [. r% k% T: f5 __root.truewinner = 3;, h! a$ \$ D% _1 o0 U; \5 b } 3 ~) J2 m p; q0 @7 e3 ^if (_root.wn4._x>540) {' M2 |( I; p5 U- O) j% J" {$ O _root.truewinner = 4; 8 z; B% ~: ?# O x/ O5 Y} ?5 N3 \+ U+ X. |) G, r //判断哪只蜗牛到了,到了就改变truewinner的值,纪录哪只蜗牛获胜 " ^! u; a V. `* i4 Iif (_root.truewinner != 0) {* w& L- v5 }! j9 F5 e if (_root.guesswinner == _root.truewinner) { . ^5 R, O3 |1 y9 r$ r( i+ g% J _root.gotoAndStop(4);& I s4 T. Y* m3 m } else {# j* }# h" O5 w$ _4 B _root.gotoAndStop(5);: m" X: g- W/ @ } * Y( I) Q0 U& q0 Z% j4 z( M} else {3 [# k$ L# d9 j0 ]' W; ?- F \ _root.gotoAndPlay(2);1 [* U/ U+ q$ ~5 T }& q/ g/ v- C. N' X /*-------------------------------------------- 0 h% `+ p5 E& x# K: J- F! R$ n 判断truewinner的值,如果被改变了,说明已经有蜗牛到了0 u" m+ t- _6 K( Q* S l 如果还没有改变,说明蜗牛们还没到。 9 y f: L5 J8 T$ t如果没到,就把_root的指针跳到第2帧,让他们继续跑,如果到了,7 o3 t7 {. v3 K& J1 J( Q z 判断玩家压的那只和真正到的那只是不是一样。如果猜对了,让时间 ; ~! J7 [4 C- @: H. c( K$ t+ t% e指针跳停到第4帧,否则跳停到第5帧。+ u4 ~5 p; L& b! s" l ---------------------------------------------*/ / z" Q, w6 R; n. L2 b' F: r仔细理解一下流程,应该不难 1 g2 Q( L+ ^; S3 l a, R/ s接下来是按钮上的AS: P& o8 C, L; S" y. q' g9 y' H" k第1帧的按钮 $ D3 M7 N# @& \9 Oon(release){9 H a* J# f6 R" }4 ]( G9 o; u _root.play();% x/ i; e$ w) _" j# \. Q _root.guesswinner = 1; * r# p& x9 \6 i. x. o3 R} 3 a3 z V5 j5 u2 v8 v! J$ _第一只蜗牛旁边的按钮上面的as。松开按钮后,指针跳到第2帧,然后纪录变量guesswinner为1(猜第1只)。* u, H9 D* t. j 其它蜗牛旁边的代码类似,就是纪录变量guesswinner值为相对应的 2、3、4/ o- M# K' H) u6 H# Z( V$ _6 W 最后一个按钮,用来重玩的。. p+ b7 w# _( L8 Z on(release){ % e" O8 O* s' F4 N+ [6 r_root.gotoAndStop(1);6 t9 J6 T9 ^/ w# x* o" \ _root.wn1._x = 25;//蜗牛1号回起点8 t0 u! N/ g* |) q$ [( L _root.wn2._x = 25; " c1 c$ M1 n9 b$ g_root.wn3._x = 25; ' N6 ~, M! H9 A6 F& G_root.wn4._x = 25;+ Q" D+ J! D1 }) i } 1 E6 }1 m$ u* R# Q5 s9 f3 u. g全部看明白了吧?嗯,看看我做的 Y# @# w& Q2 P这里我就不给源文件了,大家自己动手做做,很有成就感的~ 8 o* Z4 t, K+ _1 P" Y(完)

' E" A1 g! Z( @5 |% m' M

- q" J3 j9 c' y

; {) I1 Z+ q* R" E# K
[此贴子已经被作者于2004-12-16 18:28:40编辑过]

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇

土人系列AS入门教程--实战篇
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

网站解决方案专享优惠-3折上云

QQ|手机版|小黑屋|遨海湾超级社区

GMT+8, 2025-2-22 16:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表