python飞机大战游戏.py
import pygame
import random
WINDOW_WIDTH = 600
WINDOW_HEIGHT = 800
BLACK = ( 0 , 0 , 0 )
WHITE = ( 255 , 255 , 255 )
pygame. init( )
window = pygame. display. set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT) )
pygame. display. set_caption( "飞机大战" )
clock = pygame. time. Clock( )
class Plane ( pygame. sprite. Sprite) : def __init__ ( self) : super ( ) . __init__( ) self. image = pygame. Surface( [ 50 , 50 ] ) self. image. fill( WHITE) self. rect = self. image. get_rect( ) self. rect. x = WINDOW_WIDTH // 2 self. rect. y = WINDOW_HEIGHT - 100 self. speed = 5 def update ( self) : keys = pygame. key. get_pressed( ) if keys[ pygame. K_LEFT] : self. rect. x -= self. speedif keys[ pygame. K_RIGHT] : self. rect. x += self. speedif self. rect. x < 0 : self. rect. x = 0 if self. rect. x > WINDOW_WIDTH - 50 : self. rect. x = WINDOW_WIDTH - 50 def shoot ( self) : bullet = Bullet( self. rect. x + 23 , self. rect. y) all_sprites. add( bullet) bullets. add( bullet)
class Bullet ( pygame. sprite. Sprite) : def __init__ ( self, x, y) : super ( ) . __init__( ) self. image = pygame. Surface( [ 5 , 10 ] ) self. image. fill( WHITE) self. rect = self. image. get_rect( ) self. rect. x = xself. rect. y = yself. speed = 10 def update ( self) : self. rect. y -= self. speedif self. rect. y < - 10 : self. kill( )
class Enemy ( pygame. sprite. Sprite) : def __init__ ( self) : super ( ) . __init__( ) self. image = pygame. Surface( [ 30 , 30 ] ) self. image. fill( WHITE) self. rect = self. image. get_rect( ) self. rect. x = random. randint( 0 , WINDOW_WIDTH - 30 ) self. rect. y = 0 self. speed = random. randint( 1 , 5 ) def update ( self) : self. rect. y += self. speedif self. rect. y > WINDOW_HEIGHT: self. rect. x = random. randint( 0 , WINDOW_WIDTH - 30 ) self. rect. y = 0 self. speed = random. randint( 1 , 5 )
all_sprites = pygame. sprite. Group( )
player = Plane( )
all_sprites. add( player)
bullets = pygame. sprite. Group( )
enemies = pygame. sprite. Group( )
for _ in range ( 10 ) : enemy = Enemy( ) all_sprites. add( enemy) enemies. add( enemy)
running = True
while running: for event in pygame. event. get( ) : if event. type == pygame. QUIT: running = False elif event. type == pygame. KEYDOWN: if event. key == pygame. K_SPACE: player. shoot( ) all_sprites. update( ) if pygame. sprite. spritecollide( player, enemies, True ) : running = False for bullet in bullets: pygame. sprite. spritecollide( bullet, enemies, True ) window. fill( BLACK) all_sprites. draw( window) pygame. display. flip( ) clock. tick( 60 )
pygame. quit( )