Scratch在做簡(jiǎn)單的2D平面小游戲時(shí)非常方便。格斗游戲是其中一大類,而人物的移動(dòng)又是基本的要素。本篇要做到能夠控制人物左右移動(dòng)、原地跳躍和蹲下的基本動(dòng)作。
首先開啟Scratch,在下方角色欄點(diǎn)擊上傳角色檔案,將五個(gè)基本動(dòng)作圖都匯入。(Scratch的好處為中文檔名不會(huì)有亂碼,且當(dāng)匯入GIF時(shí),在造型區(qū)會(huì)列出該圖的連續(xù)動(dòng)作圖片,非常方便。)
接下來進(jìn)入到程序區(qū),定位起始點(diǎn),選擇角色區(qū)里的等待,拖曳角色至左下角適當(dāng)?shù)奈恢?,點(diǎn)選動(dòng)作,并將X、Y坐標(biāo)勾選,便可看到該圖片的坐標(biāo)位置,最后放入程序積木,概念是:執(zhí)行程序時(shí),顯示角色并移到起始位置,后面的四個(gè)動(dòng)作圖片也以同樣的方式放入程序(圖1)。
接著要讓圖片先在原地動(dòng)起來,除了等待外,其他四張圖片分別在按上、下、左、右鍵時(shí)能動(dòng)起來。在背景里的程序區(qū)定義四個(gè)動(dòng)作的變量并設(shè)為0,按下特定按鍵讓特定動(dòng)作的變數(shù)變?yōu)?。然后在角色里的程序區(qū)設(shè)定變量為1就換「下一個(gè)造型」(圖2)。
再來讓我們的角色能夠往前移動(dòng),加入「移動(dòng)10步」(后退則「移動(dòng)-10步」),并放入IF…ELSE設(shè)定在接近邊緣時(shí),將X坐標(biāo)設(shè)為200,這樣可以做到不超出邊緣的效果(圖3)。
到這里會(huì)發(fā)生一個(gè)問題,也就是當(dāng)同時(shí)按下兩個(gè)按鍵時(shí)會(huì)有分身的情況,要解決這個(gè)問題,需將條件設(shè)定嚴(yán)格一點(diǎn)「如果其中一個(gè)變量為1且其他變量為0時(shí),才顯示造型」,背景程序區(qū)也要更改為「按下按鍵時(shí),該變量為1,其他為0」。
在等待的設(shè)定,人物不動(dòng)的時(shí)候顯示等待,如果前進(jìn)、后退、蹲下、跳躍才隱藏。前進(jìn)和后退都會(huì)改變圖片的位置,所以當(dāng)前進(jìn)或是后退時(shí),等待的圖片都要移到該位置才行。最后,跳躍的設(shè)定較為特殊(圖4),因?yàn)楫?dāng)單擊按鍵時(shí),就要播放完整的跳躍動(dòng)畫,而在這過程當(dāng)中,跳躍變量都要設(shè)為1,直到動(dòng)畫結(jié)束才將變量設(shè)為0。
到這里您的人物已經(jīng)可以前進(jìn)、后退、跳躍、蹲下了!