import pygame
import sys
import random # 产生随机数
import feiji
import diji# 控制飞机
def key_kong(hero):for shi_jian in pygame.event.get():# type 类型   QUIT 退出if shi_jian.type == pygame.QUIT:pygame.quit()  # 退出游戏sys.exit()  # 系统文件的退出# 判断是否按了键 KEYelif shi_jian.type == pygame.KEYDOWN:# 检测电脑是否按了a键,向左移动if shi_jian.key == pygame.K_a :hero.move_left()elif shi_jian.key == pygame.K_d :hero.move_right()elif shi_jian.key == pygame.K_j:hero.fashe()elif shi_jian.key == pygame.K_b:hero.zhanji_boom()# 1。初始化
def zhu():pygame.init()# 2。设置一个窗口chuangkou = pygame.display.set_mode((400, 700))# 3。设置一个标题pygame.display.set_caption("飞机大战")# 6. 导入图片 image图像   load 加载bei_jing = pygame.image.load("图片/background.png")# 创建一个飞机对象feiji1 = feiji.feiji(chuangkou)diji_ku = [] # 列表pygame.key.set_repeat(1,1)# 5。循环while True:# 把背景放上去chuangkou.blit(bei_jing, (0, 0))# 把飞机和相关元素放上窗口去feiji1.show()b = random.randint(1,300)if b == 5:diji_ku.append(diji.diji(chuangkou))for diji1 in diji_ku:diji1.show()diji1.move()diji1.fashe()if diji1.yuejie():# remove是通过内容把列表中的元素删除diji_ku.remove(diji1)# 爆炸判断?for diji2 in diji_ku:if diji2.x<feiji1.x+100 and diji2.x+51>feiji1.x:if diji2.y<feiji1.y+124 and diji2.y+39>feiji1.y:feiji1.zhanji_boom()# 控制飞机jjkey_kong(feiji1)print("---")# key_kong2(diji1 , 2)# 4.刷新pygame.display.update()# main主要的函数
if __name__ == '__main__':zhu()
import pygame
import zidan
import random
"""
敌机类:
属性:飞机位置 ,飞机图片,飞机名字,飞机窗口
方法:移动,开火
"""
class diji():def __init__(self,ck):self.name="diji"self.x = random.randint(0,400)self.y = 0self.picture = pygame.image.load("图片/enemy-1.gif")self.zidan_ku=[]self.chuangkou = ckself.fang_xiang = "right"def show(self):self.chuangkou.blit(self.picture,(self.x,self.y))for dan_ge_zidan in self.zidan_ku:dan_ge_zidan.show()# 飞机的子弹移动dan_ge_zidan.move__djfd()if dan_ge_zidan.yuejie2():self.zidan_ku.remove(dan_ge_zidan)def move(self):self.y += 1# self.x += 1def fashe(self):a = random.randint(1,100)if a==2:self.zidan_ku.append(zidan.zidan(self.chuangkou, self.x + 0, self.y +0, "图片/bullet.png"))def yuejie(self):if self.y > 700:return Trueelse:return False
import pygame
import zidan
import time
import sysclass feiji():def __init__(self, ck):self.name = "hero"self.x = 200self.y = 400self.chuangkou = ckself.picture = pygame.image.load("图片/hero1.png")self.zidan_ku = []# 爆炸代码self.boom = False  # 判断战机是否被撞击self.boom_picture = []  # 爆炸图库self.jiaru_boom_picture()  # 爆炸图库加入图片的函数self.boom_picture_num = 0  # 第几张爆炸图片self.image_index = 0 # 计数,当达到一定数值显示下一张图片def jiaru_boom_picture(self):self.boom_picture.append(pygame.image.load("图片/hero_blowup_n1.png"))self.boom_picture.append(pygame.image.load("图片/hero_blowup_n2.png"))self.boom_picture.append(pygame.image.load("图片/hero_blowup_n3.png"))self.boom_picture.append(pygame.image.load("图片/hero_blowup_n4.png"))# 把飞机放到屏幕上def show(self):if self.boom == True:self.chuangkou.blit(self.boom_picture[self.boom_picture_num], (self.x, self.y))self.image_index += 1if self.image_index == 70:self.image_index = 0self.boom_picture_num += 1if self.boom_picture_num > 3:time.sleep(2)pygame.quit()  # 退出游戏sys.exit()  # 系统文件的退出else:self.chuangkou.blit(self.picture, (self.x, self.y))# 如果有子弹,就放上窗口# print(len(self.zidan_ku))for dan_ge_zidan in self.zidan_ku:dan_ge_zidan.show()# 飞机的子弹移动dan_ge_zidan.move__fd()if dan_ge_zidan.yuejie():self.zidan_ku.remove(dan_ge_zidan)# move 向左移动def move_left(self):self.x -= 20if self.x < -25:self.x = 5# 向右移动def move_right(self):self.x += 20if self.x >= 330:self.x = 330# 发射子弹的函数def fashe(self):# 新建子弹对象保存到zidan1变量到列表里去self.zidan_ku.append(zidan.zidan(self.chuangkou, self.x + 48, self.y - 10, "图片/bullet.png"))self.zidan_ku.append(zidan.zidan(self.chuangkou, self.x + 14, self.y + 25, "图片/bullet1.png"))self.zidan_ku.append(zidan.zidan(self.chuangkou, self.x + 80, self.y + 25, "图片/bullet2.png"))def zhanji_boom(self):self.boom = True# back  返回,后面
# ground 地面
# 哪一行代码确定战机的位置,27行,用坐标确定战机位置
# 飞机的类
# 飞机名字, 飞机的位置,窗口,图片
import pygame
# 子弹的类
# 属性:子弹的位置 ,子弹窗口,子弹图片,伤害,子弹名字,子弹数量,
# 方法:子弹的show展示,move移动
class zidan():def __init__(self, ck, x, y, zidan_tupian):self.x = xself.y = yself.window = ckself.picture = pygame.image.load(zidan_tupian)def show(self):# print("子弹的y坐标是%d"%self.y)self.window.blit(self.picture, (self.x, self.y))def move__fd(self):self.y = self.y - 1def move__djfd(self):self.y = self.y + 2def yuejie(self):if self.y < -100:return Trueelse:return Falsedef yuejie2(self):if self.y > 700:return Trueelse:return False

