最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

隨便寫的做耐久小教程——(2)基本Object要素

2023-04-08 07:00 作者:_KomeijiKoishi  | 我要投稿

本教程是基于umbrella丶2修改果引擎制作的耐久引擎(稍加改動)的教程,該引擎gm版本為Gamemaker8。


1.GML中較為特殊的一些語法

GML中無需輸入分號作為一行結(jié)尾,筆者懶,所以之后的代碼示例都不會有分號

A.repeat(){}

顧名思義,repeat的意義就是執(zhí)行相當(dāng)于括號中數(shù)值次數(shù)的代碼(可省略大括號,即執(zhí)行在repeat后的第一條代碼),例如:

a=0

repeat(10){

????a+=1

}

那么運(yùn)行完之后,a的值就會變?yōu)?0

B.with(){}

with代表讓括號中的obj執(zhí)行相應(yīng)代碼,例如:

with(ObjectSample){

????a=1

}

那么運(yùn)行完之后,ObjectSample中存儲的變量a值就會變?yōu)?

注:在with的括號中還可以填入all(所有object)或者某個obj的id


2.GM8中變量的特點(diǎn)

變量分為全局變量,普通變量,臨時變量,全局變量和臨時變量使用頻率不高,因此此處僅對普通變量進(jìn)行介紹。

GML的特色之一是每個obj都能夠存儲一些變量,并且各個obj間的變量互不干擾,也就是說,一個obj的變量a=0,如果在另一個obj中執(zhí)行a=1的代碼,第一個彈幕的變量a依然等于0

此外,該引擎能夠設(shè)置每個變量默認(rèn)為0,因此在某些情況下無需特地在使用變量前進(jìn)行賦值。

改變一個obj的變量具有以下兩種方式:

A.直接更改

variable=xxx

B.間接更改

with(ObjectSample)a=1

ObjectSample.a=1


3.創(chuàng)建Object

GML中創(chuàng)建obj的函數(shù)為:

可以通過以下幾種方式使用:

A.僅在對應(yīng)坐標(biāo)(x,y)創(chuàng)建obj

instance_create(x,y,obj)

B.在創(chuàng)建obj的同時,為inst賦值,其值等于創(chuàng)建的obj的id

inst=instance_create(x,y,obj)

C.在創(chuàng)建obj的同時,讓obj執(zhí)行一次代碼

with(instance_create(x,y,obj)){

????……

}

4.設(shè)置速度,方向

一個obj本身具有自帶的速度屬性speed和方向?qū)傩詃irection(角度制,右為0,逆時針增大),通過設(shè)定可以讓obj朝著某個方向移動,例如在create事件中輸入代碼:

speed=10

direction=270

這個obj就會在創(chuàng)建后豎直向下以10像素每幀的速度移動

direction數(shù)值對應(yīng)方向


5.設(shè)置圖像參數(shù)(透明度,拉伸倍數(shù)等)

一個obj的圖像的參數(shù)有很多,其中最重要的有以下幾種:

image_alpha:透明度,0為完全透明,1為完全不透明

image_angle:圖像繞中心旋轉(zhuǎn)角度,角度制,逆時針旋轉(zhuǎn)

image_xscale:長方向拉伸的倍數(shù)

image_yscale:高方向拉伸的倍數(shù)

具體效果可以自行在創(chuàng)建事件中輸入代碼,運(yùn)行游戲測試

更多圖像參數(shù)可在F1幫助文檔此處查看


6.銷毀Object

GML中銷毀obj的函數(shù)為:

執(zhí)行后obj會銷毀(如果有銷毀事件,會在銷毀的同時執(zhí)行其中代碼)

銷毀事件

通常情況下,為了節(jié)省運(yùn)算資源,彈幕obj離開房間或者存在一段時間后應(yīng)當(dāng)進(jìn)行銷毀,一般銷毀有這兩種形式:

