生活随笔
收集整理的這篇文章主要介紹了
教表弟用Python写了个“飞机大战”游戏!表弟:可以拜你为师吗?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天由于我生病,于是在家休息。剛好我表弟來我家里玩!由于太無聊了,就順便教他寫個"飛機大戰"的游戲!還不錯,他玩的也挺開心,哈哈哈。如果有想要源碼的小伙伴們可以找我要!
操作環境
操作系統:windows10
python版本:python 3.7
使用模塊:os,sys,random,pygame
Python有過基礎的都知道,我們在做游戲的時候,會用到一個模塊:pygame ! 小白需要注意的是:沒有的先 pip install 一下!
具體實現
1:首先我們需要準備游戲中界面所需要的飛機和場景圖片!
2:我們初始化pygame,界面設計,繪制游戲屏幕,一些前期準備做足!如:
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:
895817687 尋找有志同道合的小伙伴,
互幫互助
,群里還有不錯的視頻學習教程和PDF電子書!
...........
...........
...........
pygame
.init() # 初始化pygame
# 使用pygame
.display
.set_mode()繪制游戲屏幕
screen
= pygame
.display
.set_mode((512, 768))
# 使用pygame
.time
.Clock創建一個時鐘對象
clock
= pygame
.time
.Clock() # 創建一個時鐘
(后面刷新幀率時會用到
)
pygame
.time
.set_timer(CREATE_ENEMY
, 400) # 定時創建敵軍
,計量毫秒
pygame
.time
.set_timer(CREATE_BULLET
, 500) # 定時創建子彈
pygame
.time
.set_timer(CREATE_BOMB
, random
.randint(10000, 50000))
hero
= Hero() # 創建一個英雄
hero_group
= pygame
.sprite
.Group(hero
) # 英雄精靈組
enemy_group
= pygame
.sprite
.Group() # 敵軍精靈組
bullet_group
= pygame
.sprite
.Group() # 子彈精靈組
bomb_group
= pygame
.sprite
.Group() # 炸彈精靈組
font1
= pygame
.font
.Font("./images/SIMHEI.TTF", 40) # 設置字體樣式
font2
= pygame
.font
.Font("./images/SIMHEI.TTF", 25)
bomb_num
= 0 # 炸彈數量
bj_num
= 1 # 背景圖片的初始值
,更換背景
FLAG
= False # 游戲事件標識
score
= False
while True
:game_text
= font1
.render("飛機大戰 ", 1, (220, 36, 194)) # 文本顯示
,抗鋸齒
,RGBstart_text
= font1
.render("按下Enter 開始游戲! ", 1, (35, 221, 100))bj_text
= font1
.render("←→鍵更換游戲背景 ", 1, (39, 187, 217))for event in pygame
.event
.get(): # 獲取事件信息
if event
.type
== pygame
.KEYDOWN and event
.key
== pygame
.K_RETURN
:FLAG
= Trueelif event
.type
== pygame
.KEYDOWN and event
.key
== pygame
.K_LEFT
:bj_num
+= 1if bj_num
> 5:bj_num
= 1elif event
.type
== pygame
.KEYDOWN and event
.key
== pygame
.K_RIGHT
:bj_num
-= 1if bj_num
< 1:bj_num
= 5elif event
.type
== pygame
.QUIT
:exit()bj1
= BackGround(bj_num
=bj_num
) # 進入游戲的背景bj2
= BackGround(True
, bj_num
=bj_num
) # 開始等于True的背景bj_group
= pygame
.sprite
.Group(bj1
, bj2
)bj_group
.draw(screen
) # 繪制界面
............
............
............
3:功能上的實現:英雄與敵軍碰撞時同是消除!當英雄與敵軍碰撞時替換爆炸效果圖片!繪制分數!繪制炸彈顯示子彈,與敵機碰撞時消除等等!
# 子彈與敵機碰撞時消除score
+= len(pygame
.sprite
.groupcollide(bullet_group
, enemy_group
, True
, True
)) # score分數 collide碰撞enemies
= pygame
.sprite
.spritecollide(hero
, enemy_group
, True
) # 英雄與敵軍碰撞時同是消除
# bomb_num += len(pygame.sprite.spritecollide(hero, bomb_group, True))if len(enemies
) > 0:hero
.image
= pygame
.image
.load("./images/image 12.png") # 當英雄與敵軍碰撞時替換爆炸效果圖片hero_group
.draw(screen
)pygame
.display
.update()hero
.kill()exit()bj_group
.update() # 更新所有精靈bullet_group
.update()enemy_group
.update()hero_group
.update()bomb_group
.update()bj_group
.draw(screen
) # 繪制精靈到界面enemy_group
.draw(screen
)bullet_group
.draw(screen
)hero_group
.draw(screen
)bomb_group
.draw(screen
)screen
.blit(start_text
, (10, 10)) # 繪制炸彈顯示screen
.blit(score_text
, (10, 40)) # 繪制分數pygame
.display
.update() # 刷新界面
或許做的不是很完美,后期都是可以不斷優化的!喜歡的小哥哥小姐姐,想要的可以評論!
總結
以上是生活随笔為你收集整理的教表弟用Python写了个“飞机大战”游戏!表弟:可以拜你为师吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。