Beispiel #1
0
# Constants
FPS = 50
SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600
LASER_SPEED = -5
MAX_SPEED = 20 #in x and y directions separatly, not normalized
num_enemies = 5
gameover = False

# Set the display's dimensions
screenDimensions = (SCREEN_WIDTH, SCREEN_HEIGHT)
window = pygame.display.set_mode(screenDimensions)
pygame.display.set_caption('Battle for Ram Aras') # Set the window bar title
screen = pygame.display.get_surface() # This is where images are displayed

my_cruiser = Battlecruiser(screen, SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
my_cruiser.draw()
font = pygame.font.Font(None, 28)
score = 0
COUNTER_LOCATION = (10, 10)

def input(events):
    ''' Function to handle events, particularly quitting the program '''
    for event in events:
        if event.type == QUIT:
            quit()
        elif event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                quit()
            if event.key == K_SPACE:
                my_cruiser.create_laser()
Beispiel #2
0
						enemy.hit()
						laser.hit()
						score += 100
				
			# Redraw the background
			screen.fill(BACKGROUND_COLOR)

			# Draw scrolling background
			bg.update()
			bg.draw()

			# Show score
			screen.blit(text, SCORE_LOCATION)

			# Update & draw battle cruiser
			cruiser.update(events)
			cruiser.draw()
		
			# Update and redraw all sprites
			for laser in lasers:
				laser.update()
				laser.draw()

			for enemy in enemies:
				enemy.update()
				enemy.draw()
			
			# Draw sprites
			pygame.display.flip()
		
Beispiel #3
0
def main():
    # Check if sound and font are supported
    if not pygame.font:
        print "Warning, fonts disabled"
    if not pygame.mixer:
        print "Warning, sound disabled"

        # Constants
    FPS = 50
    SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600
    BACKGROUND_COLOR = (0, 0, 0)
    LASER_SPEED = 300
    SHIP_SPEED = 300
    SCROLL_SPEED = 50
    SCORE_POS = (20, 20)
    ENEMY_RELEASE_DELAY = 750
    MIN_SPEED = 100
    MAX_SPEED = 350

    # Initialize Pygame, the clock, a font, and a screen
    pygame.init()
    pygame.display.set_caption("Game.py")
    screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT), 0, 32)
    clock = pygame.time.Clock()
    font = pygame.font.Font(None, 36)
    endfont = pygame.font.Font(None, 60)

    # Create the sprite group
    lasers = pygame.sprite.Group()
    enemies = pygame.sprite.Group()
    player = Battlecruiser(screen, (SCREEN_WIDTH / 2), -1, SHIP_SPEED)
    background = ScrollingBackground(screen, SCROLL_SPEED)

    # Initialize variables
    score = 0
    delay_counter = 0

    # Game loop
    while True:
        time_passed = clock.tick(FPS)

        # Event handling here (to quit)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == K_SPACE and player.get_state() == "Flying":
                    lasers.add(player.shoot())
                if event.key == K_UP:
                    player.up()
                if event.key == K_DOWN:
                    player.down()
                if event.key == K_LEFT:
                    player.left()
                if event.key == K_RIGHT:
                    player.right()
                if event.key == K_r and player.get_state() == "Dead":
                    enemies.empty()
                    lasers.empty()
                    background.kill()
                    background = ScrollingBackground(screen, SCROLL_SPEED)
                    player.kill()
                    player = Battlecruiser(screen, (SCREEN_WIDTH / 2), -1, SHIP_SPEED)
            elif event.type == KEYUP:
                if event.key == K_UP:
                    if player.get_direction()[1] < 0:
                        player.zero_vert()
                if event.key == K_DOWN:
                    if player.get_direction()[1] > 0:
                        player.zero_vert()
                if event.key == K_LEFT:
                    if player.get_direction()[0] < 0:
                        player.zero_hort()
                if event.key == K_RIGHT:
                    if player.get_direction()[0] > 0:
                        player.zero_hort()

                        # Update if player still alive
        if player.get_state() == "Flying":

            delay_counter += time_passed
            if delay_counter >= ENEMY_RELEASE_DELAY:
                enemies.add(
                    Enemy(
                        screen,
                        randint(1, SCREEN_WIDTH),
                        0,
                        randint(MIN_SPEED, MAX_SPEED),
                        randint(MAX_SPEED * -1, MAX_SPEED),
                        randint(MIN_SPEED, MAX_SPEED) * -1,
                    )
                )
                delay_counter = 0

                # Redraw the background
            background.update(time_passed)
            background.draw()

            # Draw score
            fontscore = font.render(str(score), 1, (255, 255, 255))
            screen.blit(fontscore, SCORE_POS)

            # Check for collisions
            player_collision = pygame.sprite.spritecollideany(player, enemies)
            if player_collision is not None:
                if player_collision.get_state() is not "Dead":
                    player.explode()

            collided = pygame.sprite.groupcollide(enemies, lasers, False, False)
            for enemy in collided:
                if enemy.get_state() == "Flying":
                    enemy.explode()
                    score += 100

                    # Update and redraw all enemies
            enemies.update(time_passed)
            for enemy in enemies.sprites():
                enemy.draw()

                # Update and redraw all lasers
            lasers.update(time_passed)
            for laser in lasers.sprites():
                laser.draw()

            player.update(time_passed)
            player.draw()

            # Allow death to progress
        else:
            player.update(time_passed)
            player.draw()

            if player.get_active():
                endtext = endfont.render("Final Score: " + str(score), 1, (255, 255, 255))
                screen.blit(endtext, (240, 180))
            else:
                endtext = endfont.render(("'r' to restart."), 1, (255, 255, 255))
                screen.blit(endtext, (240, 250))

                # Draw the sprites
        pygame.display.update()
