Beispiel #1
0
def run_game():

    pygame.init()
    ai_settings=Settings()
    screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    play_button=Button(ai_settings,screen,"Play")

    ship=Ship(ai_settings,screen)

    bullets=Group()

    aliens=Group()

    gf.create_fleet(ai_settings,screen,ship,aliens)

    stats=GameStats(ai_settings)

    sb=Scoreboard(ai_settings,screen,stats)

    bg_fill=(230,230,230)
    Gameexit=True

    alient=Alien(ai_settings,screen)

    while Gameexit:

        gf.check_events(ai_settings,screen,ship,bullets,stats,play_button,aliens,sb)

        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings,screen,ship,bullets,aliens,sb,stats)
            gf.update_aliens(ai_settings,stats,screen,aliens,ship,bullets,sb)
        gf.update_screen(ai_settings,screen,ship,aliens,bullets,play_button,stats,sb)
Beispiel #2
0
def create_alien(ai_settings, screen, aliens, alien_number, row_number):
    """Create an alien and place it in the row"""
    alien = Alien.Alien(ai_settings, screen)
    alien_width = alien.rect.width
    alien.x = alien_width + 2 * alien_width * alien_number
    alien.rect.x = alien.x
    alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number
    aliens.add(alien)
Beispiel #3
0
def create_fleet(ai_settings, screen, ship, aliens):
    """Create full fleet of aliens"""
    alien = Alien.Alien(ai_settings, screen)
    number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width)
    number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height)

    # Create the fleet of aliens
    for row_number in range(number_rows):
        for alien_number in range(number_aliens_x):
            create_alien(ai_settings, screen, aliens, alien_number, row_number)
Beispiel #4
0
 def fillWave(self):
     directory = "images\enemys\enemy1"
     for x in range(self.num_cols()):
         for y in range(self.num_rows()):
             if y == 0:
                 directory = "images\enemys\enemy1"
                 directory2 = "images\explosionpurple.png"
             elif y == 1 or y == 2:
                 directory = "images\enemys\enemy2"
                 directory2 = "images\explosionblue.png"
             elif y == 3 or y == 4:
                 directory = "images\enemys\enemy3"
                 directory2 = "images\explosiongreen.png"
             self.set((x,y),Alien(directory,directory2))
Beispiel #5
0
def create_fleet(settings, screen, aliens, reverse=False):
    """创建外星飞船队伍"""
    alien = Alien(screen=screen,
                  settings=settings,
                  image=settings.alien_image_4)
    alien_width = alien.rect.width
    space_x = settings.screenWidth - alien_width
    alien_space = 2 * alien_width
    number_aliens_x = int(space_x / alien_space)
    for alien_number in range(number_aliens_x):
        if reverse:
            alien = Alien(screen=screen,
                          settings=settings,
                          image=settings.alien_image_3)
            alien.x = settings.screenWidth + alien_space * alien_number
            settings.is_forward = False
        else:
            alien = Alien(screen=screen,
                          settings=settings,
                          image=settings.alien_image_4)
            alien.x = -alien_width - alien_space * alien_number
            settings.is_forward = True
        alien.rect.x = alien.x
        aliens.append(alien)
Beispiel #6
0
def reset():
    global score
    global spaceship
    global bullets
    global aliens
    global GameOver
    global leftKeyPressed
    global rightKeyPressed
    global bulletKey

    GameOver = False
    leftKeyPressed = False
    rightKeyPressed = False
    bulletKey = False
    if score:
        score = 0
    bullets = []
    aliens = []

    for n in xrange(10):
        aliens.append(Alien())
Beispiel #7
0
def spawnALiens():
    row = []
    for x in range(0, 5):
        a = Alien(x * 250, 50)
        row.append(a)
    alien_rows.append(row)
