2015年10月21日 星期三

GameMaker:Studio 學習筆記4

22、遊戲中的instance愈少,遊戲愈順暢

23、當加入Draw event到object後,此object的instance預設是不會繪製sprite的,因為GM預設當你加入Draw event時將會告知它該畫什麼,換個角度想就是Draw event可以當做是停止繪製sprite的指令,當Draw event是要拿來做別的事的時候,就會另外用draw_self()這個function畫sprite

24、events發生和actions執行的先後順序很重要,要弄清楚運作方式才能確保執行結果符合預期

25、room的speed參數決定每秒執行的step次數,1 step代表的是event的1次偵測,指令的1次執行,瞭解這個運作模式很重要,例如Mouse Left Pressed event,若speed設定為1,意味著1秒執行1step,1秒偵測1次滑鼠左鍵按下的動作,因滑鼠按下的動作很快,小於1秒,故很有可能在偵測點之前就釋放了,就不會偵測到左鍵按下動作,事件就不會判定發生,裡面的指令也不會被執行,要確保事件被偵測到,有兩種方式,一為左鍵按下時間持續1秒鐘以上,二是增加speed,提高每秒執行step數,以增加偵測頻率

26、畫面漸白過場表現:

在Create Event中自訂instance變數argu,設定值為0

在Draw Event中執行以下指令

draw_set_alpha(argu); /*畫矩形前修改,並在畫完後回復,確保只影響矩形*/

draw_rectangle(0,0,room_width,room_height,false);

draw_set_alpha(1); /*回復為1,避免影響其他繪圖結果受影響*/

argu+=0.05; /*隨著數值漸增,白色透明度漸減,畫面逐漸變白*/

27、沒有加入任何action的alarm不會運作(不會倒數計時)

28、Room start event:這個事件在每個instance身上發生,觸發時機為room開始且觸發順序在Create event之後,因此可利用Create event定義變數讓Room start event使用

29、Persistent object:不會因room切換而消失,且Create event只在登場時觸發1次,切換房間不會再觸發

30、子物件與父物件的關係:子物件繼承父物件所有的屬性,更改父物件屬性,所有子物件也都會一併更改,子物件除了具備繼承自父物件的屬性之外,與一般物件無異。父物件不受子物件影響

沒有留言:

張貼留言