av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python開發(fā)飛機大戰(zhàn)游戲

瀏覽:95日期:2022-06-15 08:52:51

本文實例為大家分享了python開發(fā)飛機大戰(zhàn)游戲的具體代碼,供大家參考,具體內(nèi)容如下

import pygameimport randomimport math # 數(shù)學(xué)模塊 # 初始化界面pygame.init()# 設(shè)置窗口大小windows = pygame.display.set_mode((800, 600))# 設(shè)置窗口標題pygame.display.set_caption('小趙同學(xué)')# 引入圖片 logoicon = pygame.image.load(’logo.jpg’)pygame.display.set_icon(icon) # 4.游戲獲取背景bgcolor = pygame.image.load(’bj.png’)# 5.設(shè)置玩家飛機playerimg = pygame.image.load(’fj.png’)X = 350 # 設(shè)置玩家X軸Y = 480 # 設(shè)置玩家Y軸# 停止移動就可以將palyerStep改為0。控制一個變量來指定飛機指定移動playerStep = 0 # 添加背景音樂pygame.mixer.music.load(’bj.mp3’)pygame.mixer.music.play(-1)# 添加射中的音效# bao_music = pygame.mixer.Sound(’bj.mp3’) # 分數(shù)score = 0# 添加字體和大小font = pygame.font.Font(’freesansbold.ttf’, 32) # 字體類def show_score(): # 顯示的文字 text = f'Score:{score}' # 渲染然后顯示 顯示text True表示24位的字 score_render = font.render(text, True, (0, 255, 0)) # 指定字體放到那個位置 windows.blit(score_render, (10, 10)) # 游戲結(jié)束的變量over = Falseover_font = pygame.font.Font(’freesansbold.ttf’, 64) # 結(jié)束的提示語def check_over(): if over:text = 'Game Over'render = font.render(text, True, (255, 0, 0))windows.blit(render, (320, 200)) # 8.添加敵人. # 11.添加多個敵人number_enemy = 6 # 敵人類class Enemy: def __init__(self):#self.img = pygame.image.load(’enemy.png’)self.x = random.randint(200, 600) # 隨機產(chǎn)生Xself.y = random.randint(50, 250) # 隨機產(chǎn)生Yself.step = random.randint(2, 4) # 隨機產(chǎn)生速度 # 當被射中時恢復(fù)位置 def reset(self):self.x = random.randint(200, 600)self.y = random.randint(50, 180) def distance(bx, by, ex, ey): a = bx - ex b = by - ey return math.sqrt(a * a + b * b) # 開根號 # 保存所有的敵人enemis = []for i in range(number_enemy): # 每次循環(huán)都都在class Enemy中過一邊,所以隨機產(chǎn)生一個敵人的參數(shù)并且保存到列表中 enemis.append(Enemy()) # 顯示敵人并且實現(xiàn)敵人的移動下沉def enemy(): # 循環(huán)保存敵人的列表,每個敵人都過在這個for循環(huán)里被限制了移動的軌跡 global over for e in enemis:windows.blit(e.img, (e.x, e.y))e.x += e.stepif e.x > 750 or e.x < 0: # 判斷敵人是否到了邊界 e.step *= -1 # 敵人碰到界面往返 e.y += 40 # 設(shè)置敵人往下沉 # 判斷敵人的位置如果到達指定的地方則游戲結(jié)束 if e.y > 436:over = Trueprint('游戲結(jié)束啦')enemis.clear() # 設(shè)置飛機及飛機移動范圍的函數(shù) == 飛機類型def fiji_type(): # 設(shè)置飛機的坐標和飛機X Y軸最大的移動位置 global X, Y # 5. 設(shè)置飛機 windows.blit(playerimg, (X, Y)) # 6.飛機移動 X += plagerStep # 預(yù)防飛機出界 if X > 680:X = 680 if X < 0:X = 0 # 子彈的類class Bullet: def __init__(self):self.img = pygame.image.load(’bullet.png’)self.x = X + 55 # 設(shè)置子彈的X軸self.y = Y + 5 # 子彈出現(xiàn)在玩家的上方self.step = 2 # 子彈移動的速度 # 擊中敵人 def hit(self):global scorefor e in enemis: if distance(self.x, self.y, e.x, e.y) < 30:# 射中了bullets.remove(self)e.reset() # 重置敵人# 沒擊中加10分score += 10 bullets = [] # 保存現(xiàn)有的子彈 # 顯示子彈移動def show_bullets(): for b in bullets:windows.blit(b.img, (b.x, b.y))b.hit() # 查看是否擊中了敵人b.y -= b.step # 往上移動# 判斷子彈是否出了界面if b.y < 0: bullets.remove(b) # 3.游戲主循環(huán)running = Truewhile running: # 4.背景 # 每個循環(huán)是畫一張畫組成的 # 畫出來bgcolor windows.blit(bgcolor, (0, 0)) # 調(diào)用這個字體 show_score() # event.get操作事件 for event in pygame.event.get():# 判斷操作類型是不是QUITif event.type == pygame.QUIT: # 如果程序為False就會停止則關(guān)閉 running = False# 7.控制飛機的移動# 通過控制鍵盤的事件來控制(playerStep值)飛機的移動if event.type == pygame.KEYDOWN: # 判斷按下鍵盤右鍵,按下則移動 if event.key == pygame.K_RIGHT:plagerStep = 3# 判斷按下左鍵 elif event.key == pygame.K_LEFT:plagerStep = -3 # 判斷按下空格健的反應(yīng) elif event.key == pygame.K_SPACE:# 創(chuàng)建一個子彈b = Bullet()bullets.append(b) # 判斷松來按鍵停止,if event.type == pygame.KEYUP: plagerStep = 0 # 調(diào)用飛機的類型的函數(shù) fiji_type() # 調(diào)用敵人這個函數(shù) enemy() show_bullets() # 顯示子彈 # 游戲結(jié)束語 check_over() # 刷新更新數(shù)據(jù) pygame.display.update()# global 設(shè)置全局變量 ’’’ 游戲結(jié)構(gòu)1.設(shè)置窗口大小2.背景圖3.顯示飛機4.移動飛機5.控制出界6.獲取鍵盤事件7.顯示敵人8.敵人移動9.下沉和隨機位置10.顯示多個敵人11.響應(yīng)空格鍵12.添加子彈13.發(fā)射子彈14.射中檢測之距離15.射中檢測16.添加音效 17.添加并顯示分數(shù)18.游戲結(jié)束19.結(jié)束提示’’’

