中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

小學課后服務 Python少兒編程 進階篇:13-飛機大戰4 課件 (15張PPT)

資源下載
  1. 二一教育資源

小學課后服務 Python少兒編程 進階篇:13-飛機大戰4 課件 (15張PPT)

資源簡介

(共15張PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少兒編程課
飛機大戰4
本節我們來增加子彈和隕石、飛機和隕石之間的碰撞效果,并使用圖片素材替換方塊
碰撞檢測
1
創建子彈與隕石精靈組
2
分別在產生隕石和子彈的地方,加入相應的精靈組
# 定義隕石精靈組
all_meteorite = pygame.sprite.Group()
# 定義子彈精靈組
all_bullets = pygame.sprite.Group()
# 定義8個隕石并加入到精靈組all_sprites
for i in range(8):

# 在循環產生隕石時,加入隕石精靈組
all_meteorite.add(met)
def shoot(self):

# 在飛機的shoot方法中產生子彈時,加入子彈精靈組
all_bullets.add(bullet)
接著來看碰撞,pygame提供了處理精靈組之間碰撞的函數
精靈組的碰撞—groupcollide函數原型
groupcollide(group1, group2, dokill1, dokill2, collided = None) ‐>Sprite_dict
group1 : 精靈組1
group2 : 精靈組2
dokill1 : 發生碰撞時,是否銷毀精靈組1中的發生碰撞的精靈。
dokill2 : 發生碰撞時,是否銷毀精靈組2中的發生碰撞的精靈。
collided :自定義的回調函數,你可以自己編寫碰撞檢測函數。碰撞檢測函數的參數是兩個精靈,返回值是True/False
返回值是一個字典,鍵是精靈組1中發生碰撞的精靈,值是精靈組2中與該精靈發生碰撞的精靈的列表。
現在來添加子彈與隕石的碰撞檢測
1
精靈組碰撞處理
2
由于碰撞后銷毀了隕石,所以需要在碰撞后添加一個新的隕石出來
# 檢測子彈組和隕石組是否碰撞
hits = pygame.sprite.groupcollide(all_meteorite, all_bullets, True, True)
# 如果碰撞了,則重新生成一個隕石,并加入到all_sprites和all_meteorite精靈組
for hit in hits:
meteorite = Meteorite()
all_sprites.add(meteorite)
all_meteorite.add(meteorite)
運行程序,體驗一下效果
飛機和隕石的碰撞效果
1
增加飛機與隕石的碰撞檢測
2
運行程序,體驗效果
不同與子彈和隕石,飛機與隕石是精靈和精靈組之間的碰撞。單個精靈和某個精靈組之間的碰撞檢測,使用spritecollide方法
# 檢測飛機和隕石之間的碰撞
hits = pygame.sprite.spritecollide(player, all_meteorite, True)
# 如果碰撞,則游戲結束
if hits:
running = False
改頭換面
在前面的課程中,無論是飛機、隕石還是子彈,我們都是使用方塊代替的,現在我們就把他們換成真正的圖片素材
1
在工程目錄新建img文件夾,然后將素材拷貝到文件夾中
2
首先替換隕石圖片
# 定義隕石的圖形
self.image = pygame.Surface((30, 40))
# 定義隕石的顏色為紅色
self.image.fill((255, 0, 0))
在Meteorite類的__init__方法中,我們將
更換為:
self.image = pygame.image.load("img/img_meteorite.png")
練習
Exercises








將飛機的圖片、子彈的圖片都更改
在原先設置背景顏色的地方,修改成如下代碼
更改游戲的背景,效果演示
# 繪制屏幕的背景顏色
# screen.fill(COLOR_BLACK)
background=pygame.image.load("img/img_bg.jpg").convert()
screen.blit(background,background.get_rect())
1
運行程序,效果如下:
2
總結
Summary
Pygame中的碰撞效果

Pygame素材導入

Thanks!

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 绥化市| 柳州市| 孝义市| 抚顺县| 静宁县| 昌邑市| 绥江县| 洛隆县| 广安市| 耒阳市| 红原县| 永丰县| 肇东市| 揭东县| 曲靖市| 鹿泉市| 香港 | 日喀则市| 太仆寺旗| 邵东县| 招远市| 博湖县| 尼勒克县| 名山县| 合肥市| 浮山县| 临海市| 喀什市| 连南| 抚州市| 福建省| 克什克腾旗| 日照市| 安陆市| 桐城市| 万宁市| 仁寿县| 麻江县| 南充市| 勐海县| 天祝|