這是一個充滿夢想的地方!致力於創造簡單易用、媲美商業遊戲等級的玩家版3D線上遊戲創作平台!!!(研發中)
我的動畫腳本語言範例如下:
;===============================================================================
; 腳本名稱 - 一般的顯示圖片
;===============================================================================
; 初始化一個動畫 (動畫編號, 圖檔編號, X, Y, 延遲, 每次的Alpha加值)
CREATE_ANI 0, 0, P0, P1, 10, 10
; 自動播放限定張數動畫 (動畫編號, 起始圖號, 終止圖號)
PLAY_ANI_RANGE 0, 0, 3
; 等待動畫播放完畢 (動畫編號)
WAIT_ANI 0
WAIT 350
; 淡出
FADE_OUT 10 (每次淡出的減值)
END
;===============================================================================
; 腳本名稱 - 單一腳本多動畫
;===============================================================================
; 初始化一個動畫 (動畫編號, 圖檔編號, X, Y, 延遲, 每次的Alpha加值)
CREATE_ANI 0, 1, 0, 0, 10, 10
; 自動播放限定張數動畫 (動畫編號, 起始圖號, 終止圖號)
PLAY_ANI_RANGE 0, 0, 3
; 等待動畫播放完畢 (動畫編號)
WAIT_ANI 0
; 初始化一個動畫 (動畫編號, 圖檔編號, X, Y, 延遲)
CREATE_ANI 1, 2, 508, 315, 10
CREATE_ANI 2, 2, 496, 330, 10
CREATE_ANI 3, 2, 527, 337, 10
; 自動播放限定張數動畫 (動畫編號, 起始圖號, 終止圖號)
PLAY_ANI_RANGE 1, P0, P0
PLAY_ANI_RANGE 2, P1, P1
PLAY_ANI_RANGE 3, P2, P2
WAIT 90
; 淡出
FADE_OUT 10 (每次淡出的減值)
END
;===============================================================================
; 腳本名稱 - 用腳本移動圖形位置
;===============================================================================
; 初始化一個動畫 (動畫編號, 圖檔編號, X, Y, 延遲)
CREATE_ANI 0, 1, 297, 177, 4
; (-1等於無限循環)
SET_COUNT -1
; 自動播放限定張數動畫 (動畫編號, 起始圖號, 終止圖號)
PLAY_ANI_RANGE 0, P0, P0
SET_A 0
; 淡入
FADE_IN 30 (每次淡入的加值)
PLAY_SOUND 7
ADD_Y 2
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y -8
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y -4
WAIT 3
ADD_Y 2
WAIT 3
ADD_Y -2
WAIT 3
CALL_FUNC 2 ; 通知內部移動已停止
; 等待動畫播放完畢 (動畫編號)
WAIT_ANI 0
; 淡出
FADE_OUT 10 (每次淡出的減值)
END
下述就是我已設計的動畫腳本命令簡介:
ANI_COMMAND__CREATE_ANI, // 一開始一定得初始化一個動畫物件,之後才能控制它。
ANI_COMMAND__CREATE_RECT, // 這是初始化一個矩形色塊物件。
ANI_COMMAND__CTRL_ANI_START, // 保留。(未完成)
ANI_COMMAND__CTRL_ANI_END, // 保留。(未完成)
ANI_COMMAND__SET_ANI_RANGE, // 設定動畫顯示圖片張數(動畫編號,圖片開始值,圖片結束值)
ANI_COMMAND__PLAY_ANI_RANGE, // 同ANI_COMMAND__SET_ANI_RANGE,但會立即播放。
ANI_COMMAND__PLAY_ANI, // 開始播放動畫,圖片開始值會歸0。
ANI_COMMAND__CONTINUE_PLAY_ANI, // 繼續播放動畫,圖片開始值不會歸0。
ANI_COMMAND__WAIT_ANI, // 等待一個動畫播放完畢,腳本才會往下移動。
ANI_COMMAND__WAIT_ALL_ANI, // 等待此腳本所有動畫播放完畢,腳本才會往下移動。
ANI_COMMAND__WAIT, // 單純的等待延遲。
ANI_COMMAND__BREAK, // 中斷腳本流程,並將流程往下移動。
ANI_COMMAND__PLAY_SOUND, // 播放音效。
ANI_COMMAND__SET_ANI, // 指定現在要單獨控制並設定參數的動畫物件。
ANI_COMMAND__SET_IMAGE, // 承上,用ANI_COMMAND__SET_XXX這一系列的功能來設定。
ANI_COMMAND__SET_POS, // 設定螢幕上的x,y座標。
ANI_COMMAND__SET_DELAY, // 設定動畫換張延遲最大值。
ANI_COMMAND__SET_COLOR, // 設定R,G,B,A。
ANI_COMMAND__SET_R, // 設定Red
ANI_COMMAND__SET_G, // 設定Green
ANI_COMMAND__SET_B, // 設定Blue
ANI_COMMAND__SET_A, // 設定Alpha
ANI_COMMAND__SET_PIC_INDEX, // 設定現在顯示圖片張號
ANI_COMMAND__SET_COUNT, // 設定動畫播放重複次數
ANI_COMMAND__SET_LAYER, // 設定動畫所在階層。(上中下)
ANI_COMMAND__SHOW_PIC, // 設定現在顯示圖片張號,並馬上顯示。
ANI_COMMAND__ADD_X, // 增加X值。可設正負值,能讓動畫移動。
ANI_COMMAND__ADD_Y, // 增加Y值。可設正負值,能讓動畫移動。
ANI_COMMAND__FADE_IN, // 讓動畫淡入,慢慢顯示出來。
ANI_COMMAND__FADE_OUT, // 讓動畫淡出,慢慢消失不見。
ANI_COMMAND__CALL_FUNC, // 呼叫程式中指定的函式,以實現難以做到的功能。
ANI_COMMAND__CALL_SCRIPT, // 呼叫另一個腳本,可多腳本同時執行。(未完成)
ANI_COMMAND__END_ANI, // 直接刪除動畫。
ANI_COMMAND__END, // 腳本結束。
這次,來分享一下一個旗標(flag)資訊合成的小技巧。也就是善用BYTE的每一個bit (總用有8bit可用)。網路遊戲程式中,常常會傳輸各種資訊,尤其是旗標資訊也是一堆。若是將各種旗標資訊都合成到 ...《 詳全文 》
畫面中...單獨的身體、盾牌和一個紅色材質方塊,皆是在程式內動態複製動畫的方式產生的!這段時間,我研究Ogre的進度有點慢...當然,主因是工作繁忙嚕...不過我仍有找時間研究啦~這次研究的 ...《 詳全文 》
最近翻出一個有價值的東西,可以給想朝專業遊戲程式設計的人參考的東西。就是遊戲事件驅動框架!當初這是要教我一個企劃朋友寫程式,所做的一個示範,讓他學習用的。不過,沒多久...他仍是放棄 ...《 詳全文 》
我認為精通活用資料結構是非常重要的內功!(我也還在學...)我設計的記憶體池管理類別,就是善用資料結構的產物。(哈~自賣自誇) 任何種類的記憶體池管理類別都是為了解決某一種需求而 ...《 詳全文 》
在我早期寫windows程式時,我總是喜歡使用『動態配置記憶體』。需要記憶體的時候,就跟作業系統new一下即可,不用時則delete歸還系統。後來發現,常常這樣搞的話,會讓作業系統容易發生『記憶體 ...《 詳全文 》
這次就來分享一個很小的技巧!其實,只是將多緒程式會用到的CriticalSection包裝成一個方便使用的類別。使用時就不需要記住又臭又長的函式名稱,只需要簡單使用Locker物件即可。程式碼如下:* A ...《 詳全文 》
畫面上的模型都是使用AV_ModelAnimation來讀入並播放的喔 這是穿上和卸下盔甲的對照組!這幾個月,花了很多時間在研究用Ogre來表現紙娃娃動畫效果。目前略有小成,我就將之整理後,包裝成一個 ...《 詳全文 》
多執行緒(multi-thread) !一個讓程式師又愛又恨的技術!愛的是....它能善用單CPU和人機介面操作時的閒置時間,藉此加快程式運作。 也能利用現在最夯的趨勢:多核心CPU,大幅增進程式效 ...《 詳全文 》