飞机大战

import pygame
from pygame.locals import *
import random,time
class enemy_Biu():
def init(self,x,y,wind):
self.x=x
self.y=y
self.wind=wind
self.pic=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\bullet1.png")
def draw(self):
self.wind.blit(self.pic,(self.x,self.y))
self.move()
def move(self):
self.y+=5
class Biu():
def init(self,x,y,wind):
self.x=x
self.y=y
self.wind=wind
self.pic=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\bullet.png")
def draw(self):
self.wind.blit(self.pic,(self.x,self.y))
self.move()
def move(self):
self.y-=5
wind=pygame.display.set_mode((480,500),0,32) #创建游戏窗口
background=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\background.png") # 加载
icon=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\icon72x72.png")
heroIndex=0
heroPlane1=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero1.png")
heroPlane2=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero2.png")
enemyPlane=pygame.image.load(r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\enemy1.png")
heroBombImageList=[r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero_blowup_n1.png",
r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero_blowup_n1.png",
r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero_blowup_n1.png",
r"C:\Users\Administrator\Desktop\IT研究院-Python\New_Stydy\img\hero_blowup_n1.png"]
heroBombImageIndex=0
heroPlaneIsBom=False
pygame.display.set_caption(“飞机大战”) # 修改游戏名字
pygame.display.set_icon(icon) # # 设置区
pygame.key.set_repeat(30,30) # 第一次参数是按下键盘30毫秒后开始反应,第二个参数是键盘按下未抬起,触发一个新的按键,如果每隔30毫秒不按就自己再按键
hero_x=(480-100)//2
hero_y=500-124
enemy_x=(480-69)//2
direct=“右”
heroBiulist = []
enemyBiulist = []
while True:
wind.blit(background,(0,0)) # 贴上图片
if heroPlaneIsBomFalse:
if heroIndex
0:
wind.blit(heroPlane1,(hero_x,hero_y))
heroIndex=1
else:
wind.blit(heroPlane2, (hero_x, hero_y))
heroIndex = 0
else:
if heroBombImageIndexlen(heroBombImageList):
time.sleep(0.7)
exit(0)
pic=pygame.image.load(heroBombImageList[heroBombImageIndex])
wind.blit(pic, (hero_x, hero_y))
heroBombImageIndex+=1
time.sleep(0.5)
wind.blit(heroPlane1,(hero_x,hero_y))
wind.blit(enemyPlane,(enemy_x,0))
enemy_Rect=Rect(enemy_x,0,69,89)
hero_Rect=Rect(hero_x,hero_y,100,124)
for zd in heroBiulist:
zd.draw()
zdRect=Rect(zd.x,zd.y,22,22)
if enemy_Rect.colliderect(zdRect):
print(“爆炸”)
heroBiulist.remove(zd)
else:
heroBiulist.remove(zd) if zd.y<0 else “”
for djzd in enemyBiulist:
djzd.draw()
djzdRect=Rect(djzd.x,djzd.y,9,21)
if hero_Rect.colliderect(djzdRect):
print(“我方被击中”)
heroPlaneIsBom=True
enemyBiulist.remove(djzd)
else:
enemyBiulist.remove(djzd) if djzd.y > 500 else “”
for event in pygame.event.get(): # 循环获取事件(尤其是鼠标,键盘事件)
if event.type == QUIT: # 如果事件的类型是退出(点击退出按钮触发)
print(“退出”)
exit(0)
elif event.type
KEYDOWN: # 键盘按下事件
if event.keyK_LEFT:
hero_x = hero_x - 5 if hero_x >5 else 0
elif event.key == K_RIGHT:
hero_x = hero_x + 5 if hero_x <480-100-5 else 480-100
elif event.key == K_SPACE:
zd= Biu(hero_x+100//2-22//2,hero_y-22,wind)
heroBiulist.append(zd)
if direct
"左":
enemy_x = enemy_x - 3
if enemy_x<=0:
direct=“右”
else:
enemy_x = enemy_x + 3
if enemy_x >= 480-69:
direct = “左”
h=random.randint(0,100) # 敌机发射子弹
if h3 or h67:
djzd = enemy_Biu(enemy_x + 69 // 2 - 9 // 2, 89, wind)
enemyBiulist.append(djzd)
pygame.display.update() # 更新一下
pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值