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

小學課后服務 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!

展開更多......

收起↑

資源預覽

  • <menuitem id="wfhyu"><abbr id="wfhyu"></abbr></menuitem>

    <bdo id="wfhyu"></bdo>
  • <bdo id="wfhyu"></bdo>
    主站蜘蛛池模板: 随州市| 惠州市| 沅陵县| 江源县| 锦屏县| 渝中区| 集安市| 沂源县| 怀化市| 祥云县| 资源县| 武隆县| 安溪县| 姜堰市| 台北市| 高唐县| 宿迁市| 沂南县| 富蕴县| 尚志市| 荣昌县| 永宁县| 额尔古纳市| 韩城市| 临江市| 南和县| 澳门| 汤阴县| 光山县| 漾濞| 池州市| 苏尼特右旗| 龙陵县| 铜陵市| 鄂托克旗| 正阳县| 新龙县| 乌拉特前旗| 六盘水市| 黔南| 汽车|