竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

Scratch第四十七講:臺球(多一個臺球)

極客小將2021-02-08-
想了解編程技巧,就請點擊上面藍字:跟我學Scratch編程,關注CC哥 首先祝大家五一節快樂哦,想必大家都出去玩了,CC哥在家繼續給大家講Scratch。

想了解編程技巧,就請點擊上面藍字:跟我學Scratch編程,關注CC哥

首先祝大家五一節快樂哦,想必大家都出去玩了,CC哥在家繼續給大家講Scratch。https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif

今天還繼續講臺球,臺球這個游戲其實CC哥想了很久的,這個游戲說簡單了其實就是一個碰撞,但是如果我們上網看看,通常沒什么用scratch做的比較好的臺球游戲,為什么呢?因為復雜。大家大多數看的都是一個球的臺球游戲,很少見到兩個球,為什么呢?因為球和球之間會碰撞。一旦碰撞就會發生路徑的變化,在一個球臺里如果有多個球,那么相互之間的碰撞就會變得非常復雜。你怎么處理呢?想想就會頭疼。今天CC哥就來嘗試在臺球桌上放兩個球。游戲還是在上一講的基礎來做。

這個臺球有意思沒有,CC哥為了把球打進洞,自己還練習了挺長時間,還真是有點不容易。https://cdn.china-scratch.com/Public/Home/images/grey.gif

下面講講這個程序,這個程序在球臺上增加了一個球,游戲的目的是用白球擊打這個藍球,把球打進洞。

程序的難點是,當白球擊打到藍球的時候,這兩個球的運動軌跡會發生什么變化。如果想讓運動軌跡符合實際,那么就要用點物理的知識了。如果白球正好擊打到藍球的球心,那么白球的動能應該全部傳遞給藍球,而白球就要靜止下來。如果白球沒有打到球心,那么藍色的球和白色的球會分別彈向不同的方向,并且各自的速度也不一樣。那怎么計算呢?

upload/article/images/2021-02-08/45b06c20465e656a78e9407fb15d2c66.jpg

看一下這個圖,當下面的球撞到上面的球的時候,會有這四個關系:

? ?上面的球會往v2的方向走,下面的球會往v1的方向走;

????v1和v2的角度是垂直的;

????v2的方向是沿著兩個球心的連線;

????v12+v22=v2

有了這個撞擊的規則,大家知道兩個球碰撞的程序怎么設計了嗎?

upload/article/images/2021-02-08/ed3ad3d38b1a635fb8910c5a276b6b3d.jpg

注意,這里只是一個球撞擊另一個靜止的球的做法,所以我們今天做的程序只是設計了白球去撞擊靜止的藍球,如果撞擊之后兩個球都在運動中發生的碰撞,CC哥今天沒做。大家也可以看看如果兩個球同在運動中的時候,如果發生碰撞,路徑和速度的算法應該如何。

程序講解

首先增加了一個角色,就是藍球,ball2。

這個藍球的程序CC哥就是用角色的運動來處理了,而不是再象白球那樣用畫筆來畫了。也是為了處理簡便。白球的程序基本沒變,大家可以參考上一講。

upload/article/images/2021-02-08/1bc37eb67d11aa887f6a41b26f6ea12c.jpg

今天重點講的是藍球的程序。

upload/article/images/2021-02-08/888b28f67f902257ce84d69c49ee3a64.jpg

這段程序有幾個部分:

1:檢測顏色來檢測是否發生兩球的撞擊。

2:如果發生碰撞就先檢測藍球在碰撞后的方向。

upload/article/images/2021-02-08/30a49044ea00345037912a4fc684e1d2.jpg

當兩個球發生碰撞時,先讓藍球面對白球,這時候就是藍球面對白球的球心。那么藍球下一步要彈開的方向,就是兩個球心連線相反的方向。同時用faceballangle記錄下來藍球下一步要走的方向。

3:算出藍球和白球彈開的初始速度。

upload/article/images/2021-02-08/e01d313bc6952427ae064063993a31c3.jpg

這個可以用剛才講的原理來算出來。

藍球的速度speed2=白球的速度Dist * cos(白球原始方向與兩個球心連線之間的夾角)

白球的速度dist=白球的速度disi * sin(白球原始方向與兩個球心連線之間的夾角)

4:算出白球的方向。

upload/article/images/2021-02-08/49d784c6b66ee3e047683a953fb634be.jpg

這個要做一個判斷,要看白球是偏左撞擊,還是偏右側撞擊,如果偏左側,那么白球會往左彈,如果偏右側,那么白球會向右彈。取決于白球原先行進方向的角度,和藍球下一步要彈開的方向角度之間的相互關系。白球彈開的方向是和藍球運動方向垂直的。

5:藍球的運動軌跡

白球有白球的運動程序,所以只要確定了撞擊之后的速度,和方向,那么運動的部分就不用做了,因為上一個程序已經做了。這里就只需要做藍球的運動軌跡程序就行了。

upload/article/images/2021-02-08/f93e6066d2abc8e057cbf79c6621dbb8.jpg

speed2是藍球的初始速度,每步減少0.05,代表了速度越來越慢,之所以寫0.05,是跟白球的運動同步,讓大家在減速的步調是一致的。

藍球在撞到邊框一樣會發生反彈。這里跟白球一樣,我做了一個自定義的積木,用來處理藍球跟邊框碰著后所發生的方向改變。

6:藍球碰到邊框的程序

upload/article/images/2021-02-08/1101c96f928e5c15f7303778e6040562.jpg

這個部分跟上一個白球的碰撞檢測差不多,這里就不重復講了。碰到邊上之后的移動speed2步的命令,其實是讓藍球離開四個臺邊。

球進洞的程序:

球是要打到洞里的,那么我們看看藍球進洞是什么程序控制。

upload/article/images/2021-02-08/496e35781543eb77415b2c3d11470471.jpg

這個進洞檢測跟白球的進洞檢測是一樣的。進洞的效果就是消失后在球臺的正中間再次出現。這里就不講了。

今天的講解沒有做太多內容,重點就是兩個球碰撞之后的速度和方向的計算方法。大家掌握了這個技巧,以后做碰撞的游戲肯定會生動很多。


聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 成人亚洲区 | 亚洲视频精品在线 | 久久精品国产一区二区 | 欧美大jb| 久久久久久中文字幕 | 日韩午夜精品 | 国产精品v亚洲精品v日韩精品 | 99re国产精品 | 欧美激情综合五月色丁香小说 | 亚洲一二三四区视频 | 免费日韩av | 国产精品国产三级国产aⅴ原创 | 国产精品igao视频网网址不卡日韩 | 高清国产一区二区三区四区五区 | 日韩国产欧美在线观看 | 美女视频一区二区三区 | 久久久.com| 亚洲欧洲精品在线 | 久久久久久成人 | 欧洲久久久久久 | 欧日韩不卡在线视频 | 国产hsck在线亚洲 | 国产精品一区二区三区久久 | 2015成人永久免费视频 | 欧美视频亚洲视频 | 91精品国产欧美一区二区成人 | 国产香蕉视频在线 | 污视频免费看 | av动漫一区二区 | 天堂网亚洲 | 青草福利 | 久久亚洲国产视频 | 久久99国产精品 | 欧美偷拍综合 | 久久久精选 | 国产精品一区在线观看你懂的 | 在线免费观看视频一区二区三区 | 亚洲网站在线观看 | 国产片一区二区 | 国产精品爽爽久久 | 欧美精品一区二区久久 |