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() # 系统文件的退出
# 判断是否按了键 KEY
elif 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_w:
hero.move_up()
elif shi_jian.key == pygame.K_s:
hero.move_down()
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)
# 设置字体格式
font = pygame.font.Font("ziti.ttf",40)
score = 0
# 5。循环
while True:
# 把背景放上去
chuangkou.blit(bei_jing, (0, 0))
# 把飞机和相关元素放上窗口去
zidan_x, zidan_y = feiji1.show()
print(zidan_x)
print(zidan_y)
b = random.randint(1, 30)
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 feiji1.x <= diji2.x <= feiji1.x + 100 and feiji1.y <= diji2.y <= feiji1.y + 124:
feiji1.zhanji_boom()
# 判断子弹和敌机碰撞
for i in range(len(zidan_x)):
# 如果敌机的x坐标 小于子弹的x坐标 小于敌机x坐标加上敌机宽度
if diji2.x <= zidan_x[i] <= diji2.x + 51 and diji2.y <= zidan_y[i] <= diji2.y + 39:
try:
diji2.diji_boom()
diji_ku.remove(diji2)
score = score + 1
except:
pass
# 控制飞机jj
key_kong(feiji1)
print("---")
# key_kong2(diji1 , 2)
# 4.刷新
wenzi =font.render("分数:%d"%score,True,(0,0,0))
chuangkou.blit(wenzi,(10,10))
pygame.display.update()
# main主要的函数
if __name__ == '__main__':
zhu()
boren - 飞机大战11.0
最新推荐文章于 2020-06-26 20:51:40 发布