亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

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

import pygameimport randomimport math # 數(shù)學(xué)模塊 # 初始化界面pygame.init()# 設(shè)置窗口大小windows = pygame.display.set_mode((800, 600))# 設(shè)置窗口標(biāo)題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è)置玩家飛機(jī)playerimg = pygame.image.load(’fj.png’)X = 350 # 設(shè)置玩家X軸Y = 480 # 設(shè)置玩家Y軸# 停止移動就可以將palyerStep改為0。控制一個變量來指定飛機(jī)指定移動playerStep = 0 # 添加背景音樂pygame.mixer.music.load(’bj.mp3’)pygame.mixer.music.play(-1)# 添加射中的音效# bao_music = pygame.mixer.Sound(’bj.mp3’) # 分?jǐn)?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) # 隨機(jī)產(chǎn)生Xself.y = random.randint(50, 250) # 隨機(jī)產(chǎn)生Yself.step = random.randint(2, 4) # 隨機(jī)產(chǎn)生速度 # 當(dāng)被射中時恢復(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中過一邊,所以隨機(jī)產(chǎn)生一個敵人的參數(shù)并且保存到列表中 enemis.append(Enemy()) # 顯示敵人并且實(shí)現(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è)置敵人往下沉 # 判斷敵人的位置如果到達(dá)指定的地方則游戲結(jié)束 if e.y > 436:over = Trueprint('游戲結(jié)束啦')enemis.clear() # 設(shè)置飛機(jī)及飛機(jī)移動范圍的函數(shù) == 飛機(jī)類型def fiji_type(): # 設(shè)置飛機(jī)的坐標(biāo)和飛機(jī)X Y軸最大的移動位置 global X, Y # 5. 設(shè)置飛機(jī) windows.blit(playerimg, (X, Y)) # 6.飛機(jī)移動 X += plagerStep # 預(yù)防飛機(jī)出界 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: # 如果程序?yàn)镕alse就會停止則關(guān)閉 running = False# 7.控制飛機(jī)的移動# 通過控制鍵盤的事件來控制(playerStep值)飛機(jī)的移動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)用飛機(jī)的類型的函數(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.顯示飛機(jī)4.移動飛機(jī)5.控制出界6.獲取鍵盤事件7.顯示敵人8.敵人移動9.下沉和隨機(jī)位置10.顯示多個敵人11.響應(yīng)空格鍵12.添加子彈13.發(fā)射子彈14.射中檢測之距離15.射中檢測16.添加音效 17.添加并顯示分?jǐn)?shù)18.游戲結(jié)束19.結(jié)束提示’’’

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本一级在线播放线观看视频 | 日本一级特大毛片 | 日本xxx高清免费视频 | 在线观看精品国语偷拍 | 日韩中文字幕第一页 | 一区二区三区在线观看免费 | 国产精品高清在线观看 | 免费一级a毛片免费观看欧美大片 | 黄色短视频免费看 | 麻豆传媒官网入口 | 国产经典一区 | 9久9久女女免费精品视频在线观看 | 黄色免费网站网址 | 国产免费做爰午夜视频 | 乱人伦99久久 | 国产萝控精品福利视频免费 | 亚洲美洲国产日产 | 正在播放一区 | 国产99精品 | 午夜婷婷网| 欧美一级成人一区二区三区 | 成人特黄午夜性a一级毛片 成人爱av18丰满 | 日韩专区中文字幕 | 国内精品999 | 日韩做爰在线观看免费 | 国产麻豆网 | 成人乱码 | 一级视频免费观看 | 中文精品久久久久国产网址 | 午夜视频污 | 国产精品欧美亚洲韩国日本久久 | 成人永久福利在线观看不卡 | 国产精品麻豆高清在线观看 | 我要看黄色一级大片 | 国产91精品一区二区视色 | 国产精品欧美一区二区三区 | 国产剧情精品在线观看 | 欧美太黄太色视频在线观看 | 91av官网| 国产一级视频在线观看 | 黄色毛片三级 |