关于作者

相关热点

网络推荐

Flash遊戲製作(作个标记)

上一篇 / 下一篇  2007-02-15 15:31:47

Flash遊戲製作小精灵儿童博客 zN!VA K|G1R

$g q iR]U0
原理:
L4~;L q9}htj0 1.把好玩的flash遊戲下載,小精灵儿童博客bZWo4`.g(XEo
2.然後把swf文件轉成fla文件,小精灵儿童博客*|z&l6`P:ax.XC[
3.進行修改,
^)_*loL z2u#w0 4.發佈.
qj:t\ \@4z-j0 小精灵儿童博客9Ce5f#DH6yt K%X
軟件需求:
I:h l0B)s,y~e0 1.SWFDECOMPILER (可在sothink http://www.sothink.com/product/flashdecompiler/download.htm 下載試用版, 或是在網上找綠色版本)小精灵儿童博客3~;DR(s7jH1A
2.flash mx 2004或以上 (建議使用FLASH 8 版本)
(zN2u f-Xy?%|$T$R0小精灵儿童博客%h*h+Xg9Tt0~hq6i It
swf quicker 2.5 或以上小精灵儿童博客"zjtH4_

8`(aW3P4o0 詳細說明:小精灵儿童博客#Svvb)JL"l
(初學者,最好找一些比較簡單,容量較小的遊戲來改造.)小精灵儿童博客)_ Nf!y-Y.y c o
小精灵儿童博客5|/S;tVs(}1}4ESo a
1.下載SWF檔小精灵儿童博客%i+}0U6uc Gc?le
可以使用SWFDECOMPILER內附的CATCHER協助.小精灵儿童博客8{ \n7xf |o}
或者使用flash viewer http://www.unhsolutions.net/Flash-Saving-Plugin/downloads.shtml 都是比較方便的.小精灵儿童博客 CF3|;LI+]&@
小精灵儿童博客 ` Kb"Ik W,t!U
2.如何把swf轉成FLA文件小精灵儿童博客.l"IZX.q
這裡有一些視象教學. http://ws3.wsps.tyc.edu.tw/sb2/07tools/swfdecompiler2005/小精灵儿童博客3E.?iX.N/G4W#NfA
其實安裝SWF-DECOMPILER後,在swf文件上按右鍵,選convert to fla便可以了.小精灵儿童博客5[E;] HK&A
在過程中,會問用什麼版本解譯,一般都選recommanded的一種.小精灵儿童博客h H`%j[M

i$i0Me0X2w-R,D0 3.測試轉好的FLA文件
#ZbC&k;~t0 轉好的fla文件,要先拿到flash8上嘗試發佈測試(按f12),如果發佈成功(沒有錯誤信息),遊戲正常,便可以進行下一步.
&E1Jq1XJ^-uT0 以我經驗,有8成以上的swf都是正常可以轉成fla無誤的.
T fq*_t!jU0 但也有20%失敗,原因有兩個:小精灵儿童博客6aj1pcj
1.swf遊戲太舊,用了一些不支援的語句.此時需要自己除蟲,一般在出問題的地方上按一下f1便有說明檔了小精灵儿童博客 kK?X ^]$ip
2.swf被保護了:有大約百分之一的swf被發布人使用了aso(Actionscrīpt Obfuscator)加了保護,防止別人反組譯.        這些swf就很難修改了.暫時只有放棄.
xSmAy ^D:n0 小精灵儿童博客YZ?"U,p W9F
4.開始修改FLA文件
%[%fc^.d3F0 a. 在遊戲開始的地方導入資料
(p9PY*c,Tt@N0 在第一影格加以下的actionscrīpt:
T!eG\w"beC0
9q5R#bW`0 function end(score, level, bonus, others) {小精灵儿童博客8Qo+W,hoYeca ]Gc.U
        nk_now = new Date();
}3Xo]E:HV } Z5SHa0         _root.sendLV.starttime = _root.nk_starttime;小精灵儿童博客g"`C D~
        _root.sendLV.playedtime = Math.round((getTimer() - _root.nk_starttimer) / 1000);