Beispiel #4
0
         if event.key == K_DOWN:
             ship_events.append(event)
         if event.key == K_LEFT:
             ship_events.append(event)
         if event.key == K_RIGHT:
             ship_events.append(event)
     
      
 screen.fill(BACKGROUND_COLOR)
 ram_aras.update()
 end_aras.update()
 ram_aras.draw()
 
 ship.update(ship_events)
 ship_events = []
 ship.draw()
 
 for zerg in swarm:
     zerg.update()
     zerg.draw()
     if pygame.sprite.collide_rect(ship, zerg) and ship.active == True and zerg.active == True:
         ship.death()
         game_over = True
     
     
     for shot in ship.lasers:
         if pygame.sprite.collide_rect(shot,zerg) and zerg.active == True:
             score+=100
             ship.lasers.remove(shot)
             zerg.death()        
             cur_enemies-=1
Beispiel #5
0
        if (len(enemies) <= 10 and counter % (FPS / ENEMY_GEN) == 0):
            enemies.append(Enemy(screen, ENEMY_IMAGE, EXPLODE_IMAGE, randint(0, SCREEN_WIDTH), 1, randint(-1*ENEMY_MAX_SPEED, ENEMY_MAX_SPEED), ENEMY_MAX_SPEED, ))
        
        #update stuff
        enemy_index = 0
        for enemy in enemies:
            if enemy.active == False:
                enemies.pop(enemy_index)
            else:
                enemy.update(FPS)
                enemy.draw()
            enemy_index += 1
            

        player.update(FPS)
        player.draw()

        counter += 1
        y_pos_on_scroll += 1

        ''' collision detection '''
        for enemy in enemies:
            for laser in player.lasers:
                if (pygame.sprite.collide_rect(laser, enemy) and enemy.exploding == False):
                    score += 100
                    enemy.explode()
                    break
        #check if player lost
        for enemy in enemies:
            if (pygame.sprite.collide_rect(player, enemy) == True):
                game_over = True