import pygame
from pygame.locals import *
from sys import exit
import random
import time
image_path = "level3 resource/resources/images/"
sound_path = "level3 resource/resources/sounds/"
data_path = "level3 resource/resources/data/"
RUN = 1
PAUSE = 2
FALURE = 3
ENEMY=USEREVENT
class Game:
def __init__(self):
pygame.init()
pygame.display.set_caption("飞机大战")
self.screen = pygame.display.set_mode((480, 640))
self.background = pygame.image.load(image_path + "background2.png")
self.plane = MyPlane(3)
self.enemys=[]
self.state = RUN
def listen(self):
for event in pygame.event.get():
if event.type == QUIT:
exit()
elif event.type==ENEMY:
self.enemys.append(Enemy(3))
def control(self):
if self.state == RUN:
self.screen.blit(self.background, (0, 0))
self.screen.blit(self.plane.image, self.plane.rect)
self.plane.move()
self.enemys.append(Enemy(3))
for enemy in self.enemys:
self.screen.blit(enemy.image,enemy.rect)
enemy.move()
pygame.display.update()
elif self.state == PAUSE:
pass
def run(self):
pygame.time.set_timer(ENEMY,1000)
while True:
self.listen()
self.control()
class MyPlane:
def __init__(self, speed):
self.image = pygame.image.load(image_path + "myplane1.png")
self.rect = self.image.get_rect()
self.rect.midbottom = (240, 640)
self.speed = speed
def move(self):
keys = pygame.key.get_pressed()
if keys[K_UP]:
if self.rect.top > 0:
self.rect.top = self.rect.top - self.speed
elif keys[K_DOWN]:
if self.rect.bottom < 640:
self.rect.bottom = self.rect.bottom + self.speed
elif keys[K_LEFT]:
if self.rect.left > 0:
self.rect.left = self.rect.left - self.speed
elif keys[K_RIGHT]:
if self.rect.right < 480:
self.rect.right = self.rect.right + self.speed
class Enemy:
def __init__(self,speed):
self.image=pygame.image.load(image_path+"small_enemy.png")
self.rect=self.image.get_rect()
self.rect.left=random.randint(0,480-self.image.get_width())
self.speed=speed
def move(self):
self.rect.top=self.rect.top+self.speed
game = Game()
game.run()
敌方飞机一直持续出现,为啥加上等待的代码也没有用啊