2007年2月16日 星期五

初探Shattered Ruby(2) - Follow the first tutorial

如果你玩過rails,你大概一秒鐘就可以知道shatter所產生的每個目錄的功用。不知道也沒關係,一開始我們需要注意的目錄其實很少:
  • app:整個遊戲的主程式都在這裡面
  • config:一些設定檔
  • script:一些ruby的script,runner可以啟動遊戲、generate可以幫助產生程式碼等等...
接下來就請跟著官網wiki的Your first move這篇教學做吧。
ruby script/generate state observation
與rails一樣,這個框架有內建一些generator幫助產生程式碼。他的概念大概是整個遊戲會在不同的state間轉換(state machine),每個state會有不同的input/output。現在我們產生了一個名為observation的state。但現在還不能執行,因為還沒有指定初始狀態。請照wiki上的步驟修改config/environment.rb (哇咧,連這個也要取和rails一樣的名字)

執行ruby script/runner吧,程式順利啟動了,雖然因為我們沒在場景上放上任何物件,所以畫面是一片全黑的,但至少應該可以順利執行了。

接下來,跟著教學做吧... ruby script/generate actor dirty_ruby
我們可以看到程式又自動產生了一堆檔案。跟著Wiki上的教學修改ObservationState物件,我們可以看到這是一個Domain Specific Language應用的例證...code真是有夠簡單的 :) 注意因為最新版的generator有問題,可能會當機,請參閱wiki的說明從範例source code中得到正確的mesh檔。

接下來我就不詳細講,跟著wiki跑完這個簡單的tutorial並沒有問題。你應該可以得到一個旋轉的紅寶石,並且可以控制他左右移動。



注意一點:我覺得這裡的View並不是MVC架構中的View,反而比較像是Data Model(定義了物件的mesh和行為)。如果你本來懂MVC架構,這可能是比較容易混淆的地方。

沒有留言: