使用Construct2建立平臺(tái)游戲-初學(xué)者指南_第1頁(yè)
使用Construct2建立平臺(tái)游戲-初學(xué)者指南_第2頁(yè)
使用Construct2建立平臺(tái)游戲-初學(xué)者指南_第3頁(yè)
使用Construct2建立平臺(tái)游戲-初學(xué)者指南_第4頁(yè)
使用Construct2建立平臺(tái)游戲-初學(xué)者指南_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

使用Construct2

建立平臺(tái)游戲-初學(xué)者指南Buildingblocks-theobjectstoinsert橫向卷軸游戲有兩種物件:固體物件(Solid)和平臺(tái)物件(Platform)固體物件:用來(lái)構(gòu)成地板和墻壁,限制玩家移動(dòng)范圍。平臺(tái)物件:名稱(chēng)容易讓人混淆,是用來(lái)制作玩家站立、戰(zhàn)斗、跑步與跳躍等動(dòng)作的物件,而不是讓玩家站在上面的平臺(tái)。平臺(tái)物件讓你不用寫(xiě)任何程序碼,就可以提供一些基本的行為。當(dāng)你按下向左和向右的方向鍵,平臺(tái)物件就會(huì)向左或向右移動(dòng)。也可以把方向的控制更改為用其他鍵盤(pán)按鍵輸入,或是針對(duì)手持裝置作觸碰手勢(shì)輸入。按下“SHIFT”鍵可以跳躍,同樣地你也可以修改成其他按件或觸碰手勢(shì)平臺(tái)元件如果下面沒(méi)有固體物件在下面,就會(huì)跌出畫(huà)面。2Braid游戲畫(huà)面范例在上面這張圖你可以看到這些東西:地板(Floor)四個(gè)地板不同高度、不同長(zhǎng)度地板之間的間隔逐漸變大,讓跳躍困難度增加選取這些物件你可以看到物件類(lèi)型(Objecttypeproperties->Name)為“Flooring”地板的一邊有墻壁,點(diǎn)選后你會(huì)發(fā)現(xiàn)他們的物件類(lèi)型為“Wall”有一個(gè)人物站在最下面的地板,這個(gè)角色是Braid這款游戲里面的人物,名字叫作Tim,是游戲美術(shù)DavidHellMann授權(quán)提供的。34Tim的物件類(lèi)型是Player,注意看一下項(xiàng)目視窗(Project)里面的物件類(lèi)型(Objecttypes),你會(huì)看到“Player”顯示為一個(gè)方形,下方有另外一個(gè)物件類(lèi)型為“PlayerImages”,圖示看起來(lái)和Tim長(zhǎng)的一模一樣,為什么要分開(kāi)成兩個(gè)不同物件呢?<制作建議>為了在平臺(tái)上建立最可靠的動(dòng)作,最好使用一個(gè)看不見(jiàn)的方形、沒(méi)有動(dòng)畫(huà)的精靈物件(sprite),然后玩家的動(dòng)畫(huà)物件可以放在這個(gè)物件上面。如果沒(méi)有這樣作的話,動(dòng)畫(huà)撥放時(shí)玩家的尺寸和周?chē)呐鲎捕噙呅螘?huì)改變,造成與地板、墻壁之間的碰撞會(huì)不穩(wěn)定,會(huì)產(chǎn)生搖晃或奇怪的動(dòng)作。56在這個(gè)范例里面我們的方形精靈物件是Player物件,在項(xiàng)目視窗點(diǎn)選后,在左方的物件類(lèi)別屬性(ObjectTypeProperties),你會(huì)看到初始可見(jiàn)性(Initialvisibility)設(shè)定為看不見(jiàn)(Invisible)。這個(gè)方形物件會(huì)被我們的移動(dòng)控制,PlayerImages物件會(huì)連結(jié)到這個(gè)物件。如此一來(lái),就算PlayerImages物件的動(dòng)畫(huà)在播放的時(shí)候,尺寸或碰撞多邊形改變,碰撞偵測(cè)的結(jié)果也不會(huì)有問(wèn)題。仔細(xì)看畫(huà)面的配置,你會(huì)看到Tim站立的范圍在Player物件的藍(lán)色范圍之內(nèi)。在場(chǎng)景內(nèi)可以看到Player物件的藍(lán)色邊框,游戲執(zhí)行時(shí)就會(huì)隱藏起來(lái)。7接下來(lái)我們看一下PlayerImages物件的動(dòng)畫(huà),在項(xiàng)目視窗內(nèi)點(diǎn)選PlayerImages物件,然后點(diǎn)選左方屬性視窗里面的“Properties->Animations->Edit”。點(diǎn)選到動(dòng)畫(huà)視窗(Animations)里面的跑步(running),你會(huì)看到這個(gè)動(dòng)畫(huà)有5個(gè)影格。如果你現(xiàn)在在瀏覽器里面預(yù)覽游戲的話,按下方向鍵還不會(huì)有反應(yīng),因?yàn)槟氵€沒(méi)有幫物件加入任何事件,下一步再繼續(xù)作。點(diǎn)選項(xiàng)目視窗里面的地板物件(Flooring),然后點(diǎn)選屬性視窗里面的“Behaviors(行為)->Add/edit->Behaviors”,會(huì)打開(kāi)行為視窗。在行為視窗左上角按下“+”,在屬性(Attributes)雙擊加入“Solid”行為。接下來(lái)對(duì)地板作相同的動(dòng)作(加入Solid行為)。在項(xiàng)目視窗點(diǎn)選“Player”物件,加入“Platform”行為(在Movement分類(lèi)里面)。記得我們必須把PlayerImages物件連結(jié)到Player物件,在項(xiàng)目視窗點(diǎn)選PlayerImages,指定一個(gè)“Pinbehavior”(在General分類(lèi)里面)(圖示像一個(gè)圖釘)。89再執(zhí)行一次,用方向鍵還是沒(méi)有動(dòng)作?實(shí)際上Player物件已經(jīng)可以移動(dòng),因?yàn)镻layer物件目前是看不到的,可以把Initialvisibility修改為Visible,在畫(huà)面上就可以看到移動(dòng)了。雖然現(xiàn)在看得到物件,但是看起來(lái)還是沒(méi)什么意思,我們?cè)倮^續(xù)作下面的修改。點(diǎn)選“EventSheet1”(事件工作表)面板,關(guān)于這部分的說(shuō)明可以再參考“Beginner’sGuide”`。在面板上雙擊開(kāi)始加入System->Start&end->OnstartoflayoutAction:PlayerImages->Pin->Pintoobject,會(huì)跳出一個(gè)參數(shù)設(shè)定視窗(ParametersforPlayerImages(Pin):Pintoobject),選擇要連結(jié)的物件,設(shè)定為Player物件。再來(lái)設(shè)定動(dòng)畫(huà)播放Action:PlayerImages->Animations->SetAnimation,跳出參數(shù)設(shè)定視窗(ParametersforPlayerImages:Setanimation),在Animation欄位輸入“Standing”(站立),F(xiàn)rom(動(dòng)畫(huà)從哪邊開(kāi)始播放)欄位選擇beginning(開(kāi)始)。實(shí)際上如果選Standing動(dòng)畫(huà)只有一個(gè)影格,效果和沒(méi)加一樣??梢园褎?dòng)畫(huà)換成有5個(gè)影格的“Running”動(dòng)畫(huà),就會(huì)看到一開(kāi)始Tim一直在跑步的樣子了。特別注意動(dòng)畫(huà)名稱(chēng)外要加雙引號(hào)“”。再預(yù)覽游戲畫(huà)面一次,你按下左右方向鍵時(shí)會(huì)看到Tim在畫(huà)面上移動(dòng),碰到墻壁的時(shí)候會(huì)停止。按下向上方向鍵會(huì)跳躍,你可以試一下可不可以跳到最高的地板上,但是注意,你如果失敗的話,就會(huì)跌到游戲畫(huà)面外。10Tim將會(huì)做動(dòng)作的沿著地板走,所以我們將需要讓她添加一個(gè)事件:Addevent:Player>Platform:OnmovedAction:Playerimage>Setanimal>forAnimation,輸入“Running”(leave

‘from’on’beginning”)在運(yùn)行l(wèi)ayout一次,并注意三個(gè)非現(xiàn)實(shí)的效果:他反方向跑而不會(huì)轉(zhuǎn)過(guò)身的向前運(yùn)行。他依然前進(jìn)動(dòng)畫(huà),即使在他撞到墻上。他一直在跑步動(dòng)畫(huà),即使你把你的手指也放開(kāi)。為了解決第一個(gè)問(wèn)題,我們需要用另一個(gè)動(dòng)畫(huà)顯示另一種方式,我們可以用簡(jiǎn)單的方法讓他可以跑回圈和左轉(zhuǎn),只要添加另一個(gè)事件:Addevent:Keyboard->Keyisdown->presstheleftarrowkeyAction:PlayerImages->Setmirrored(under'Animations')(leave'Mirrored'asis)11再次的layout,Tim又再一次持續(xù)的向左跑,你要讓他往右需要再添加另一個(gè)事件:Addevent:Keyboard->Keyisdown->presstherightarrowkeyAction:PlayerImages->Setmirrored->andthistimeselect'Notmirrored‘現(xiàn)在Tim的狀態(tài)能夠讓他運(yùn)行,但撞墻停止跑步問(wèn)題還沒(méi)解決,所以需要增加兩個(gè)事件:Addevent:Player->Platform:Isbywall->Side:leftAction:PlayerImages->Setanimation->typein"Standing"(leave'From'on'beginning')Addevent:Player->Platform:Isbywall->Side:rightAction:PlayerImages->Setanimation->"Standing"12現(xiàn)在的Tim會(huì)有個(gè)問(wèn)題,當(dāng)他撞到墻壁在離開(kāi)時(shí)他的動(dòng)作會(huì)保持著站立的姿勢(shì),所以我們需要添加第二個(gè)條件:右鍵點(diǎn)及Platformhaswalltoleft的條件,并選擇Addanothercondition。Addevent:Player->Platform:Ismoving但是這不是我們想要的,我們需要的正好相反,所以我們只需要反轉(zhuǎn)(Invert)條件就行了。13做同樣的latformhaswalltoright‘條件?,F(xiàn)在要解決當(dāng)你的手指離開(kāi)時(shí)Tim還會(huì)繼續(xù)運(yùn)行的問(wèn)題。Addevent:Player->Platform:OnstoppedAction

:PlayerImages->Setanimation->"Standing“這樣Tim的動(dòng)作就會(huì)合乎實(shí)際的方式。14完成了教程的第一部分,現(xiàn)在Tim如果沒(méi)有著陸到,他會(huì)掉出外面持續(xù)下降,針對(duì)這情況我們要讓他會(huì)再次回到頂部:Addevent:Player->Isoutsidelayout(under'Size&Position')Action:Player->Setposition->X:370,Y:100這樣就會(huì)讓他如果掉落下去他會(huì)重新掉落回畫(huà)面,但是因?yàn)樗湎潞笾匦禄氐疆?huà)畫(huà)時(shí)會(huì)持續(xù)上一個(gè)動(dòng)作,會(huì)保持著“Running的動(dòng)作”所以我們需要改變他所需要的條件。Addevent:

Player

->PlatformOnlanded15接著直接點(diǎn)紫色部分會(huì)變成橘黃色來(lái)做增加(Addsub-event)子事件。Addevent:

Player->

Platform:IsmovingAction:

PlayerImages

->

Setanimation

->"Running"再添加另一個(gè)有相同條件的子事件。Condition:Player->Platform:Ismoving->invertitAction:PlayerImages->Setanimation->"Standing"這樣他落下碰到地板時(shí)動(dòng)作就會(huì)停止。

16接著制作落下時(shí)的動(dòng)畫(huà)Addevent:

Player

->

Platform:OnfallAction:

PlayerImages

->

Setanimation

->“Falling”

這樣就會(huì)有下落的動(dòng)畫(huà)。

17以上為第一部份的制作,接著我們要做讓游戲變得困難或容易。從旁邊的屬性就能夠調(diào)整角色數(shù)值,速度快慢,重力大小等。上面這張圖就是調(diào)整動(dòng)畫(huà)的偵數(shù)(點(diǎn)Object里的PlayerImages在點(diǎn)左邊的Properties里的Animations點(diǎn)Edit即可開(kāi)出),來(lái)對(duì)應(yīng)游戲里動(dòng)作快慢的調(diào)整。18最大速度加速減速跳躍強(qiáng)度重力最大落下速速度循環(huán)重復(fù)計(jì)數(shù)重復(fù)步驟乒乓第二部分:分?jǐn)?shù)這里我們要教的是游戲的分?jǐn)?shù)系統(tǒng)。1.Tim跳起來(lái)到地板上獲得分?jǐn)?shù),在最底層為基準(zhǔn)為0一樓+1,第二層+2,在頂層+7(反映存在的困難)。2.當(dāng)?shù)梅值?5分的時(shí)候?qū)?huì)到下一個(gè)階段(因此,Tim不得不在地板之間跳躍來(lái)賺取足夠的點(diǎn)數(shù))3.他必須要跳到另一個(gè)地板時(shí)才有點(diǎn)數(shù)(為了避免原地跳躍)4.初始時(shí)有3點(diǎn)的生命點(diǎn)數(shù),每次落下出場(chǎng)景時(shí)都扣1點(diǎn)生命。5.當(dāng)他的生命點(diǎn)數(shù)到0時(shí)游戲就直接結(jié)束。19首先我們要先創(chuàng)立兩個(gè)全域變量health跟scroe(要增加的話就到事件的面板的空白處點(diǎn)擊右健,從出現(xiàn)的表單中選擇Addglobalvariable即可增加)。接著到先前制作的超出范圍會(huì)回到指定坐標(biāo)的事件,來(lái)新增新的變量。Action:system->Subtractform->變量health->值1Action:system->Setvalue->變量score->值0

20接著設(shè)定每個(gè)floor的變量1.先點(diǎn)擊第一個(gè)floor。2.點(diǎn)擊左邊的實(shí)體變量,點(diǎn)Add/edit(free版本為Instancevariables)。3.點(diǎn)選加號(hào)。4.增加floor,跟points兩個(gè)變量,

數(shù)值都設(shè)為零。21接著設(shè)計(jì)其他的floor,往上一層的floor設(shè)變量floor:1,points:1再往上的floor設(shè)變量floor:2,points:2最上層的floor設(shè)變量floor:3,points:722為了要看出Tim的上移和下移有所變化,所以我們?cè)偌右粋€(gè)全域變量prevFloor(跟之前新增的條件一樣,數(shù)值一樣0)。接著我們?cè)谠O(shè)計(jì)變量prevFloor'inthe

Player

->

Isoutsidelayout

event:Action:

System

->

Setvalue

->prevFloor:0接下來(lái)我們要設(shè)定當(dāng)玩家落下到地板上可以對(duì)應(yīng)到的數(shù)值變化(這段條件需要加在Player|PlatformOnlanded做子事件)。Addevent:

Flooring

->

Compareinstancevariable:floor=3Action:

System

->

Addto

->'score'->Flooring.points

23我們?cè)谙惹暗臈l件中來(lái)新增第二個(gè)條件Player|PlatformOnlanded,event:點(diǎn)右鍵Player|PlatformOnlanded

condition然后增加條件:Player

->(Collisions)

Isoverlappinganotherobject

->

Flooring接著要添加地板的附加條件,以下條件都為設(shè)定為子事件。Player|PlatformOnlanded/Player|IsoverlappingFlooring

twincondition:24Addevent:

System

->

Comparetwovalues

->

Firstvalue:prevFloor,Comparison:Lessthan

,Secondvalue:Flooring.floorAction:

System

->(Global&localvariables)

Addto

->Variable:scoreValue:Flooring.pointsAction:

System

->(Global&localvariables)

Setvalue

->Variable:prevFloor,Value:Flooring.floor

Addevent:

System

->

Comparetwovalues

->

Firstvalue:prevFloor,Comparison:Greaterorequal

,Secondvalue:Flooring.floorAction:

System

->(Global&localvariables)

Setvalue

->Variable:prevFloor,Value:Flooring.floor25接著我們要制作顯示分?jǐn)?shù)及血條,以及顯示(Level2reached跟Gameover)的兩個(gè)顯示框。首先先要制作一個(gè)新的圖層,從右邊的project的面板點(diǎn)選Layers來(lái)增加新的圖層“HUD”(這個(gè)圖層一定要放在最上面)。然后點(diǎn)選Layout面板兩下左鍵來(lái)新增兩個(gè)Text,命名為‘StatusText’

(顯示分?jǐn)?shù)及血條)放在左上方,在Text的地方寫(xiě)上ScoreHealth。‘ResultText‘(顯示Level2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論