python開發(fā)飛機大戰(zhàn)游戲

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人精品一区二区三区中文字幕 | 欧美日高清 | 亚洲综合视频 | 日韩精品一区二区三区中文在线 | 国产精品一区二区精品 | 99精品99久久久久久宅男 | 在线观看你懂的网站 | 色偷偷噜噜噜亚洲男人 | 中文字幕一区二区三区在线观看 | 国产黄色小视频在线观看 | 成人a网 | 四虎最新 | 亚洲精品天堂 | 精品免费国产一区二区三区四区 | av免费网站在线观看 | 国产欧美精品区一区二区三区 | 国产视频一区二区 | 欧美视频精品 | 综合在线视频 | 亚洲福利 | 波多野结衣一区二区三区在线观看 | 亚洲视频不卡 | av一区二区三区在线观看 | 久久亚洲国产精品 | 久久久在线视频 | 午夜影院操 | 九色国产| 少妇精品亚洲一区二区成人 | 亚洲一区二区av在线 | 激情视频一区 | 国产一级特黄aaa大片评分 | 久久综合一区 | 久久51| 欧美激情综合 | 久久99久久98精品免观看软件 | 日韩www| 毛片区| 狠狠av | 九九亚洲| 国产日韩欧美二区 | 国产欧美精品在线观看 |