python飞机大战子弹不显示_飞机大战游戏 飞机打出一发子弹后就不出现子弹了...
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
# main.py
import pygame
import sys
import traceback
import myplane
import enemy
import bullet
from pygame.locals import *
from random import *
pygame.init()
pygame.mixer.init()
bg_size =width, height = 480, 800
screen =pygame.display.set_mode(bg_size)
pygame.display.set_caption("飞机大战")
background =pygame.image.load("images/bg_01.jpg").convert()
#载入游戏声音
pygame.mixer.music.load("music/BGM.mp3")
pygame.mixer.music.set_volume(0.2)
def add_Plane1_enemies(group1,group2,num):
for i in range(num):
e1 =enemy.Plane1(bg_size)
group1.add(e1)
group2.add(e1)
def add_Plane2_enemies(group1,group2,num):
for i in range(num):
e2 =enemy.Plane1(bg_size)
group1.add(e2)
group2.add(e2)
def add_Plane3_enemies(group1,group2,num):
for i in range(num):
e3 =enemy.Plane1(bg_size)
group1.add(e3)
group2.add(e3)
def add_Plane4_enemies(group1,group2,num):
for i in range(num):
e4 =enemy.Plane1(bg_size)
group1.add(e4)
group2.add(e4)
def main():
pygame.mixer.music.play(-1)
#生成我方飞机
me = myplane.MyPlane(bg_size)
enemies =pygame.sprite.Group()
#生成敌方飞机1
Plane1_enemies =pygame.sprite.Group()
add_Plane1_enemies(Plane1_enemies,enemies,15)
#生成敌方飞机2
Plane2_enemies =pygame.sprite.Group()
add_Plane2_enemies(Plane2_enemies,enemies,6)
#生成敌方飞机3
Plane3_enemies =pygame.sprite.Group()
add_Plane3_enemies(Plane3_enemies,enemies,3)
#生成敌方飞机4
Plane4_enemies =pygame.sprite.Group()
add_Plane4_enemies(Plane4_enemies,enemies,1)
#生成普通子弹
bullet1 = []
bullet1_index = 0
BULLET1_NUM = 6
for i in range(BULLET1_NUM):
bullet1.append(bullet.Bullet1(me.rect.midtop))
clock =pygame.time.Clock()
#用于切换图片
switch_image = True
#用于延迟
delay = 99
running =True
while running:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
#检测用户的键盘操作
key_pressed = pygame.key.get_pressed()
if key_pressed[K_w] or key_pressed[K_UP]:
me.moveUp()
if key_pressed[K_s] or key_pressed[K_DOWN]:
me.moveDown()
if key_pressed[K_a] or key_pressed[K_LEFT]:
me.moveLeft()
if key_pressed[K_d] or key_pressed[K_RIGHT]:
me.moveRight()
screen.blit(background,(0, 0))
#发射子弹
if not (delay % 10):
bullet1[bullet1_index].reset(me.rect.midtop)
bullet1_index =(bullet1_index+1) % BULLET1_NUM
#检测子弹是否击中敌机
for b in bullet1:
if b.active:
b.move()
screen.blit(b.image, b.rect)
enemy_hit = pygame.sprite.spritecollide(b, enemies, False)
if enemy_hit:
b.active = False
for e in enemy_hit:
e.active = False
#绘制敌方飞机4
for each in Plane4_enemies:
if each.active:
each.move()
screen.blit(each.image, each.rect)
else:
#毁灭
each.reset()
#绘制敌方飞机3
for each in Plane3_enemies:
if each.active:
each.move()
screen.blit(each.image, each.rect)
else:
each.reset()
#绘制敌方飞机2
for each in Plane2_enemies:
if each.active:
each.move()
screen.blit(each.image, each.rect)
else:
each.reset()
#绘制敌方飞机1
for each in Plane1_enemies:
if each.active:
each.move()
screen.blit(each.image, each.rect)
else:
each.reset()
#检测我方飞机是否碰撞
enemies_down = pygame.sprite.spritecollide(me,enemies,False,pygame.sprite.collide_mask)
if enemies_down:
#me.active =False
for e in enemies_down:
e.active = False
# 绘制我方飞机
if me.active:
screen.blit(me.image, me.rect)
else:
#毁灭
print("Gameover!")
running = False
#切换图片
if not(delay % 5):
switch_image = not switch_image
delay-=1
if not delay:
delay =99
pygame.display.flip()
clock.tick(60)
if __name__ == '__main__':
try:
main()
except SystemExit:
pass
except:
traceback.print_exc()
pygame.quit()
input()
python飞机大战子弹不显示_飞机大战游戏 飞机打出一发子弹后就不出现子弹了...相关推荐
- c语言课程设计坦克大战,funcodec++课程设计_坦克大战
<funcodec++课程设计_坦克大战>由会员分享,可在线阅读,更多相关<funcodec++课程设计_坦克大战(24页珍藏版)>请在人人文库网上搜索. 1.课程设计一 坦克 ...
- java坦克大战 实训报告_坦克大战系统《Java程序开发实训》综合实训报告.doc
坦克大战系统<Java程序开发实训>综合实训报告 <Java程序开发实训>综合实训报告 题目: 坦克大战系统 姓名: 方庆 学号: 2010203206 班级: 10软件(2) ...
- python飞机大战简书_python中的小游戏——飞机大战
精灵类---plane_sprites #这个模块放一些常用的工具和基础类和精灵类 #在其他模块调用 import pygame import random #设置游戏屏幕大小 这是一个常量 SCRE ...
- python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!...
今天 要来说说滑动验证码了 大家应该都很熟悉 点击滑块然后移动到图片缺口进行验证 现在越来越多的网站使用这样的验证方式 为的是增加验证码识别的难度 那么,对于这种验证码应该怎么破呢 接下来就是见证神奇 ...
- python创建dataframe表格不显示_创建列pandas DataFrame数据的表绘图时出现问题?
我有下面的代码,它创建一个带有标签的列名的表映像.我遇到的问题是让列(dc[x])能够垂直填充表,而不是水平填充.在def drilltable(): c = readcsv3() dc = Data ...
- python如何实时捕捉cmd显示_如何从Python脚本中捕获Python解释器和/或CMD.EXE的输出?
-问答-阿里云开发者社区-阿里云...
如果您正在谈论python解释器或CMD.exe,它是您脚本的"父",那么不可能.在每个类似POSIX的系统中(现在你正在运行Windows,看起来可能有一些我不知道的怪癖,YMM ...
- python如何设置窗口保持显示_如何保持Python脚本输出窗口打开?
Cats萌萌 在发生异常时保持窗口打开(但是,同时打印异常)Python 2if __name__ == '__main__': try: ## your code, typically one fu ...
- python实时数据存储与显示_利用python进行数据加载和存储
1.文本文件 (1)pd.read_csv加载分隔符为逗号的数据:pd.read_table从文件.URL.文件型对象中加载带分隔符的数据.默认为制表符.(加载为DataFrame结构) 参数name ...
- python电子英汉词典显示_如何使用python为Linux打造一款命令行下的在线英汉词典...
项目说明 : 在linux终端下有时候遇到一个想查询的英语单词 , 但是不想打开浏览器去谷歌或者百度去搜索 , 因此就写了这个基于爬虫的单词翻译工具 , 实现原理很简单 , 基本开发已经完成 ,总共有 ...
最新文章
- 寻找优秀的程序员之实战指南-2
- 《Programming Ruby 中文版第二版》P577页singleton_method_undefined方法说明有点问题
- 使用SQLyog无法连接到MySQL,error code 2013
- 汽车电子及ADAS安全部分相关测试标准
- #linux# su命令细节错误
- Linux Shell——函数的使用
- Java实验二 计算机 1501 王奕开 18
- 计算机视觉中的牛人贡献及其主页
- 计算机组成原理第二版知识大纲
- 2022年春运火车票明起开卖
- ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps 线段树
- base包中自定义activity
- 删除iptables nat 规则
- 全新 ENVI Modeler 遥感建模工具
- php将数组转成字符串的,php怎样将数组转化成字符串
- 完整的棋牌游戏开发流程,你知道多少棋牌游戏开发。
- 信鸽 ios tag推送 php,信鸽推送平台常见问题汇总iOS端
- 微信小程序获取用户收货地址源码
- 求生之路2正版rpg服务器,求生之路2怎么屏蔽rpg服务器 求生之路2屏蔽rpg服务器方法-游侠网...
- NLP-基础任务-中文分词算法(2)-基于词典:基于N-gram语言模型的分词算法【基于词典的分词方法】【利用维特比算法求解最优路径】【比机械分词精度高】【OOV:基于现有词典,不能进行新词发现处理】