打飞机代码:敌机发射子弹



import time
import random
import pygame
from pygame.locals import *
class HeroPlane(object):
    def __init__(self,screen):
        
        self.x = 230
        self.y = 600
        
        self.screen = screen
        self.imageName = "./feiji/hero.gif"
        self.image = pygame.image.load(self.imageName).convert()
        
        self.bulletList = []
    def display(self):
        
        self.screen.blit(self.image,(self.x,self.y))
        
        
        
        
        
        
        
        needDelItemList = []
        for i in self.bulletList:
            if i.judge():
                needDelItemList.append(i)
        for i in needDelItemList:
            self.bulletList.remove(i)
        
        
        for bullet in self.bulletList:
            bullet.display()
            bullet.move()
        
        
        
    def moveLeft(self):
        self.x -= 10
    def moveRight(self):
        self.x += 10
    def sheBullet(self):
        newBullet = Bullet(self.x,self.y,self.screen)
        self.bulletList.append(newBullet)
class Bullet(object):
    def __init__(self,x,y,screen):
        self.x = x+40
        self.y = y-20
        self.screen = screen
        self.image = pygame.image.load("./feiji/bullet-3.gif").convert()
    def move(self):
        self.y -= 2
    def display(self):
        self.screen.blit(self.image,(self.x,self.y))
    def judge(self):
        if self.y<0:
            return True
        else:
            return False
class EnemyPlane(object):
    def __init__(self,screen):
        
        self.x = 0
        self.y = 0
        
        self.screen = screen
        self.imageName = "./feiji/enemy-1.gif"
        self.image = pygame.image.load(self.imageName).convert()
        
        self.bulletList = []
        self.direction = "right"
    def display(self):
        
        self.screen.blit(self.image,(self.x,self.y))
        
        
        
        
        
        
        
        needDelItemList = []
        for i in self.bulletList:
            if i.judge():
                needDelItemList.append(i)
        for i in needDelItemList:
            self.bulletList.remove(i)
        
        
        for bullet in self.bulletList:
            bullet.display()
            bullet.move()
    def move(self):
        
        if self.direction == "right":
            self.x += 2
        elif self.direction == "left":
            self.x -= 2
        if self.x>480-50:
            self.direction = "left"
        elif self.x<0:
            self.direction = "right"
    def sheBullet(self):
        num = random.randint(1,100)
        if num == 88:
            newBullet = EnemyBullet(self.x,self.y,self.screen)
            self.bulletList.append(newBullet)
class EnemyBullet(object):
    def __init__(self,x,y,screen):
        self.x = x+30
        self.y = y+30
        self.screen = screen
        self.image = pygame.image.load("./feiji/bullet-1.gif").convert()
    def move(self):
        self.y += 2
    def display(self):
        self.screen.blit(self.image,(self.x,self.y))
    def judge(self):
        if self.y>890:
            return True
        else:
            return False
if __name__ == "__main__":
    
    screen = pygame.display.set_mode((480,890),0,32)
    
    background = pygame.image.load("./feiji/background.png").convert()
    
    heroPlane = HeroPlane(screen)
    
    enemyPlane = EnemyPlane(screen)
    
    while True:
        screen.blit(background,(0,0))
        heroPlane.display()
        enemyPlane.move()
        enemyPlane.sheBullet()
        enemyPlane.display()
        
        for event in pygame.event.get():
            
            if event.type == QUIT:
                print("exit")
                exit()
            elif event.type == KEYDOWN:
                if event.key == K_a or event.key == K_LEFT:
                    print('left')
                    heroPlane.moveLeft()
                    
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')
                    heroPlane.moveRight()
                elif event.key == K_SPACE:
                    print("space")
                    heroPlane.sheBullet()
        
        time.sleep(0.01)
        pygame.display.update()