前章提要:小弟在期末考期間作了"空中漫步-午後雷陣雨的呼喚",所以這篇當然就是來介紹遊戲的啦~(在開頭按某兩個鍵可以作弊喔)
遊戲下載點:
http://www.mediafire.com/?yr8ab1n8u8rvoy3
https://drive.google.com/open?id=0B6ihch0yT6accDdLclBEZ1JpYmM
這個遊戲只能在Win98/XP/2000/NT下執行,其他作業平台下不能玩,對不起.....安裝完後會在桌面產生一個叫"空中漫步"的資料夾,執行裡面的"空中漫步--午後雷陣雨的呼喚.exe"執行檔,就可以玩了。記得玩遊戲前先看說明檔喔,建議關掉特效>筆痕選項降低遊戲當機的可能。
這個小遊戲是用小弟正在製作中的遊戲改寫而成的,想作這個遊戲是因為在PTT上看到了一個很有創意的FLASH小遊戲,裡面有著小兔子跳來跳去,成千上萬的鄉民...不對,玩家,想挑戰高分,甚至連爆表的成績都出現了。因此,也想自己練習作作看,順便練習之前從守護者想到的筆跡還有其他寫法。(之前製作中的遊戲則是因為崇拜La3Studio的遊戲而練習的試作)
傳說中有創意的FLASH小遊戲
http://www.ferryhalim.com/orisinal/g3/bells.htm
http://www.ferryhalim.com/orisinal/g3/bells.htm
好了,小弟要開始來囉唆啦,請準備好抱枕防止中途看到睡著。首先,來談一下這次練習的新寫法。這次練習有視窗震動(跟MSN的來電震動的效果一樣)、消除視窗邊框和極座標這幾個。
視窗震動只要改改視窗的位置就可以了,不過遊戲畫面更換時本身會耗時間,讓改視窗位置的速度變慢,而且視窗背景恢復得也慢,會有一小段時間遊戲畫面邊緣殘留在螢幕上。消除視窗邊框也是其中的小設定而已,不過算是新嘗試。
再來是極座標,也是這次練習的重點(廢話開始了╮(╯_╰)╭)。因為之前玩過神奇寶貝守護者後,一直想要如何才能判定滑鼠/觸控筆是否已經繞了目標一圈,用平面座標來想的話,怎麼想也得不到解答,因而得到了用極座標判定這個解答。只要從一下筆到後來的角度變化大於360度,就表示已經繞了目標一圈。(守護者遊戲中下一步是判定之前的筆跡有沒有跟現在的筆跡重疊,就可以確定滑鼠/觸控筆把目標圈起來了)。
而且如果經過一個畫格後,"0<轉的角度<180"或是"角度<-180"表示現在是逆時鐘轉動,加角度,"-180<轉的角度<0"或是"180<角度"表示現在是順時鐘轉動,減角度。由於要考慮0度跟360度是同個角度,經過後要±360度,所以"角度<-180"表示逆時鐘經過0/360邊緣,要加360度;"角度>180"表示順時鐘經過0/360邊緣,要減360度,這樣就可以作到逆時鐘轉動累加角度,順時鐘轉動累減角度了。不過"空中漫步"這遊戲中只作到判定角度而已,沒作筆跡重疊的判定。(而且作完後發現會當機= =b)
接著是在畫面上繪出筆跡的部分。首先把上一畫面跟現在畫面的滑鼠位移求出,然後把滑鼠位移(X,Y)用公式代換成(r,θ)。這邊一開始就碰到麻煩,因為用arctan來算角度不精確,筆跡會歪掉一點,所以小弟換成arccos來反算,比較準,總共作了(+,+),(+,0),(+,-),(0,-),(-,-),(-,0),(-,+),(0,+)這幾個相位的判定(判斷0是因為跟其他連在一起算太麻煩,乾脆分開獨立算)。最後,在同個畫格增加物件,設物件起始點為前一個畫格的滑鼠位置,旋轉角度θ,長度設為r,成果便看到連起來的線(雖然線與線間有一點點空隙,而且畫得越快空隙越大),為了補空隙,小弟用另一個圓點補一下,就完成筆跡了。(懶)
這次作完遊戲後,小弟學了很多,所以打了上一篇那篇廢話,也希望以後有機會能繼續作其他小遊戲。
1 則留言:
很精采的算法
謝謝了
不過最後有解決影像殘影的問題嗎??
版主回覆:(11/01/2008 04:34:54 AM)
小弟後來想到可以用MMF2裡面的Overlay Reduct物件
(用不規則四邊形)來貼出線條。不過這遊戲作完很久,
現在已經懶得改過來了= =b
張貼留言