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

小學課后服務 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. 主站蜘蛛池模板: 贞丰县| 泸水县| 交城县| 富民县| 阿克苏市| 旺苍县| 米脂县| 措美县| 海原县| 桃源县| 贵南县| 当雄县| 美姑县| 上栗县| 桃园市| 藁城市| 聂拉木县| 绵竹市| 离岛区| 五大连池市| 广宗县| 会同县| 花莲市| 曲沃县| 黎川县| 韶山市| 从化市| 恩施市| 安阳县| 宿州市| 潞城市| 定日县| 扶沟县| 霸州市| 太白县| 石家庄市| 宁阳县| 峨山| 高平市| 西城区| 定襄县|