# -*- coding:utf-8 -*-
import pygame
import time
from pygame.locals import *
import random
# 玩家飞机
class HeroPlane(object):def __init__(self,screen_temp):self.x=200self.y=440self.image=pygame.image.load("./feiji/hero_live.png")self.screen=screen_tempself.bullet_list=[]def display(self):self.screen.blit(self.image, (self.x, self.y))for bullet in self.bullet_list:bullet.display()bullet.move_up()if bullet.judget():#判断子弹是否越界self.bullet_list.remove(bullet)def move_left(self):self.x-=5def move_right(self):self.x+=5def fire(self):self.bullet_list.append(Bullet(self.screen, self.x+50, self.y-50))def bong(self,enemy,hero):enemy.enemybullethit(self.x,enemy,hero)def changeimg(self,enemyplan_temp):self.image = pygame.image.load("./feiji/hero.png")self.screen.blit(self.image, (self.x, self.y))enemyplan_temp.stop()# 敌人飞机
class EnemyPlane(object):def __init__(self,screen_temp):self.x=0self.y=0self.image=pygame.image.load("./feiji/enermy.png")self.screen=screen_tempself.bullet_list = []self.direction = "right"def display(self):self.screen.blit(self.image, (self.x, self.y))for bullet in self.bullet_list:bullet.display()bullet.move_down()if bullet.judget():#判断子弹是否越界self.bullet_list.remove(bullet)def move(self):"""方向决定表达式 边界值更改方向值"""if self.direction == "right":self.x += 2elif self.direction == "left":self.x -= 2if self.x>410:self.direction = "left"elif self.x<0:self.direction = "right"def autofire(self):random_num=random.randint(1,100)if random_num==20 or random_num==80:self.bullet_list.append(EnemyBullet(self.screen, self.x, self.y))def enemybullethit(self, heroplan_x_temp,enemyplan_temp,heroplan_temp):for bullet in self.bullet_list:bullet.hit(heroplan_x_temp,enemyplan_temp,heroplan_temp)def stop(self):self.direction = None# 敌机停止class Bullet(object):def __init__(self,screen_temp, x, y):self.x = xself.y = yself.image = pygame.image.load("./feiji/zidan.png")self.screen = screen_tempdef display(self):self.screen.blit(self.image, (self.x, self.y))def move_up(self):self.y -= 10def judget(self):if self.y<0:return Trueelse:return Falseclass EnemyBullet(Bullet):def __init__(self,screen_temp, x, y):self.x = x+50self.y = y+100self.image = pygame.image.load("./feiji/zidan2.png")self.screen = screen_tempdef display(self):self.screen.blit(self.image, (self.x, self.y))def move_down(self):self.y += 10def judget(self):if self.y>600:return Trueelse:return Falsedef hit(self,heroplan_x_temp,enemyplan_temp,heroplan_temp):if self.y >=440 and self.y<=600:# 获取玩家的飞机的x值进行判断# x1=玩家飞机.x x2=x1+142x1 = heroplan_x_tempx2 = x1 + 142if self.x >=x1 and self.x <=x2:print("击中!!!!!")# 玩家飞机换图 game overheroplan_temp.changeimg(enemyplan_temp)def key_control(hero_temp):# 获取事件,比如按键等for event in pygame.event.get():# 判断是否点击了退出按钮if event.type == QUIT:  # 点击窗口的退出键print("exit")exit()# 判断是否按下了键elif event.type == KEYDOWN:# 检测是否 a 或者 leftif event.key == K_a or event.key == K_LEFT:print("left")hero_temp.move_left()# 检测是否 d 或者 rightelif event.key == K_d or event.key == K_RIGHT:print("right")hero_temp.move_right()# 空格键elif event.key == K_SPACE:print("space")hero_temp.fire()def main():# 创建一个窗口screen = pygame.display.set_mode((480,600),0,32)# 创建一个背景图片background = pygame.image.load("./feiji/bg.png")#创建一个飞机对象hero = HeroPlane(screen)#创建敌人飞机enemy = EnemyPlane(screen)while True:screen.blit(background,(0,0))hero.display()enemy.display()enemy.move()#调用敌机的移动enemy.autofire()  # 调用敌机的发射子弹hero.bong(enemy,hero) #玩家飞机爆炸pygame.display.update()key_control(hero)time.sleep(0.01)if __name__ == '__main__':main()

  

