电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python開發飛機大戰游戲

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

本文實例為大家分享了python開發飛機大戰游戲的具體代碼,供大家參考,具體內容如下

import pygameimport randomimport math # 數學模塊 # 初始化界面pygame.init()# 設置窗口大小windows = pygame.display.set_mode((800, 600))# 設置窗口標題pygame.display.set_caption('小趙同學')# 引入圖片 logoicon = pygame.image.load(’logo.jpg’)pygame.display.set_icon(icon) # 4.游戲獲取背景bgcolor = pygame.image.load(’bj.png’)# 5.設置玩家飛機playerimg = pygame.image.load(’fj.png’)X = 350 # 設置玩家X軸Y = 480 # 設置玩家Y軸# 停止移動就可以將palyerStep改為0。控制一個變量來指定飛機指定移動playerStep = 0 # 添加背景音樂pygame.mixer.music.load(’bj.mp3’)pygame.mixer.music.play(-1)# 添加射中的音效# bao_music = pygame.mixer.Sound(’bj.mp3’) # 分數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)) # 游戲結束的變量over = Falseover_font = pygame.font.Font(’freesansbold.ttf’, 64) # 結束的提示語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) # 隨機產生Xself.y = random.randint(50, 250) # 隨機產生Yself.step = random.randint(2, 4) # 隨機產生速度 # 當被射中時恢復位置 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): # 每次循環都都在class Enemy中過一邊,所以隨機產生一個敵人的參數并且保存到列表中 enemis.append(Enemy()) # 顯示敵人并且實現敵人的移動下沉def enemy(): # 循環保存敵人的列表,每個敵人都過在這個for循環里被限制了移動的軌跡 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 # 設置敵人往下沉 # 判斷敵人的位置如果到達指定的地方則游戲結束 if e.y > 436:over = Trueprint('游戲結束啦')enemis.clear() # 設置飛機及飛機移動范圍的函數 == 飛機類型def fiji_type(): # 設置飛機的坐標和飛機X Y軸最大的移動位置 global X, Y # 5. 設置飛機 windows.blit(playerimg, (X, Y)) # 6.飛機移動 X += plagerStep # 預防飛機出界 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 # 設置子彈的X軸self.y = Y + 5 # 子彈出現在玩家的上方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 = [] # 保存現有的子彈 # 顯示子彈移動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.游戲主循環running = Truewhile running: # 4.背景 # 每個循環是畫一張畫組成的 # 畫出來bgcolor windows.blit(bgcolor, (0, 0)) # 調用這個字體 show_score() # event.get操作事件 for event in pygame.event.get():# 判斷操作類型是不是QUITif event.type == pygame.QUIT: # 如果程序為False就會停止則關閉 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 # 判斷按下空格健的反應 elif event.key == pygame.K_SPACE:# 創建一個子彈b = Bullet()bullets.append(b) # 判斷松來按鍵停止,if event.type == pygame.KEYUP: plagerStep = 0 # 調用飛機的類型的函數 fiji_type() # 調用敵人這個函數 enemy() show_bullets() # 顯示子彈 # 游戲結束語 check_over() # 刷新更新數據 pygame.display.update()# global 設置全局變量 ’’’ 游戲結構1.設置窗口大小2.背景圖3.顯示飛機4.移動飛機5.控制出界6.獲取鍵盤事件7.顯示敵人8.敵人移動9.下沉和隨機位置10.顯示多個敵人11.響應空格鍵12.添加子彈13.發射子彈14.射中檢測之距離15.射中檢測16.添加音效 17.添加并顯示分數18.游戲結束19.結束提示’’’

python開發飛機大戰游戲

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 洛阳装修公司-洛阳整装一站式品牌-福尚云宅装饰| 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 中矗模型-深圳中矗模型设计有限公司| 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 电动手术床,医用护理床,led手术无影灯-曲阜明辉医疗设备有限公司 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 番茄畅听邀请码怎么输入 - Dianw8.com | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 包装机传感器-搅拌站传感器-山东称重传感器厂家-济南泰钦电气 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂| 智能终端_RTU_dcm_北斗星空自动化科技 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 三板富 | 专注于新三板的第一垂直服务平台 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 |