資訊內容
Scratch實現角色點擊的三種方式
Scratch實現角色點擊的三種方式
到目前為止,果凍老師和大家已經學習了三位同學的參賽作品。古語說,溫故而知新,我們不但要學習了解新的知識,也要善于對知識進行整理總結。這樣才能真正的理解掌握,這是一個編程高手必備的技能哦。
今天我們不學習新的作品,我們來總結一個非常常用的功能。果凍老師發現在前三個游戲作品中不可或缺的都有一個元素,那就是按鈕,比如《垃圾分類》中的PLAY和HELP按鈕,《時空穿越》中的A和B按鈕,《記憶碎片》中的三角形開始按鈕。既然每個作品中都有按鈕,那必須要實現的一個功能就是點擊按鈕。這篇文章果凍老師就向大家介紹點擊角色的三種實現方式。



第一種方法老師起名叫直接拖拽法,因為在Scratch軟件中就內置了角色被點擊的事件語句:
我們將它直接拖動到代碼區就可以了,例如:
這樣,當我們使用鼠標點擊小貓時,它就會說話了。
這也太簡單了吧!有同學會說,那我每次需要點擊角色的時候只要把這個語句拖進來就行了,這當然可以實現想要的功能,但是這個功能是開發Scratch軟件的叔叔阿姨替我們寫好了,我們知道怎么用,但是卻不知道是如何實現的,作為立志成為編程高手的你只會拖拽使用可是不行的,還必須自己編寫程序實現,最后你編寫的代碼封裝起來要讓其它小朋友拖拽使用,這樣你就成為同學們眼中的編程大神啦!
好,那我們就看看怎么樣用代碼來做出點擊角色的功能。



在Scratch的偵測模塊中,有一個碰到鼠標指針?的語句:
它的作用是判斷角色是否正在觸碰鼠標指針,也就是說當鼠標指針放在角色上時就會觸發這個偵測。
在偵測模塊中還有一個語句,叫做按下鼠標?
這個語句的作用是判斷是否按下了鼠標的按鍵,我們用鼠標點擊舞臺區的任何一個地方就會觸發這個偵測。
那如果我們將這兩個偵測語句放到一起聯合使用是什么效果呢?判斷鼠標指針是否放在角色上并且是否按下了鼠標的按鍵,這不就是我們想要的判斷角色被點擊的功能嗎?于是,我們的代碼就可以這樣寫:
將碰到鼠標指針?和按下鼠標?兩個偵測語句通過與運算符連接起來,并且不要忘了將如果那么語句放在重復執行的里面,這樣代碼才會一直的判斷。
這時,點擊小貓它也說話了:



第三種方法也是用語句代碼實現。
在Scratch的控制模塊中,有一個等待語句。
它的作用是等待方框里的條件成立時,再執行下面的積木。
等待語句和如果那么語句一樣也是一種判斷語句,所以我們將上一個方法中如果那么語句中的條件放到等待語句里也可以實現角色點擊判斷的功能。
這里使用了兩個等待語句。當綠旗被點擊后,代碼開始運行,首先會等待第一個語句的條件成立,當我們使用鼠標點擊角色時,第一個等待語句的條件滿足,接著會等待第二個語句的條件成立,第二個等待語句的條件與第一個等待語句的條件剛好是相反的,在條件上添加了一個不成立的邏輯符。
使用通俗的話講,第一個等待語句是等待鼠標的按鍵按下,第二等待語句是等待鼠標的按鍵抬起,這兩個等待語句組合就完成了整個鼠標按鍵點擊動作的判斷。
當第二個等待語句的條件成立后,就會執行后面的代碼,小貓說你好!



方法二與方法三都是通過編碼實現角色點擊的判斷,基本的原理也是一樣的,但是它們還是有一些不同的地方,你知道是什么嗎?
同學們先自己想一想。
首先,方法二的如果那么語句只有一個條件,當我們按下鼠標的一瞬間條件就成立了。而方法三有兩個條件,當鼠標按下和松開兩個條件都成立后才會執行后面的代碼,所以它們的第一個不同點就是觸發的時間點不同,方法二在我們按下鼠標的時候小貓就會說話,而方法三必須按下鼠標并松開完成整個點擊動作后小貓才會說話。
第二個不同也很明顯,方法二與方法三相比多了一個重復執行的語句,所以方法二會不停的判斷是否點擊角色了,我們可以一直點擊小貓讓它說話,而方法三只會判斷一次,小貓說一次話之后代碼就結束了。
這并不是說方法三沒有方法二的好,而是它們的作用不同。方法二用于可以多次或無限點擊的角色,比如一個加血按鈕,點擊它可以給角色加血。方法三呢主要用于點擊一下頁面就跳轉的情況,比如游戲的開始按鈕,我們點擊它后,游戲就轉到下一個場景了,就如《記憶碎片》中的三角形開始按鈕一樣,這當然就不需要重復執行判斷了。



這篇文章中我們一起學習了實現角色點擊的三種方法,其中有兩種方法需要我們自己寫代碼實現,同時也知道了這兩種方法的不同點,相信同學們了解原理之后,在今后的開發中會更從容的使用它們。那實現角色點擊的方法就只有這三種嗎,還有沒有其它更棒的方法呢?同學們開動腦筋,歡迎給果凍老師留言,將你想出來的方法告訴我哦!
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