Beispiel #8
0
    def spawnAliens(self):
        # Spawns 3x6 aliens

        print("LEVEL: " + str(self.level))
        if self.level % 6 == 0:  #Spawns a boss at every sixth level
            self.boss = Alien('green',
                              model=self.firstGreen.clone(),
                              hp=self.power * 6)
            self.boss.setPosition(0, 0, 1, scale=.0025 * 3)
            self.speed = 1 / (self.power / 2)
            viz.playSound('bossSpawn.wav')
        elif not self.pause:
            x = -.6
            #Spawns a 3x6 wave of aliens, each alien spawn is random
            for i in range(0, 6):
                num = random.randint(0, 3)
                if num == 0:
                    self.aliens[i] = Alien('blue',
                                           model=self.firstBlue.clone(),
                                           hp=3)
                elif num == 1:
                    self.aliens[i] = Alien('red', model=self.firstRed.clone())
                elif num == 2:
                    self.aliens[i] = Alien('purple',
                                           model=self.firstPurple.clone(),
                                           hp=3)
                elif num == 3:
                    self.aliens[i] = Alien('orange',
                                           model=self.firstOrange.clone(),
                                           hp=2)
                self.aliens[i].setPosition(x, 0, 1)
                x += .25

            x = -.6
            for i in range(6, 12):
                num = random.randint(0, 3)
                if num == 0:
                    self.aliens[i] = Alien('blue',
                                           model=self.firstBlue.clone(),
                                           hp=3)
                elif num == 1:
                    self.aliens[i] = Alien('red', model=self.firstRed.clone())
                elif num == 2:
                    self.aliens[i] = Alien('purple',
                                           model=self.firstPurple.clone(),
                                           hp=3)
                elif num == 3:
                    self.aliens[i] = Alien('orange',
                                           model=self.firstOrange.clone(),
                                           hp=2)
                self.aliens[i].setPosition(x, 0, .75)
                x += .25

            x = -.6
            for i in range(12, 18):
                num = random.randint(0, 3)
                if num == 0:
                    self.aliens[i] = Alien('blue',
                                           model=self.firstBlue.clone(),
                                           hp=3)
                elif num == 1:
                    self.aliens[i] = Alien('red', model=self.firstRed.clone())
                elif num == 2:
                    self.aliens[i] = Alien('purple',
                                           model=self.firstPurple.clone(),
                                           hp=3)
                elif num == 3:
                    self.aliens[i] = Alien('orange',
                                           model=self.firstOrange.clone(),
                                           hp=2)
                self.aliens[i].setPosition(x, 0, .5)
                x += .25
            viz.playSound('newWave.wav')
Beispiel #9
0
    def __init__(self):
        # base class constructor
        viz.EventClass.__init__(self)

        self.callback(viz.KEYDOWN_EVENT,
                      self.onKeyDown)  # Callback for key press
        self.callback(viz.TIMER_EVENT, self.onTimer)  # Callback for timers
        self.callback(viz.KEYUP_EVENT, self.onKeyUp)

        #Creates memory for bullets and alien spawns
        self.bulletlist = []
        self.aliens = [None for x in range(0, 18)]
        self.alienbullets = list()
        # Default rotation for camera
        self.theta = 50

        #Booleans for keys pressed
        self.leftUp = True
        self.rightUp = True
        self.Fire = False
        self.start = False
        self.pause = False
        self.start = False  #Checks whether the game has started
        self.gameover = False

        self.title = True
        self.playerSpeed = .05

        #Setup default camera view
        self.view = viz.MainView
        mat = viz.Matrix()
        mat.postAxisAngle(1, 0, 0, self.theta)
        mat.postTrans(0, 0, 0)
        self.view.setMatrix(mat)

        #Spawn the player
        self.playerShip = Player()
        self.playerShip.setPosition(0, 0, -.6)

        self.power = 3
        self.level = 1
        self.speed = 1 / self.power

        # Start timers

        self.starttimer(1, .05, viz.FOREVER)
        self.starttimer(2, .05, viz.FOREVER)
        self.starttimer(3, .001, viz.FOREVER)
        self.starttimer(4, self.speed, viz.FOREVER)
        self.starttimer(5, .5, viz.FOREVER)
        self.starttimer(6, .3, viz.FOREVER)

        #Initialize these models far off screen so they can be copied, thus these models only load once
        self.firstRed = Alien('red', modelLabel='redAlien.dae')
        self.firstRed.setPosition(0, 2000, 0)
        self.firstBlue = Alien('blue', modelLabel='blueAlien.dae')
        self.firstBlue.setPosition(0, 2000, 0)
        self.firstPurple = Alien('purple', modelLabel='tankAlien.dae')
        self.firstPurple.setPosition(0, 2000, 0)
        self.redbullet = Bullet(modelLabel='redBullet.dae')
        self.redbullet.setPosition(0, 2000, 0)
        self.greenbullet = Bullet(modelLabel='greenBullet.dae')
        self.greenbullet.setPosition(0, 2000, 0)
        self.firstOrange = Alien('orange', modelLabel='powerupAlien.dae')
        self.firstOrange.setPosition(0, 2000, 0)
        self.firstGreen = Alien('green', modelLabel='greenAlien.dae')
        self.firstGreen.setPosition(0, 2000, 0)

        #Boss object and where the boss can move
        self.boss = None
        self.bossRight = False
        self.bossLeft = True

        #Initial dynamic text strings
        self.levelText = None
        self.levelMsg = "Level: 1"
        self.hpText = None
        self.hpMsg = "HP: 1"
        self.scoreText = None
        self.scoreMsg = "Score: 0"
        self.score = 0

        #Spawn the title screen
        self.titleScreen()
