2008年10月16日 星期四

太鼓達人類型遊製作想法

  這類音樂遊戲其實流行很久了,但因為我實在沒什麼音樂細胞,也沒什麼節奏概念,因此也都沒有什麼興趣去製作這類遊戲。但最近為了案子,才開始在摸索這種遊戲類型的製作方式。在製作這類遊戲時,有兩個問題是我一直思考的:
  1. 複合按鍵的使用
  2. 如何快速編輯曲目
複合按鍵的使用

  在google中search,可以找到八方複合按鍵的class,但因為我的這個遊戲較為陽春與簡單,所以我是使用KeyDown和KeyUp兩個事件,再搭配Key.getCode()來判別按鍵的使用方式。如果KeyDown和KeyUp回傳的值是一樣的,為37或39,那麼就是使用者按了左鍵或右鍵;如果兩個值一為37一為39,那就是使用者同時按了左鍵與右鍵。

  但是在這種使用方式,我遇到了一個問題,因為Key的listener在作用時,是不管你按了什麼鍵都會有所作用,因此在使用者同持按鈕左與右鍵,就會有兩組作用值,dowm左up左與down右up右。為了解決這個問題,我建立了一個陣列,每一個回傳值我都塞進陣列中,當陣列的length為2時,就做按鍵組合的判別,再立即清空陣列。這樣做的用意,是要取左右按鍵同時按下時,最先回傳的兩個值來做為按鍵作用的依據,不要讓兩組按鍵值同時都有做用。

  但不知道為什麼,這種做法在操作時就有些不靈敏,得再想想有什麼辦法能夠改善。

編輯曲目

  以前很天真的認為,只要找出音樂的節奏點,然後在該節奏點上讓按鍵提示icon出現就可以了。其實在做的過程才發現,應該是在節奏點時,icon要出現在感應的位置,所以應該是節奏頓點前就要讓icon出現,並跑一段距離到達感應位罝。這樣的作法,變成除了要找節奏頓點外,還得計算出現的時間點(在頓點之前)。所以我在編輯時變成要邊聽邊去下頓點位置,似乎沒有更科學更節省時間的方式(><~)

  而我讓提示icon跑動的方式,是使用onEnterFrame的迴圈去改變icon的x座標,再加上會有迴圈做感應的判斷,所以在效能上又會更差了一點,效能差在不同的電腦上跑起來的節奏就會有所不同,這也是做這個遊戲時我的困擾之一。

作品網址:http://www.adswf.com/test/test3.html


====修改====
經過Maso的指點,KeyUp與KeyDown用來控制左右兩個flag,而設定一個onEnterFrame去偵測flag的變化來做為實際的控制,結果靈敏多了。
作品網址:http://www.adswf.com/test/test4.html

2 則留言:

匿名 提到...

問你一下喔
請問一下Scratch這種軟體
可以做出像太鼓達人的遊戲嗎

Unknown 提到...

您好!我在google找尋Flash遊戲製作的時候發現到您寫的這篇關於太鼓達人類型遊戲的製作想法!
在編輯曲目的那個地方我有點看不太懂!
可不可以麻煩您跟我稍微講解一下...