boren - 飞机大战9之战机爆炸相关推荐

  1. 飞机大战之六:敌机爆炸(碰撞检测)

    参考网址:http://blog.csdn.net/jackystudio/article/details/11917875 源码下载地址:点击打开链接 关于svn的简单使用:点击打开链接 1.修改以 ...

  2. java飞机大战爆炸效果_Java飞机大战游戏设计与实现

    1 概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程 ...

  3. java 雷霆战机游戏 飞机大战 全过程教学+免费素材(附全部源代码)

    这个游戏已是我第二次编写了,之前写过一个简易版的飞机大战类似demo.这次在上一次基础上添加了许多元素,增添了可玩性. 游戏效果图如下: ps :完整源码+视频教程+论文文档 :java雷霆战机完整资 ...

  4. Cocos2d-x 3.2 lua飞机大战开发实例(三)道具的掉落,碰撞检测,声音,分数,爆炸效果,完善游戏的功能细节

           Cocos2d-X 3.2  lua语言飞机大战开发实例(三) 7.添加声音,更新分数,添加爆炸效果,道具的掉落.道具的碰撞检测等完善游戏功能 爆炸的效果添加 首先需要在GameData ...

  5. 【游戏开发实战】使用Unity 2019制作仿微信小游戏飞机大战(七):主角飞机碰撞与爆炸

    文章目录 零.教程目录 一.前言 二.本篇目标 三.飞机机碰撞组件:BoxCollider2D.Rigidbody2D 四.添加Tag:Enemy 五.主角飞机碰撞处理:OnTriggerEnter2 ...

  6. python项目:飞机大战(爆炸效果,血条,音效,buff加成,boss,菜单,完整详细注释的源码)

    文章目录 一. 总体概览 基本功能 细节部分(全部可以自定义) 可增添需求 二,技术框架 核心技术概述 1.游戏的初始化和退出 2 理解游戏中的坐标系 3 创建游戏主窗口 4. 理解 **图像** 并 ...

  7. java飞机大战大招和护盾_全民飞机大战:宠物六甲神将哪个技能会为战机添加护盾抵挡子弹伤害?...

    在全民飞机大战的游戏当中,微信每天都有着每日一题活动.小编这里要给大家带来的就是今天的每日一题宠物六甲神将哪个技能会为战机添加护盾抵挡子弹伤害的答案,有兴趣的就来看看吧. 全民飞机大战:宠物六甲神将哪 ...

  8. 雷霆战机9.5全新上线,Python+Pygame开发飞机大战完整游戏项目(附源码)

    项目名称:太空大战 开发环境:Python3.6.4 第三方库:Pygame1.9.6 代码编辑器:Sublime Text 先来看一下游戏画面吧!  游戏画面动态且丰富哦!   需求分析 利用Pyt ...

  9. js写飞机大战_地图,我方战机发射子弹

    效果图: 代码: <!DOCTYPE html> <html><head><meta charset="utf-8" /><t ...

  10. Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

最新文章

  1. 「安全技术」针对常见混淆技术的反制措施
  2. iphone电池怎么保养_蓄电池在ups系统中应该怎么维护保养?
  3. C++简易测试代码框架
  4. jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)
  5. 大数据Hadoop2.x与Hadoop3.x相比较有哪些变化
  6. vue、nuxt性能优化
  7. 转:ReLU激活函数:简单之美
  8. 电子工程师名片——FAT16文件系统(转)
  9. md5是什么_全民小视频视频修改md5有什么用6
  10. redhat 生产环境版本选择
  11. 清代考生是如何作弊?很是牛啊!
  12. 服务器搬迁方案_网站云服务器迁移方案需要注意什么?
  13. buuoj 小易的U盘
  14. 干货 | 超级全面的电容知识
  15. vue项目初始化出现tar ENOENT: no such file or directory错误的解决办法。
  16. Linux磁盘与目录的容量、连结档
  17. 解决多个数独重叠联系
  18. 一些http和tomcat知识补充
  19. 阴阳师服务器紧急维护,2月24日阴阳师服务器更新维护内容公告
  20. 180101 逆向-64位处理器

热门文章

  1. 交换机组播风暴_「广播风暴」CISCO交换机如何防止广播风暴 - seo实验室
  2. 本科学经济还是学数学和计算机,如果考研想往经管类方向,学习数学类,还是数学与应用数学, 这两个专业有什么不同...
  3. java加按钮_剪辑大神都在用的加字幕神器,你知道嘛
  4. F1电竞全球锦标赛首度落地中国
  5. linux动态库so更新
  6. FMI飞马网IT书籍赠送:参加获奖就送智能技术/软件开发/Web技术/数据科学计算机科学/网络技术/IT文化与互联网
  7. OA项目之我的审批(会议查询会议签字)
  8. e^(At)求解方法及其含义–线性微分方程的求解
  9. 什么是教学用计算机,计算机在教学方面的应用
  10. MATLAB实现规范化(normalize)数据的函数实现