uY[_+p c8hX'w0         _root.sendLV.playertime = _root.nk_timediff + Math.round(nk_now.getTime() / 1000);小精灵儿童博客2@5tM,D Yod;`1jDX6Z"~
        _root.sendLV.fscore = score;
t;R;R IZ\0         _root.sendLV.level = level;小精灵儿童博客7[&W{ a"Z&HZU
        _root.sendLV.bonus = bonus;
&R \4H2~6z0         _root.sendLV.others = others + '- ' + Math.floor(_root.sendLV.playedtime / 60) + "分" + (_root.sendLV.playedtime % 60) + "秒";
H%r gQR0         _root.sendLV.action = "swfrecord";
A}$R6W)R0         _root.loadok = false;
0`?@f&H!|P(NF0         _root.sendLV.sendAndLoad("plugins.php", _root.loadLV, "POST");小精灵儿童博客1X&d ? ot,c V
        _root.nk_money = Math.round(score / _root.nk_rate + bonus);        // 用來顯示所得金錢
&j6T\7u'ZT5_0         if (_root.nk_money > _root.nk_bonuslimit and _root.nk_bonuslimit > 0) {小精灵儿童博客;B#jy*l4s.I%S&B
                _root.nk_money = _root.nk_bonuslimit;小精灵儿童博客$m4o,c7F8B{zY
        }小精灵儿童博客,TgGWJP%oz;J
}
rc)}+L T$rOfT0 System.useCodepage = true;
b1[TR iO~c0 _root.sendLV = new LoadVars();小精灵儿童博客6M:nY1Y/}m sq
_root.loadLV = new LoadVars();
+U Be)P#p0 _root.loadLV.onLoad = function(success) {
c;{%{X~"C0         if (success) {小精灵儿童博客TzD I&YQ
                if (this.disallow) {小精灵儿童博客9zM4N7Cb9t
                        getURL("plugins.php?p=nkflash&game=" + _root.sendLV.game);
`3Ar p*T?5~ _U0                 }小精灵儿童博客7sGc"L%b\
                nk_now = new Date();
_m t8}/h$T^.DhB0                 _root.nk_starttime = this.servertime;
DR*~9_T%Tp0                 _root.nk_starttimer = getTimer();
8x1l&u[JJ*f`@D s g$n0                 _root.nk_timediff = this.servertime - Math.round(nk_now.getTime() / 1000);
)lmRr.V#hA o0                 _root.nk_rate = this.rate;
CbS]G5?:mD9S0                 _root.nk_bonuslimit = this.bonuslimit;小精灵儿童博客 Y|&k7d-~4UF ]M
                _root.nk_toplist = this.toplist;                //排行榜使用的變數
T0x(\M5i)y4Q:l0                 _root.nk_username = this.username;                //玩家名字小精灵儿童博客h!t-P2{)EQV
                _root.nk_creditunit = this.creditunit;                //獎金單位小精灵儿童博客-}WrL0[
                _root.nk_credittitle = this.credittitle;                //獎金名稱小精灵儿童博客#BR2yv(O;d5z
                _root.loadok = true;小精灵儿童博客#[!K7}+? q-rFz
        }else{
/ia+zn6x TBv$J0                 _root.nk_toplist = "
)W:Rz(Op:S,|9b7P0 小精灵儿童博客&J4TH }(y1vV6Z'tp
小精灵儿童博客R"D!E D#H'Yo
小精灵儿童博客3{ P_(dQ]b|

請勿胡亂連接本遊戲!

;V9?N0]e p+I#Rm g0";小精灵儿童博客l5Z-?c,XS/UhNr
        }小精灵儿童博客 ? b u{tqc5J ~z
};
6@)KH.ML9r R&OL0 _root.sendLV.p = "nkflash";
]q2`7]1p7D F0 _root.sendLV.game = "xxxxxxxxxxxx";   // 請修改game_id小精灵儿童博客*B/N p?Q H
_root.sendLV.action = "swfstart";
mG4YK yX$HF6`4]-X0 _root.loadok = false;小精灵儿童博客 BK h+b+`fe3k{
_root.sendLV.sendAndLoad("plugins.php", _root.loadLV, "POST");小精灵儿童博客 ['dj|$d5n-y#|
_root.code_loaded = true;小精灵儿童博客%b?PXk\U
小精灵儿童博客#yxm6dMB"C
B. 確保正確讀得PHP信息才可開始遊戲.小精灵儿童博客D\ E-FNcpx
在開始(或重新開始)的按鈕, 加入 一句判斷是否_root.loadok小精灵儿童博客C;l.@gu
例如:原本是:小精灵儿童博客6y \1m{J
ON (PRESS) { gotoAndPlay("GAMESTART"); }小精灵儿童博客 {z _%x0c(Ln\

3\}/?f,Rd~ }/Y4k)M-{0 , 就要改成:
6~0Z#e S-E{%Y uxZ0 ON (PRESS) { if (_root.loadok) gotoAndPlay("GAMESTART"); }
aUd mcwB{ y0
/Iedt5I,Ur6J~3` R0 C.結束時傳迴游戲成績.小精灵儿童博客Ru0K6`6~;d9K4ST8V]2u
在GameOver時加以下AS碼, 用來傳送成績回網站的資料庫:
L;oJ~E$A_sr#cS0
?x"\[ez-ST"F0 _root.end(gamescore, gamelevel, gamebonus, gameothes);
(O O8z}SB C0 小精灵儿童博客 gM8y]v P"x
以上gamescore, gamelevel, gamebonus, gameothes要自己修改小精灵儿童博客` eW7S2]_UQ
gamescore 為遊戲中記錄積分的變數
r/l"i]l R6Kno0 gamelevel 為遊戲中記錄等級的變數,如果無等級可設為0
s szYY9D,uh,p0 gamebonus 遊戲中記錄額外獎金的變數,如果無額外獎金可設為0小精灵儿童博客adtTsO"S|
gameothers 是附加在排行榜的內容,可為空字元小精灵儿童博客n\-Cx8i[:E{
例: _root.end(score,0,0,"");小精灵儿童博客G8N q2GN~

7vC c&k R `V0 要在何處加這句 _root.end(XXXX) 是一個難點!小精灵儿童博客/r r:XNyg-o
一般會先看主影片,哪一格是遊戲的迴圈,結束在哪裡.小精灵儿童博客&d;Ha~2G9H
也可以瞭解GAMEOVER的原因,從而判斷迴圈的結束點是何處.
)]MEoFj$@+Sq5I0 例如:生命是0時遊戲便結束,可以找顯示生命文字的變數是什麼,再用找尋ctrl+F,找哪些地方與這個變數有關.
Faq4GJ0 小精灵儿童博客C*t"_ j5`1mq0G(V
5.到論壇測試小精灵儿童博客9J~s:Q,?4W |
加入上述程序後,應該開始去論壇測試.看遊戲能否正常記錄分數.
G&@+D[0ww&]0 要先去前台管理,新增遊戲,類別寫成[未開放].
W#]6M5g0y s0 然後玩兩三局,看能否正常記錄得分.小精灵儿童博客.p2D1GB9x)VR