Beispiel #10
0
displayHeight = 900
speed = 250


UP = 'up'
DOWN = 'down'
RIGHT = 'right'
LEFT = 'left'
LEVEL = 1

missleMap = []
enemyMap = []
tracker = 0
rocket = Rocket.Rocket()
#test Alien
alien = Alien.Alien(250, 30, 0)

def runGame():
    global missleMap
    speedUp = False
    movX, movY = 0, 0
    s = "Score " + str(score)
    while True:
        playSound("Idle.wav") 
        key = pygame.key.get_pressed()
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
                
            elif event.type == KEYDOWN:
Beispiel #11
0
def spawn_aliens():
    for x in range(0, 5):
        aliens.append(Alien(x * 100, 100))
Beispiel #12
0
from star import *
from Boss import *
from Highscore import *
##largestNumber = 0
##file = open('test.txt', 'r')
##
##for line in file:
##    if line > largestNumber:
##        largestNumber = line
#print largestNumber
boss_spawner = 0
pygame.init()
screen = pygame.display.set_mode(
    [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT])
ss = Spaceship()
a = Alien(800, 100)
direction_counter = 50
bullet_counter = 0
bullets = []
aliens = [a]
stars = []
bosses = []
mode = "playing"
lose = pygame.image.load('you-lose-i-win.jpg')
lose = pygame.transform.scale(
    lose, (constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT))
score = 0
score_font = pygame.font.SysFont("Times New Roman", 100)
alien_spawner = 0

Beispiel #13
0
 def spawnAlien(self):
     alien = Alien(self.screen, self, random.randint(10, 480), 0)
     self.aliens.append(alien)
     print("Un alien spawned")
Beispiel #14
0
from Spaceship import *
from Globals import *
from Bullet import *
from Alien import *

pygame.init()

#score = 0

spaceship = Spaceship()
bullets = []
aliens = []
for n in xrange(5):
    aliens.append(Alien())


def reset():
    global score
    global spaceship
    global bullets
    global aliens
    global GameOver
    global leftKeyPressed
    global rightKeyPressed
    global bulletKey

    GameOver = False
    leftKeyPressed = False
    rightKeyPressed = False
    bulletKey = False
    if score:
Beispiel #15
0
food_storage = pygame.sprite.Group()  #holds food sprites
fishies = pygame.sprite.Group()  #holds fish sprites
moneies = pygame.sprite.Group()  #holds money sprites
aliens = pygame.sprite.Group()

#create objects
player = Owner([kfc, pizza, icecream])  #allows user interaction
introText = mpFont.render('''   HANI     ICS3U     P. Cugliari   ''', 1,
                          (0, 0, 0),
                          (255, 255, 255))  #text at bottom of first screen

#variables
ct_speed = 30  #maximum frames per second
'''The entire game is held in a while True loop so that players can play again.'''
while True:
    aliens.add(Alien([alien1, alien2], 400,
                     200))  #creates an alien and adds to container
    fishies.add(Fish([guppy1, guppy2], 200,
                     200))  #creates a fish and adds to container
    '''These bools are used for breaking loops.'''
    alarm_s = True
    warning_s = True
    interval_s = False
    battle_coming = False
    a_w_interval = 0
    shot = False
    time_paused = 0
    clicked0 = False
    win = False
    '''First part - Introscreen '''
    while True:
        for event in pygame.event.get():