A.離開房間后銷毀

通過判斷坐標(biāo)位置,如在step事件中輸入:

if bbox_right<0 or?bbox_left>800 or bbox_bottom<0 or bbox_top>608{

????instance_destroy()

}

那么這個obj就會在離開房間時銷毀

注:通常情況下,iw房間大小為800×608


B.一定時間后銷毀

通過在obj中設(shè)定一個時間變量,如在step事件中輸入:

Time+=1

if Time=50 instance_destroy()

那么這個obj就會在50幀后銷毀

注:一般iw的幀率是50,也就是50幀相當(dāng)于1秒



7.時間軸

時間軸是耐久最重要的部分,這個引擎已經(jīng)設(shè)置好了時間軸的基本參數(shù),因此你只需要將所需代碼填入對應(yīng)的時間節(jié)點(diǎn),不需要學(xué)習(xí)時間軸相關(guān)的函數(shù)。

圖中的tl_Ad便是耐久的時間軸

在時間軸界面的左側(cè),有這樣四個按鈕:

其中,添加是在時間軸中添加某個時間節(jié)點(diǎn),在此時間節(jié)點(diǎn)添加代碼的方式與在obj事件添加代碼的方式類似。

其他七個按鈕含義顯然,此處不做解釋。

注:步為0的時間節(jié)點(diǎn)必須保留


在游戲運(yùn)行的過程中,左上角有這樣一列數(shù)字:

其中各個數(shù)的含義為:

curStep:時間軸對應(yīng)的時刻。

IsPlaying:歌曲是否正在播放。

nums:該房間里存在的obj總數(shù)。(注:當(dāng)nums超過1000時,應(yīng)當(dāng)注意檢查是否有沒有銷毀的無用obj,正常情況下,nums大于1000之后有可能會出現(xiàn)明顯的卡頓現(xiàn)象)

X,Y:kid的坐標(biāo)

FPS:此刻的幀率/理論幀率

第二行數(shù)值:時間軸時刻轉(zhuǎn)換為運(yùn)行幀數(shù)

第三行數(shù)值:按下空格后,顯示按下時刻的運(yùn)行幀數(shù)/時間軸對應(yīng)的時刻,用于定位時間


8.在耐久中創(chuàng)建彈幕的簡單示例

1.按照第一章所述設(shè)計(jì)好引擎參數(shù)

2.創(chuàng)建一個obj,名字設(shè)置為Bullet,Parent設(shè)置為playerKiller

圖像設(shè)置為sprCherry(在cherry文件夾里)

3.添加一個創(chuàng)建事件,并在創(chuàng)建事件中設(shè)定基本參數(shù)

隨便設(shè)計(jì)了一些參數(shù)

4.添加一個步事件,并在步事件中設(shè)置銷毀代碼

使該彈幕在50幀后銷毀

5.在時間軸中添加一個時刻

歌曲開始后第10拍

6.在時刻事件中添加創(chuàng)建obj的代碼

創(chuàng)建一個Bulet

7.運(yùn)行游戲測試

運(yùn)行游戲的按鈕,位于Gamemaker8界面左上角

下一章將介紹如何制作基本類型的彈幕

隨便寫的做耐久小教程——(2)基本Object要素的評論 (共 條)

分享到微博請遵守國家法律
嘉义市| 白朗县| 出国| 双牌县| 天镇县| 太保市| 德钦县| 渝中区| 巫溪县| 南靖县| 新田县| 昌吉市| 龙里县| 当涂县| 丹寨县| 武宁县| 集安市| 通海县| 绍兴县| 克什克腾旗| 花垣县| 临朐县| 闸北区| 寿阳县| 荆州市| 临泉县| 新河县| 潢川县| 开原市| 益阳市| 西丰县| 固安县| 邹平县| 大城县| 阳信县| 进贤县| 天峻县| 古交市| 建阳市| 山阳县| 英吉沙县|