\OJ`w'A0 6.美化遊戲小精灵儿童博客`e&G9G4?s#^k
小精灵儿童博客 Wq~]9@#s
A. 加入排行榜.小精灵儿童博客~0px$p:c)md5}:j
先要判斷時間軸中哪一影格比較適合顯示排行榜.繼而修改.小精灵儿童博客Dxj,BFF)@[V
一般會在畫面上加1個文字框,再在屬性中選擇動態文字,小精灵儿童博客dH(zZ9iF1qV*@r
在變數欄填上 _root.nk_toplist  小精灵儿童博客D eM#J~$_
選[多行], [], 不選[Ab] 調整行距. 字體顏色和大小.
Y#j6k1B2W0 但要注意字型必須選用 ()系統預設字型. 小精灵儿童博客qz7L-}4gs&zar
小精灵儿童博客F|Hh1mV#F
B.遊戲結束時顯示獎金.
b([2WEb#],E'@0 可以在GAMEOVER時,顯示遊戲得分的地方,
(K@5LCu7qEOpD&Z0 插入文字方塊(動態文字),並把變數設成_root.nk_money可顯示遊戲獲得的金錢.小精灵儿童博客?~Y1] _&I
小精灵儿童博客K#k5p$@D7`0wo
C.對遊戲的不良地方進行修改.
\ L)W;j-F+x0 (適合高手)
vZ$D-`2|2W/}o)z0 小精灵儿童博客1T%~/kFc Nb`
7.發佈遊戲小精灵儿童博客w]s3W"t"O*vm&gOp _
1.為遊戲做一幅縮圖,尺寸是 140 X 105
,g'qQE'\2X}u#k0 2.調整 遊戲種類,得分限制,獎金比率.
w)J T1}/KfeT0 3.導出遊戲SQL碼,發佈遊戲小精灵儿童博客6?Ah eT
(發佈時,請提供演示,SQL碼,圖檔,SWF檔的連結)

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)