转载于:https://www.cnblogs.com/huahua2018/p/9921688.html

飞机大战-玩家飞机被击中相关推荐

  1. python飞机大战子弹不显示_飞机大战游戏 飞机打出一发子弹后就不出现子弹了...

    马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x # main.py import pygame import sys import tracebac ...

  2. 怎么用java做全民飞机大战_Java飞机大战游戏设计与实现

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

  3. 飞机大战HTML5游戏源码,基于Canvas制作的网页版飞机大战游戏+飞机大战手机端

    简介: 飞机大战HTML5游戏源码是一款基于Canvas制作的网页版飞机大战游戏,画质精美的飞机大战手机端游戏源码 网盘下载地址: http://kekewangLuo.net/W1S2LQcqAT2 ...

  4. java小游戏飞机大战_飞机大战小游戏Java(1)

    雷电游戏大家应该很多都玩过吧(至少95后的我有段时间一直玩····没玩过可能你太年轻了hhh),然后我们今天做一个类似的小游戏.软件:eclipse.exe 编程语言:JAVA 首先,还是要做个窗口界 ...

  5. 飞机大战-控制飞机左右移动二

    # -*- coding:utf-8 -*-import pygame from pygame.locals import * import timedef main():#1. 创建窗口screen ...

  6. java 中飞机大战碰撞检测,飞机大战开发04子弹与敌机的碰撞检测

    先是敌机与玩家子弹的碰撞检测: 代码: GameLayer.h void GameLayer::update(float dt) { for (int i = 0 ;i < m_pEnermyV ...

  7. 基于Java的飞机大战游戏的设计与实现论文

    源码下载 http://www.byamd.xyz/hui-zong-1/ 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communicat ...

  8. 基于Java的飞机大战游戏的设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于Java的飞机大战游戏的设计与实现 摘   要 现如今,随着智能手机的兴起与普及,加上4G( ...

  9. 【Python实训项目】pygame制作【飞机大战】

    目录 一.课程设计目的及应用背景 二.课程设计内容 三.课程设计代码实现 1. 创建子弹类 2.创建玩家飞机类 3. 创建敌机类 4.检查键盘输入 5.创建主模块 四.测试结果 五.思考.心得和改进以 ...

  10. 怎么用java做全民飞机大战_基于VC++和OpenCV实现的全民飞机大战游戏

    摘要 功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌 ...

最新文章

  1. 线程安全的理论讲解(volatile)
  2. 基于协同过滤算法的在线鲜花店推荐系统详解及GitHub下载
  3. oracle 数据库中拆分,oracle数据库字符串拆分
  4. Windows Server 2012 R2 里面如何安装Net Framework 3.5
  5. Java StackTraceElement getClassName()方法与示例
  6. hadoop-集群安装
  7. autosar架构详细介绍_干货|非常详细的 Ceph 介绍、原理、架构
  8. C语言从入门到精通pdf
  9. Axure 9 案例教程基础篇之课程简介(助你快速进入实战阶段)
  10. Linux无头浏览器的自动化测试实现
  11. html5读取umd,UMD、CommonJS、ES Module、AMD、CMD模块的写法
  12. 获取连接设备的SN号
  13. 2021年焊工(初级)考试报名及焊工(初级)最新解析
  14. 幽默故事:1、我喜欢的女神;2、农村淑女(木子家原创)
  15. Java 7的新特性:文件监视器
  16. VB图片分割器九宫格
  17. 上有尧舜之君,下有尧舜之民
  18. 工程师应培养哪些基本功?听美团技术大咖怎么说
  19. FFMPEG录屏(1)----录制桌面
  20. 数据仓库与元数据管理

热门文章

  1. 声卡中的 line in line out
  2. matlab data数据类型,MATLAB - 数据类型
  3. tomcat 窗口中文乱码解决
  4. Unity shader入门精要-第一章笔记
  5. 项目管理学习流程图-ITTO-PMP
  6. 如何用python完成评分功能呢_如何在python中创建一个高效快速的评分系统?
  7. 天线方向图仿真(面阵、圆阵、圆环阵)matlab
  8. 会员积分消费系统 php,会员消费管理系统充值营销系统会员积分消费系统.net源码...
  9. AD转换实验c语言原理图,我的AD/DA转换单片机实验,含原理图和源码
  10. 农场派对(party)(信息学奥赛一本通 1497)