"""
encoding=utf-8
Time : 2018/7/26 20:23
Author : 蘑菇plus
Email : 497392071@qq.com
File : 显示图形.py
Software: PyCharm
"""
import random
from random import randint
import pygame
#定义一个子弹类
class Bullet:
def __init__(self):
self.pos=[p1.pos[0]+46,p1.pos[1]-21]
self.bullet_speed=25
#定义移动方法
def move(self):
bullet = pygame.image.load(r'D:\成都Python学习\pycharm\day10-学生管理系统\8_03\picture\bullet1.png')
screen.blit(bullet, (self.pos[0], self.pos[1]))
self.pos[1]-= self.bullet_speed
#定义敌机类
class Enemy:
def __init__(self,x_enemy_speed=0,y_enemy_speed=0):
self.x_enemy_speed = random.randint(0,1)
self.y_enemy_speed =2
self.pos=[randint(0,360),randint(-50,-20)]
def add_enemy(self):
enemy = pygame.image.load('./picture/enemy1_5.png')
screen.blit(enemy,(self.pos[0],self.pos[1]))
self.pos[0] += self.x_enemy_speed
self.pos[1] += self.y_enemy_speed
#定义一个战机类
class Plane():
#定义战机属性
def __init__(self):
self.pos=[155,505]
list1=[]
self.list3=[]
#添加战机
def add_plane(self):
her01=pygame.image.load('./picture/hero1.png')
screen.blit(her01,(self.pos[0],self.pos[1]))
#发射子弹
def shoot(self):
bullet = Bullet()
bullet.pos=[self.pos[0]+46,self.pos[1]-21]
self.list3.append(bullet)
#初始化pygame
pygame.init()
Up = 273
Down = 274
Left = 276
Right = 275
screen=pygame.display.set_mode((400,650))
pygame.display.set_caption('飞机大战')
background=pygame.image.load('./picture/background.png')
#将图片渲染到窗口上
screen.blit(background,(0,0))
def background():
background=pygame.image.load('./picture/background.png')
screen.blit(background, (0,0))
if __name__ == '__main__':
x_speed=0
y_speed=0
#实例化飞机对象
p1=Plane()
#创建一个列表用来存放产生的敌机
list2 = []
#定义一个变量
e_fre = 0
b_fre=0
while True:
b_fre+=1
if b_fre%20==0:
p1.shoot()
if b_fre>100:
b_fre=0
for bullet in p1.list3:
bullet.move()
#每50次,调用一次add_enemy()函数
e_fre +=1
if e_fre %50==0:
e1 = Enemy()
list2.append(e1)
if e_fre>100:
e_fre=0
for e in list2:
e.add_enemy()
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
#判断键盘是否按下
if event.type == pygame.KEYDOWN:
#判断键盘方向
if event.key == Up:
y_speed = -4
x_speed = 0
elif event.key == Down:
y_speed = 4
x_speed = 0
elif event.key == Left:
y_speed = 0
x_speed = -4
elif event.key == Right:
x_speed = 4
y_speed = 0
#判断键盘按键
if event.type==pygame.KEYUP:
y_speed=0
x_speed=0
#判断飞机是否飞出界面
p1.pos[0] += x_speed
p1.pos[1] += y_speed
#判断飞机是否飞出边界
if p1.pos[0] + 100 >= 400:
p1.pos[0] -= 4
if p1.pos[1] + 124 >= 650:
p1.pos[1] -= 4
if p1.pos[0]<=0:
p1.pos[0]+=4
if p1.pos[1]<=0:
p1.pos[1]+=4
#调用add_plane函数产生战机
p1.add_plane()
for bullet in p1.list3:
for e1 in list2:
w=-9<=(bullet.pos[0]-e1.pos[0])<=91
h=-21<=(bullet.pos[1]-e1.pos[1])<=91
if w and h:
list2.remove(e1)
for e1 in list2:
w1 = -51<=p1.pos[0]-e1.pos[0]<=49
h1= -39<=p1.pos[1]-e1.pos[1]<=85
if w1 and h1:
exit()
#检测子弹是否飞出边界,如果非
for bullet in p1.list3:
print(p1.list3)
if bullet.pos[1]<=-22:
p1.list3.remove(bullet)
pygame.display.update()
background()
飞机大战
?著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上一篇文章为:→3.9.5面试题2 打飞机代码:搭建界面 下一篇文章为:→3.10.2打飞机代码:检测键盘
- 3、Python基础3.1认识python和基础知识(day03)3.1.1认识python(了解)3.1.2编写...