CODEMONKEY 180-185邏輯與事件- 誰動了我的鼠標

CODEMONKEY 180-185邏輯與事件- 誰動了我的鼠標


在這節課中,我們將認識一個新的角色蝙蝠并能夠用鼠標移動小猴和蝙蝠。

學習目標:

1、學習了解“mouse-move”事件

2、學習如何利用“mouse-move”事件來移動角色

知識點:

1、今天我們將介紹一個新的事件:“mouse-move”事件,每次用戶移動鼠標,它便會觸發一個動作。

在CodeMonkey我們需要用鼠標移動來控制某些操作,需要用到函數“onMouseMove”。每次鼠標移動都會調用這個函數,這個函數會攜帶一個存儲有鼠標位置的參數。

進入到180關,我們會看到下面的代碼:

onMouseMove = (pos) ->

pos是這個函數的參數,它就是鼠標光標的位置。如果我們想將角色移動到鼠標光標所在的位置,我們首先可以用這個變量讓角色面向這個位置,然后可以通過鍵盤事件控制角色向前移動。

2、 setX 與 setY

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

如上圖所示,要把黃色的圓點移動到藍色圓點處,那么我們需要設置黃色圓點的坐標為(4,1)

yellowDot.setX 4

yellowDot.setY 1

通過setX 與 setY函數來改變角色x,y坐標,從而可以控制角色在屏幕上移動,這個函數的參數就是新的位置坐標。

例如:setX 4 這個例子中setX的參數值為4,我們也可以使用變量作為此函數的參數。例如:SETX pos.x 這樣就通過變量pos.x的值改變了x坐標的位置。

實戰闖關:

第180關: 使用onMouseMove函數, 根據本關提示,右側前面這段代碼會使小猴轉向鼠標移動的方向。我們現在需要完善onKey函數,你也會發現,當你點擊其它地方的時候是不允許修改的。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

我們可以先運行一下程序,發現移動鼠標,小猴就會面向它,很顯然我們可以通過鼠標控制小猴移動的方向,那么我們按下鍵盤希望小猴能夠前進(需要我們完善),這樣,利用鼠標跟鍵盤的配合就能讓小猴拿到香蕉了。

第181關,讓鱷魚動起來,通過鍵盤控制小猴前進,使用鼠標控制鱷魚的方向,這樣就能順利過關了。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

第182關:使用代碼bat.setX,它可以讓蝙蝠立即移動!這一關我們會遇到一個新的朋友蝙蝠,沒有了烏龜的幫忙,小猴要取到香蕉就只能靠蝙蝠了,讓蝙蝠飛到香蕉的位置,然后通過grab()函數拾取香蕉,接下來我們通過鼠標移動,設置蝙蝠的x坐標為鼠標的x坐標,使蝙蝠在水平位置上移動,這樣只要把鼠標移動到小猴這里,蝙蝠就會飛過來了。次關卡無需添加代碼,需要我們去體會理解setX方法的使用。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

第183關:根據提示使用j鍵盤來控制蝙蝠撿起 grab()香蕉,然后我們只需要移動鼠標,讓蝙蝠在垂直位置上來回移動,進行香蕉的拾取和運送就好了。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

回顧如何判斷鍵盤按下的按鍵是“j”

第184關:本關香蕉跟蝙蝠既不在同一水平線又不在同一垂直線上,為了能夠讓蝙蝠快速的取到香蕉,我們就需要讓蝙蝠能夠快速的移動到鼠標所在位置(設置蝙蝠的坐標為鼠標的位置),結合前兩關跟我們本節的知識講解,來完成吧。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

第185關:這一關與上一關完全一樣,需要我們能夠自己獨立寫出完整的代碼。用鼠標控制蝙蝠移動,設置一個按鍵來拾取香蕉,本關就算完成了。

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

思考與練習

1、在這一課中,我們學習了鼠標移動事件。我們現在知道如何使用鍵盤和鼠標來控制角色,這意味著我們離創造自己的游戲更近了一步!

打開挑戰176,嘗試使用鼠標移動事件來完成挑戰。

解決這個問題的方法之一是:

onMouseMove = (pos) ->

goto pos

通過鍵盤和鼠標移動小猴去取到香蕉,別忘了去拿藥水!

與鼠標移動事件相比,解決這個挑戰有什么不同?

●它更快

●我們不需要移動的烏龜

2、練一練,完成本節對應的特技關卡

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

答案

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

【180-185關】CodeMonkey事件處理程序-鼠標移動事件

【180-185關】CodeMonkey事件處理程序-鼠標移動事件


本站內容未經許可,禁止任何網站及個人進行轉載。