外星人入侵全代码版(二)
游戏介绍
在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家 可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出 现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星 人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了 玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。
外星人的类
文件名:alien.py
import pygame as ga
from pygame.sprite import Sprite
class Alien(Sprite):
'''表示单个外星人的类'''
def __init__(self,ai_settings,screen):
'''初始化外星人并设置初始位置'''
super(Alien,self).__init__()
self.screen = screen
self.ai_settings = ai_settings
#加载外星人图像,并设置其rect属性
self.image = ga.image.load('images/alien.bmp')
self.rect = self.image.get_rect()
#每个外星人最初都在屏幕左上角附近
self.rect.x = self.rect.width
self.rect.y = self.rect.height
#存储外星人的准确位置
self.x = float(self.rect.x)
def blitme(self):
'''在指定位置绘制外星人'''
self.screen.blit(self.image, self.rect)
def check_edges(self):
'''如果外星人位于屏幕边缘,就返回True'''
screen_rect = self.screen.get_rect()
if self.rect.right >= screen_rect.right:
return True
elif self.rect.left <= 0 :
return True
def update(self):
'''向右或向左移动外星人'''
self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
self.rect.x = self.x
子弹设置
文件名:bullet.py
#子弹设置
import pygame as ga
from pygame.sprite import Sprite
class Bullet(Sprite):
'''一个对飞船发射子弹进行管理的类'''
def __init__(self,ai_settings,screen,ship):
'''在飞船所处的位置创建一个子弹对象'''
super(Bullet, self).__init__()
self.screen = screen
#在(0,0)处创建一个表示子弹的矩形,再设置正确的位置
self.rect = ga.Rect(0,0,ai_settings.bullet_width,
ai_settings.bullet_height)
self.rect.centerx = ship.rect.centerx
self.rect.top = ship.rect