陳新龍
在Scratch中我們會制作各種小游戲,但是Scratch做游戲有個地方很不方便,游戲背景地圖被Scratch軟件的舞臺大小困住了。
要想作出RPG、橫版過關(guān)等類別的游戲都需要很大(多屏)的不重復(fù)地圖,類似用兩張一樣的星空循環(huán)顯示的縱版射擊游戲背景已經(jīng)不能滿足我們的需要了。
怎樣才能突破程序的限制呢?
今天我們用Scratch來制作一個多屏地圖的游戲。
我們制作大地圖要清楚幾個要點(diǎn):以往我們在做游戲的時候,角色移動的參照物就是它自己,比如我們希望小貓角色往右移動,給小貓的程序就是向右以及移動距離。
但是在多屏地圖中卻不一樣了,角色的參照物就是整個地圖,當(dāng)我們想讓小貓向右移動,就需要讓整個地圖向左移動,這樣形成一種視覺上的錯覺,看起來小貓是向右移動的。其實(shí)小貓?jiān)谠貨]有移動,移動的是整個舞臺背景。
首先我們要找到一個合適大小的游戲地圖,這張地圖要遠(yuǎn)大于Scratch舞臺的480×360大小。你可以找一張大地圖或用數(shù)張小地圖拼接一張大地圖。今天游戲的主題是市內(nèi)開車,用到一張880×324的PNG格式街道圖片。將圖片作為角色插入,剛插入的地圖可能會被縮小,我們要在造型的界面中用選擇工具拖動圖片邊緣放大到合適的比例。
設(shè)置兩個變量“主角X坐標(biāo)”和“主角Y坐標(biāo)”,這兩個變量目的是為了自建虛擬坐標(biāo)系,以小汽車為中心原點(diǎn),其他的角色(地圖)都圍繞小汽車角色以虛擬坐標(biāo)系為基準(zhǔn)做移動。且地圖的運(yùn)動方向是和我們希望主角運(yùn)動的方向相反。
注意當(dāng)收到主角移動的
消息時,讓地圖角色移動到(-1×主角X坐標(biāo),-1×主角Y坐標(biāo))的位置,這樣就可讓地圖反向移動了。
以向下移動為例,當(dāng)按著“下方向鍵”希望小車向下行駛時,其實(shí)小汽車沒有運(yùn)動,是地圖向上運(yùn)動。首先要把小汽車固定在開始位置,并給兩個變量賦值,這個值就是小車在地圖上的虛擬坐標(biāo)起點(diǎn)。
建立方向鍵與主角間對應(yīng)的旋轉(zhuǎn)方式以及移動距離,當(dāng)按下鍵盤上下左右鍵的時候,小汽車角色的虛擬坐標(biāo)值(主角X坐標(biāo),主角Y坐標(biāo))會變化。每次變化后發(fā)出廣播,讓地圖角色知道主角位置發(fā)生了變化,地圖就按照角色新的虛擬坐標(biāo)值反向移動。
為了避免小汽車開出地圖,還要根據(jù)地圖邊界設(shè)定坐標(biāo)數(shù)值的變化范圍,超出就停止。
現(xiàn)在多屏大地圖的技巧已經(jīng)告訴你了,要注意理解地圖角色與主角的相對坐標(biāo)關(guān)系以及移動方向是相反的這個要點(diǎn)。本次內(nèi)容只是簡單地給大家展現(xiàn)了無限地圖的概念以及基礎(chǔ)的控制方法,在此基礎(chǔ)上我們才能完成更多有趣的游戲。
由電腦報(bào)精心打造的編程教材《Scratch3.9青少年編程高分寶典》目前已經(jīng)上市,在當(dāng)當(dāng)網(wǎng)、京東和淘寶各大平臺均有銷售,本書以麻省理工大學(xué)開發(fā)的圖形化編程工具Scratch為基礎(chǔ)編寫和創(chuàng)作而成,是中小學(xué)計(jì)算機(jī)教學(xué)和編程入門必備的工具書。
本書內(nèi)容由淺入深最終會涉及到算法與綜合實(shí)戰(zhàn)及應(yīng)用程序調(diào)試,知識內(nèi)容全面難度較高,適合希望全面掌握編程基礎(chǔ)并有信心進(jìn)一步學(xué)習(xí)代碼編程的青少年。
在每個部分學(xué)習(xí)完成后,還有編程等級考試真題和編程競賽真題訓(xùn)練,有利于學(xué)生通過真題了解自己的知識掌握水平,學(xué)完本書第一二部分就可以掌握編程等級考試1到3級的內(nèi)容,學(xué)完本書就可以掌握參加藍(lán)橋杯編程大賽的知識,真正是計(jì)算機(jī)老師和編程愛好者首選之作。