這期攻略肢藐,咱來到“誰動了我的鼠標”模塊。
鼠標是我們常用的工具巍虫,在編程中彭则,我們也可以用鼠標來指導物體的移動。這和一些游戲里的設定是一致的占遥。當然俯抖,我們在玩CodeMonkey編程游戲的同時,需要對每個代碼背后的邏輯進行學習和思考瓦胎。
這一系列關卡包括第180關至第185關芬萍,一共6關。
第180關
這一關至關重要搔啊,因為這一關是所有6關的基礎柬祠。
看上圖左側,按照往常的思路坯癣,我們可以寫一段代碼讓小猴子經(jīng)過木橋吃到香蕉瓶盛,這并不困難。
在這幾關里示罗,我們希望提供一個更靈活的解決方案惩猫,即讓小猴子跟著鼠標走。
具體到這一關蚜点,我們先讓小猴子跟隨鼠標的方向轧房,后面的關卡會介紹直接跟著鼠標走的方式。
如何讓小猴子跟隨鼠標的方向呢绍绘?
只需要定義一個onMouseMove函數(shù)奶镶,這個函數(shù)可以返回鼠標箭頭所在的位置,也就是函數(shù)的對象pos陪拘。
自然地厂镇,我們只需要讓小猴子turnTo(面向)對象pos所在的位置就可以啦。
但是左刽,上圖右側的代碼(如下)有一個問題捺信,就是我們無論按下哪個鍵,小猴子都step 0欠痴,也就是不走迄靠。我們只需要把第5行的0改成任意一個正整數(shù)就解決了這個問題秒咨。
我把0改成3,希望小猴子走快點掌挚。
點擊運行雨席,用鼠標為小猴子指引方向吧!
第181關
這一關吠式,我們需要用onMouseMove為鱷魚指引方向陡厘,我們可以看到,鱷魚的頭是可以接觸到所有3個香蕉的奇徒,那么我們只需要讓小猴子走到鱷魚的頭部雏亚,然后用鼠標改變鱷魚的方向就可以了,就這么簡單摩钙。
上圖右側給出的代碼如下:
修改后的代碼如下罢低,第3行用鼠標控制鱷魚的方向。
點擊運行胖笛,用鼠標控制鱷魚的方向吧网持!
第182關
在這一關里,我們看到上圖中有一個蝙蝠长踊,香蕉在小猴子遙不可及的海上浮著(暫不考慮香蕉是否可以浮在海上)功舀。
小猴子自然是吃不到香蕉的,必須依靠蝙蝠身弊,有兩種方式:
1. 蝙蝠飛到小猴子上方辟汰,叼起小猴子,再飛到香蕉那里阱佛,讓小猴子吃到香蕉帖汞。但是我覺得蝙蝠不太能叼起小猴子。所以這樣不靠譜凑术。
2. 蝙蝠飛到香蕉上方翩蘸,叼起香蕉,再飛到小猴子那里淮逊,讓小猴子吃到香蕉催首。這個方案是比較靠譜的。
上圖右側給出的代碼如下:
第7行是新出現(xiàn)的知識點泄鹏,即用bar.setX pos.X這行代碼使得蝙蝠在水平方向(X軸)上的位置等于鼠標在水平方向上的位置(而豎直方向上不一定相等)郎任,從而把香蕉快遞到小猴子的嘴里。
點擊運行备籽,用鼠標控制蝙蝠吧涝滴!
第183關
這一關與上一關類似,不過多了兩點:
一是香蕉變多了(1個變3個),而蝙蝠一次只能抓一個香蕉歼疮,所以我們只好辛苦蝙蝠兄往返多次了。
二是把水平方向(X軸)上的運動诈唬,改成了豎直方向(Y軸)上的運動韩脏,也就是蝙蝠和鼠標在豎直方向上的位置相同,但水平方向上不一定相同铸磅。
上圖右側的代碼如下:
可以用任何一個字母赡矢,比如“j”來讓蝙蝠抓住香蕉。
這里我想提醒大家阅仔,最好是使用英文單詞的首字母或縮寫(如使用if key==g bat.grab()吹散,這里我們用g代替grab這個動作),這樣便于記憶八酒,不然到后面咱就真的會忘記哪個鍵代替哪個動作了空民。
點擊運行,用鼠標指揮蝙蝠給小猴子快遞香蕉去吧羞迷!
第184關
這一關綜合了前兩關的技能界轩,讓蝙蝠可以飛到鼠標所在的位置,這也就是說衔瓮,一旦游戲開始浊猾,鼠標在哪里,蝙蝠就在哪里热鞍。這樣就方便蝙蝠去抓取到處散落的香蕉葫慎,從而給小猴子快遞過去!
上圖右側的代碼如下:
這段代碼的第4行薇宠,把蝙蝠在豎直方向上的位置固定在100了偷办,這是不合理的。
我們要讓蝙蝠的位置等于鼠標所在的位置昼接,那么就需要像第2行一樣爽篷,用“bat.setY pos.Y”來讓bat.setY等于pos.Y。
修改后的代碼如下:
點擊運行慢睡,用鼠標給小猴子喂香蕉吃吧~
第185關
這一關和上一關一樣逐工,不過是多了一些香蕉而已。
最好是自己寫代碼漂辐,加深理解:
點擊運行,一樣的套路~
總結
在這幾關里髓涯,我們學會了使用onMouseMove函數(shù)來用鼠標控制物體的運動袒啼,可以用
turnTo pos
指令讓物體面向鼠標,從而改變物體運動的方向,也可以用
bat.posX pos.X?
bat.posY pos.Y
讓蝙蝠(可換成其他物體)跟隨鼠標的移動而移動蚓再。
再輔助上我們之前學到的指令滑肉,如grab()等,就可以完成一個小的故事了摘仅,這個故事就叫:
蝙蝠俠給小猴子送快遞靶庙!
下期預告
我們終于來到了大猩猩的老巢,從第186-200關一共15關娃属,我打算花一周的時間分三次教程更新完六荒,第1次介紹前7關,第2次介紹中間7關矾端,第3次進入第200關掏击!
好期待啊秩铆!