您的位置是:少兒編程網>Scratch編程教程Scratch編程教程

Scratch小游戲(28):《保衛蘿卜》(9)教程

少兒編程網2021-03-31 19:41:29Scratch編程教程 人已圍觀 來源:少兒編程 -用戶投稿

簡介本期分享的是: - 防御塔的升級以及售賣系統 - 防御塔的發射導航系統一、防御塔的升級以及售賣系統防御塔的升級以及售賣系統除了自身還有其他兩個角色輔助:scope、upgrade。還是拿瓶子炮為例,當我們點擊它時,會將當前位置記錄在currentMouseX和currentMouseY中,也會將_name傳遞給全局變量turretName。scope角色輔助顯示該防御塔的攻擊范圍upgrade角色顯示升級所需金幣數、售賣金幣數以及升級過程效果。升級所需金幣數從塔屬性結構體內找到,其實就是兩個等級所需金幣數

版權所有:http://www.0451play.com

本期分享的是:JlD少兒編程網-http://www.0451play.com

 - 防御塔的升級以及售賣系統JlD少兒編程網-http://www.0451play.com

 - 防御塔的發射導航系統JlD少兒編程網-http://www.0451play.com

 JlD少兒編程網-http://www.0451play.com

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

 

一、防御塔的升級以及售賣系統
防御塔的升級以及售賣系統除了自身還有其他兩個角色輔助:scope、upgrade。
還是拿瓶子炮為例,當我們點擊它時,會將當前位置記錄在currentMouseX和currentMouseY中,也會將_name傳遞給全局變量turretName。

 JlD少兒編程網-http://www.0451play.com

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

scope角色輔助顯示該防御塔的攻擊范圍

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

upgrade角色顯示升級所需金幣數、售賣金幣數以及升級過程效果。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

升級所需金幣數從塔屬性結構體內找到,其實就是兩個等級所需金幣數差,并與當前金幣數比較以顯示相應造型。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

如果符合升級條件(等級小于3與當前金幣數大于升級所需金幣數)就廣播升級。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

upgrade角色售賣與升級系統類似,額外加了邊緣顯示判斷,原理很簡單,自己腦補。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

upgrade角色升級過程效果就是造型的逐個顯示。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

**后是瓶子炮自己的升級代碼,其實就是更新外觀、攻擊力、攻擊范圍、攻擊頻率等參數JlD少兒編程網-http://www.0451play.com

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

 JlD少兒編程網-http://www.0451play.com


二、防御塔的發射導航系統
    在開火之前需要判斷與怪物之間的距離,進入攻擊范圍才會觸發瞄準、發射等事件。但這里有個問題:目前scratch只能處理于角色(本體)之間的相互關系,也就是說對于怪物克隆體像面向、移動到命令是不起作用的,它只能面向或移動到本體,但如果本體隱藏就毫無反應。怎么解決?為了精準處理與每一個怪物克隆體的交互,我是將每時每刻怪物的位置信息寫入列表中,然后根據序號分別處理。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

這里有一個小細節需要注意:沒有出現在屏幕上的怪物,其位置一定要特殊處理,防止炮塔誤判,我這里做了無窮大處理。

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

先獲取與怪物的距離,這里用到數學上的一個知識點:兩點間的距離公式。
 

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

如果某個怪物進入攻擊范圍,面向這個怪物,我們需要計算出面向怪物的角度α,知道了斜邊_dis(兩克隆體間距離)以及與怪物的坐標差,就可以用反三角函數求出α,這里的知識點大家自行解決。JlD少兒編程網-http://www.0451play.com

 JlD少兒編程網-http://www.0451play.com

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

我這里用了反余弦函數(反正弦同理),arccosα的值域為[0,π],由于scratch的0°與直角坐標系的偏差,這里做了個角度偏移處理。JlD少兒編程網-http://www.0451play.com

 

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com

“萬事俱備只欠東風”,接下來就是判斷是否進入攻擊范圍,然后發射子彈了,我們下期繼續。
 

Scratch小游戲(28):《保衛蘿卜》(9)教程JlD少兒編程網-http://www.0451play.com
JlD少兒編程網-http://www.0451play.com
JlD少兒編程網-http://www.0451play.com
來源   嘻嘻哈哈學編程JlD少兒編程網-http://www.0451play.com

版權所有:http://www.0451play.com

相關文章:

支持一下 ( )

Scratch小游戲(28):《保衛蘿卜》(9)教程

      匿名評論
    • 評論
    人參與,條評論
    少兒編程網

微信公眾號

免費視頻教程

先知道

在线观看无码AV网站永久,无缓冲不卡无码AV在线观看,亚洲AV无码专区首页,网站黄色在线播放,黄色限制级视频av,日本黄一色