您現在的位置是:首頁 > 垂釣
濟南少兒程式設計:二年級的孩子就能做的動畫效果"海底世界"!
- 由 速雲少兒程式設計 發表于 垂釣
- 2023-01-27
氣泡怎麼克隆
年齡小不適合學習程式設計這是理由嗎?並不是,為什麼別人家的孩子都能自己透過程式設計開發遊戲而自己的孩子還在玩遊戲呢?
你的孩子和別人的孩子只缺了一個東西,就是“程式設計”!
好啦!今天我們就看下二年級小同學如何透過程式設計實現一個海底世界的動畫效果吧!
先看效果圖:
看完之後啥反應呢?為啥不動呀?海洋世界最起碼得讓水泡不停地往上浮動是不是?
因為他是背景圖片所以不會浮動!那問題來了,我們得讓他浮動起來才能更加的生動是不是?
首先要讓他浮動得思考相應的物理知識。
1:氣泡在浮起的時候,隨著壓強的降低,是不斷變大的。
2:因為變大,受到的浮力也不斷增大,所以氣泡是不斷加速上浮的,而且加速度越來越快的。
3:因為受到各種外部環境影響,氣泡是不可能直線上浮的,是在上浮過程中左右晃動的。
有了這些物理知識,那我們寫程式的時候就必須符合這個條件才行。
看到這裡大家明白沒有?剛才你看到的遊戲影片裡的氣泡可不是什麼動圖和造型切換,而是用程式設計做出來的。
透過這個動圖大家觀察出來氣泡怎麼產生的了嗎?
氣泡的程式設計
首先這個是用克隆體來做的:
1:第一步要設計好氣泡的樣子和冒出的位置
氣泡就是一個綠色的小點。CC哥構想有海底冒出三個氣泡的位置,直接copy了三個氣泡的角色,這樣可以簡化程式設計。這三個角色的程式碼都是一模一樣的。
2:不斷克隆自己
克隆的時間間隔,我用了講過的隨機數技巧,平常的隨機數只能取整數,但是想要的隨機的時間間隔很短,大概在0。02秒和0。06秒之間,所以我們只要把取得隨機數除以50,就可以得到小數的隨機數。
3:氣泡上升過程中的變化:
這段程式碼主要注重兩部分:
a: 上升加速
上升加速有兩種方法,一種是用加法,一種是用乘法。區別就是固定加速度還是變加速度。比如我們平常模擬重力效果時就用加法,我們會把上升速度每次迴圈時固定增加1或-1,這就是固定加速度。而乘法是我們每次把加速度的值每次迴圈乘以一個係數,那麼這種變化就會產生累積,會越來越大。比如:1。1 * 1。1 * 1。1 * 1。1 * 1。1 * 1。1 * 1。1 = 1。95。這就是炒股裡說的複利,每年只賺10%,七年下來就賺翻翻了。
另外考慮多一個細節,就是每次氣泡冒出來的大小是不固定的,有的出來小些,有的大些。
為什麼這麼考慮?是想讓氣泡在上升的過程中有交錯的效果,比如大的氣泡升的快,就會超過小的氣泡,視覺效果就更真實。所以初始的上升速度是跟氣泡的大小有關係的。
b: 水平晃動
跟晃動部分相關的程式碼:
1:晃動只要處理X軸的運動效果就可以。
2:用正弦函式就可以得到一個-1~1之間的變換值。再配上Y軸的運動,就會產生螺旋上升的效果。
3:設定晃動變數增加的數值,是為了控制氣泡群的寬度,晃動增加的越快,氣泡群的直徑就越窄。
4:在每次迴圈的運動過程中用了隨機數來變換振幅,這樣就可以造成上升過程中的隨機運動效果,而不是一個標準的螺旋上升曲線。
這是老的被鯊魚吃掉效果,是不是簡陋的想哭呀。
大家可以找一下,在我們角色庫裡面還有一個張嘴的大鯊魚,我們也可以使用哦。
這裡面也有細節要處理:
1:鯊魚有兩種,一種是固定巡航的鯊魚,沿著固定路徑在走,那麼如果碰到小魚的時候是背面碰到的,那麼鯊魚要轉身吃掉小魚。
2:在吞吃小魚的時候,是嘴部吞的,嘴部並不是鯊魚的中心位置,所以程式處理要退20步。
3:要配音
過程控制
以前處理程式流暢,結束的時候就是一個停止全部指令碼。
其實配合好訊息命令,還有這些停止命令,就可以很有效的控制遊戲的程序。而遊戲就用這些命令進行程序控制,給小魚附加上生命值,變成了一個完整的遊戲。
同學們,你們學會了嗎?
上一篇:蘇富比拍賣行慶祝耐克成立50週年
下一篇:油炸食品對人體的傷害