2015年10月27日 星期二

GameMaker:Studio 學習筆記9

11、在GMS中不能在Room Editor介面直接將Vector Sprite設置為背景,而必須透過以controller object執行draw sprite function的方式達成以vector sprite當背景

12、指定subimage時若給定的數字非整數,則取無條件捨去後的整數,這個特性可用來控制動畫速度,在每個step加一個數值,數值愈大動畫速度愈快

13、Vector Sprite注意事項:

使用stage size做為collision mask,若stage size很大,且有很多frame,可能會佔用大量記憶體,若真的有需要collision mask,儘量使用precise collision masks以降低記憶體用量

尚有其他需注意事項,使用上若有問題可查閱說明文件

14、ini檔案編輯注意事項:

原本不存在的section或key,初次寫入順序與排列順序相反,原本已存在則寫入順序與排列順序一樣,故在寫入前先清空舊資料才能掌握內容排列順序

15、關於Application_Surface_Scaling:

主要就是以下元素的size與相對位置關係,需要時再仔細研讀即可:

view(想在畫面顯示的room內容)、viewport(用來顯示view內容的display範圍)、application_surface(遊戲的顯示畫面)、window_get_width,height(遊戲視窗的大小)、display_get_width,height(顯示器螢幕大小)、display_get_gui_width,height(gui layer大小)、application_get_position(取得遊戲畫面的位置,據以計算其他layer與其相對位置關係)

16、window_set_colour(colour):設定在視窗或螢幕內,但在application surface範圍外的區域顏色

17、當啟用"keep aspect ratio"選項時,若未勾選room editor的"clear display buffer with window colour"選項,則在視窗或螢幕中未被application surface覆蓋的範圍會出現不受控制的怪異(odd)畫面,因"clear display buffer with window colour"選項沒有code,所以要建立一個基礎room勾選該選項,然後以room_duplicate的方式建立新room(參數會和來源room一樣)

除了application suface範圍外可能因未清除display buffer而有odd畫面之外,在application surface範圍內未繪製任何東西的區域也可能有殘留影像,一般會以繪製背景色(Draw background color)的方式持續清除殘像

18、切換room時並不會destroy既存物件,而是deactivate他們,所以要注意一些使用記憶體的功能像是surface、particle、fixture等要在room結束時清除,或是直接以指令destroy物件,destroy的情況下會清除資源佔用

沒有留言:

張貼留言