Exemplo n.º 1
0
 def __init__(self):
     self.__playing_board = Playing_board(40, 40)
     self.__blocks = {
         Block(8, i)
         for i in list(range(5)) + list(range(35, 40))
     }.union(
         Block(i, 8) for i in list(range(5)) + list(range(35, 40))).union(
             Block(31, i)
             for i in list(range(5)) + list(range(35, 40))).union(
                 Block(i, 31)
                 for i in list(range(5)) + list(range(35, 40))).union(
                     Block(random.randint(10, 30), random.randint(10, 30))
                     for i in range(100)).union(
                         Block(random.randint(5, 35), random.randint(5, 35),
                               True) for i in range(400))
     self.__players = [
         Player(random.randint(0, 4), random.randint(0, 4), 1),
         Player(random.randint(35, 39), random.randint(0, 4), 2),
         Player(random.randint(0, 4), random.randint(35, 39), 3),
         Player(random.randint(35, 39), random.randint(35, 39), 4)
     ]
     self.__bombs = []
Exemplo n.º 2
0
def restart():
    global game_stop, flag_gravity, debug_mode, upgrading_timer, stars, mouse_position, player, timer, boss_mode, intro, bgs, boss_score
    game_stop = 0
    flag_gravity = False
    debug_mode = False
    boss_mode = False
    intro = False
    stars = []
    timer = 0
    upgrading_timer = upgrade_bin
    boss_score = boss_bin
    player = Player('rocket', pos=(WIDTH / 2, HEIGHT / 2))
    play('deepspacetravels', -1)
    bgs = bg_restart()
Exemplo n.º 3
0
def parse(message):
    message = message.split('%')
    type_of_elem = message[0]
    elem = message[1].split(',')
    if type_of_elem == "<class 'game_objects.Player'>":
        return Player(x=int(elem[0][3:]),
                      y=int(elem[1][4:]),
                      id=int(elem[2][5:]))
    elif type_of_elem == "<class 'game_objects.Bomb'>":
        #print(elem)
        return Bomb(x=int(elem[0][3:]),
                    y=int(elem[1][4:]),
                    range=int(elem[2][8:]),
                    timer=float(elem[3][8:]))
Exemplo n.º 4
0
 def initial_game_state(self):
     assets = self.asset_factory
     terrain = [
         Terrain(initial_pos=pygame.Vector2(-200, 800),
                 animations=assets.wall_animation(900, 100)),
         Terrain(initial_pos=pygame.Vector2(-200, 0),
                 animations=assets.wall_animation(20, 800)),
         Terrain(initial_pos=pygame.Vector2(700, 0),
                 animations=assets.wall_animation(50, 900)),
         Terrain(initial_pos=pygame.Vector2(300, 300),
                 animations=assets.wall_animation(50, 50)),
         Terrain(initial_pos=pygame.Vector2(200, 500),
                 animations=assets.platform_animation(300, 8),
                 platform=True),
         Terrain(initial_pos=pygame.Vector2(200, 600),
                 animations=assets.platform_animation(300, 8),
                 platform=True)
     ]
     background_layers = defaultdict(list)
     fence_width = 373
     for bg in [
             Background(assets.background(), pygame.Vector2(0, 0), 0),
             Background(assets.foothills(), pygame.Vector2(-50, 50), 15),
             Background(assets.mountains(), pygame.Vector2(-50, 50), 30),
             Background(assets.chain_fence(), pygame.Vector2(400, 1090), 1),
             Background(assets.chain_fence(),
                        pygame.Vector2(400 + fence_width, 1090), 1)
     ]:
         background_layers[bg.z].append(bg)
     state = GameState(
         player=Player(animations=assets.player_animations(),
                       initial_pos=pygame.Vector2(320, 550)),
         enemies=[
             *[
                 enemy_classes.AssaultSoldier(
                     initial_pos=pygame.Vector2(50 + x, 400),
                     move_speed=random.randint(3, 6),
                     animations=assets.assault_soldier_green())
                 for x in range(50, 600, 25)
             ]
         ],
         terrain=terrain,
         background_layers=background_layers,
         clock=pygame.time.Clock(),
         hud={'font': pygame.font.Font(None, 20)})
     return state
Exemplo n.º 5
0
def player_load():
    exists = False
    common.app_dir = pyglet.resource.get_settings_path(common.app_name)
    common.player_filename = os.path.join(common.app_dir,
                                          common.player_filename)
    if not os.path.exists(common.player_filename):
        print(
            str(common.player_filename) +
            " file not found, creating Anonymous player...")
        common.player = Player("Anonymous", None,
                               [None, None, None, None, None, None])
        with open(common.player_filename, 'wb') as output:
            pickle.dump(common.player, output, pickle.HIGHEST_PROTOCOL)
    else:
        exists = True

    with open(common.player_filename, 'rb') as input_data:
        common.player = pickle.load(input_data)
        for i in range(len(common.scores)):
            common.scores[i] = common.player.scores[i]
        common.player.online = common.ONLINE
    return exists
Exemplo n.º 6
0
    def load_map(self, filename, resources):
        with open(str(filename), 'r') as f:
            tile_map_populated = False
            tiles = []
            rows, cols = 0, 0
            tile_w, tile_h = 64, 64
            this_cols = 0
            y = 0
            collides = True
            layer = 0
            offset_x, offset_y = 0, 0
            tile_repeat = 1
            row_repeat = 1
            background = False
            for line in f.readlines():
                line_strip = line.strip()
                if len(line_strip) == 0:
                    if tile_map_populated:
                        tile_map = TileMap(res=resources,
                                           tile_h=tile_h,
                                           tile_w=tile_w)
                        tile_map.add(tiles)
                        tile_map.rows = rows
                        tile_map.cols = cols
                        tile_map.collides = collides
                        tile_map.background = background
                        self.tilemaps[layer] = tile_map
                        if type(layer) is int:
                            layer += 1
                        else:
                            layer += "1"
                        tile_map_populated = False
                        tiles = []
                        rows, cols = 0, 0
                        tile_w, tile_h = 64, 64
                        offset_x, offset_y = 0, 0
                        collides = True
                        tile_repeat = 1
                        row_repeat = 1
                        background = False
                    else:
                        continue
                elif (line_strip[0] == "/"):
                    continue
                elif line_strip[0] == "@":
                    tokens = line_strip.split()
                    if tokens[0] == "@offset":
                        if len(tokens) >= 3:
                            if tokens[1].isalnum() and tokens[2].isalnum():
                                offset_x, offset_y = int(tokens[1]), int(
                                    tokens[2])
                            y = 0
                    elif tokens[0] == "@pad":
                        if len(tokens) >= 3:
                            if tokens[1].isalnum() and tokens[2].isalnum():
                                offset_x += int(tokens[1])
                                y += int(tokens[2])
                    elif tokens[0] == "@tile_size":
                        if len(tokens) >= 3:
                            tile_w, tile_h = int(tokens[1]), int(tokens[2])
                    elif tokens[0] == "@collide":
                        if len(tokens) >= 2:
                            if tokens[1] == "off":
                                collides = False
                            else:
                                collides = True
                    elif tokens[0] == "@layer":
                        if len(tokens) >= 2:
                            if tokens[1].isalnum():
                                layer = int(tokens[1])
                            else:
                                layer = tokens[1]
                    elif tokens[0] == "@repeat_h":
                        if len(tokens) >= 2:
                            if tokens[1].isalnum():
                                tile_repeat = int(tokens[1])
                    elif tokens[0] == "@repeat_v":
                        if len(tokens) >= 2:
                            if tokens[1].isalnum():
                                row_repeat = int(tokens[1])
                    elif tokens[0] == "@tile_grid":
                        if len(tokens) >= 3:
                            if tokens[1].isalnum() and tokens[2].isalnum():
                                tile_repeat = int(tokens[1])
                                row_repeat = int(tokens[2])
                    elif tokens[0] == "@bg":
                        layer = "bg"
                    continue

                else:

                    tile_ids = [x.strip()
                                for x in line_strip.split(",")] * tile_repeat
                    tile_repeat = 1
                    row_len = len(tile_ids)
                    #print("row ",row_len)
                    tile_ids *= row_repeat
                    row_repeat = 1
                    x = 0
                    this_cols = 0

                    for id in tile_ids:
                        if id.isalnum():
                            tile_res = resources[id]
                            if tile_res.type == "tile":
                                tile = Tile(rect=pygame.Rect(
                                    offset_x + x, offset_y + y,
                                    tile_res.image.get_width(),
                                    tile_res.image.get_height()),
                                            image=resources[id].get_image())
                                tiles.append(tile)
                                tile_map_populated = True
                            elif tile_res.type == "player":
                                rect = pygame.Rect(offset_x + x, offset_y + y,
                                                   tile_res.image.get_width(),
                                                   tile_res.image.get_height())
                                self.player = Player(image=tile_res.image,
                                                     rect=rect)
                            else:
                                self.entities.append(
                                    self.entity_spawn(resource=tile_res,
                                                      x_pos=offset_x + x,
                                                      y_pos=offset_y + y))
                        x += tile_w
                        this_cols += 1
                        if this_cols >= row_len:
                            y += tile_w
                            this_cols = 0
                            rows += 1
                            x = 0
                if this_cols > cols: cols = this_cols
                #y += tile_h
                rows += 1

                if tile_map_populated:
                    tile_map = TileMap(res=resources,
                                       tile_h=tile_h,
                                       tile_w=tile_w)
                    tile_map.add(tiles)
                    tile_map.rows = rows
                    tile_map.cols = cols
                    tile_map.collides = collides
                    self.tilemaps[layer] = tile_map
                    #print(layer)

        self.tilemaps = OrderedDict(
            sorted(self.tilemaps.items(), key=lambda x: x[0], reverse=True))

        return self.player, self.tilemaps, self.entities
Exemplo n.º 7
0
        if if_walk:
            man.actions.walk = True

    elif (keys[K_RIGHT] or keys[K_d]):
        man.s_actions.right = True
        if if_walk:
            man.actions.walk = True


arrow_list = pygame.sprite.Group()
enemy_list = pygame.sprite.Group()
man_list = pygame.sprite.Group()
sprites_list = pygame.sprite.Group()

#mainloop
man = Player(200, GROUND_LEVEL, 64, 64, arrow_list)
sprites_list.add(man)
man_list.add(man)

for _ in range(ENEMY_COUNT):
    __enemy = Enemy(random.randint(40, 660), GROUND_LEVEL, 64, 64, man_list,
                    arrow_list)
    enemy_list.add(__enemy)
    sprites_list.add(__enemy)
run = True
while run:
    clock.tick(FRAMERATE)

    for event in pygame.event.get():
        keys = pygame.key.get_pressed()
        if event.type == pygame.QUIT or keys[pygame.K_ESCAPE]: run = False
Exemplo n.º 8
0
def generate_level(level):
    global loaded_level
    if loaded_level == 'level_dark.txt':
        pygame.mixer.music.load('data/music/dark.mp3')
        pygame.mixer.music.play(-1)
    elif loaded_level == 'level_light.txt':
        pygame.mixer.music.load('data/music/light.mp3')
        pygame.mixer.music.play(-1)
    for y in range(len(level)):
        for x in range(len(level[y])):
            # Base
            if level[y][x] == '@':
                if loaded_level == 'level_light.txt':
                    StaticTile('light_floor', x, y)
                    Player(x, y)
                else:
                    StaticTile('floor', x, y)
                    Player(x, y)

            if level[y][x] == '#':
                SolidTile('wall', x, y)

            if level[y][x] == '.':
                StaticTile('floor', x, y)

            if level[y][x] == 'q':
                StaticTile('floor_black', x, y)

            if level[y][x] == ',':
                StaticTile('light_floor', x, y)

            # Special
            if level[y][x] == 'b':
                StaticTile('floor', x, y)
                Box('box', x, y)

            if level[y][x] == 'l':
                LavaTile('lava0', x, y)

            # Entity
            if level[y][x] == 'z':
                if loaded_level == 'level_light.txt':
                    StaticTile('light_floor', x, y)
                    Entity('diamond', x, y, 'diamond')
                else:
                    StaticTile('floor', x, y)
                    Entity('diamond', x, y, 'diamond')

            if level[y][x] == 'd':
                StaticTile('floor', x, y)
                Entity('closed_door', x, y, 'door')

            if level[y][x] == 'k':
                StaticTile('floor', x, y)
                Entity('key', x, y, 'key')

            # Enemy
            if level[y][x] == 'm':
                StaticTile('floor', x, y)
                Enemy(1, x, y)

            if level[y][x] == 'M':
                StaticTile('floor', x, y)
                Enemy(2, x, y)

            # Wall doors
            if level[y][x] == '5':
                StaticTile('floor', x, y)
                Entity('button', x, y, 'button', key=0)

            if level[y][x] == '6':
                StaticTile('floor', x, y)
                Entity('button', x, y, 'button', key=1)

            if level[y][x] == '7':
                StaticTile('floor', x, y)
                Entity('button', x, y, 'button', key=2)

            if level[y][x] == '8':
                StaticTile('floor', x, y)
                Entity('button', x, y, 'button', key=3)

            if level[y][x] == '9':
                StaticTile('floor', x, y)
                Entity('button', x, y, 'button', key=4)

            if level[y][x] == '0':
                StaticTile('floor', x, y)
                WallDoor(x, y, 0)

            if level[y][x] == '1':
                StaticTile('floor', x, y)
                WallDoor(x, y, 1)

            if level[y][x] == '2':
                StaticTile('floor', x, y)
                WallDoor(x, y, 2)

            if level[y][x] == '3':
                StaticTile('floor', x, y)
                WallDoor(x, y, 3)

            if level[y][x] == '4':
                StaticTile('floor', x, y)
                WallDoor(x, y, 4)

            # End
            if level[y][x] == 'c':
                StaticTile('floor', x, y)
                Entity('strange_circle', x, y, 'strange_circle')

            if level[y][x] == 'C':
                StaticTile('light_floor', x, y)
                Entity('light_circle', x, y, 'light_circle')

            if level[y][x] == 'p':
                StaticTile('light_floor', x, y)
                SolidTile('wall_door_l1', x, y)

            if level[y][x] == 'P':
                StaticTile('light_floor', x, y)
                SolidTile('wall_door_l2', x, y)

            if level[y][x] == 'u':
                StaticTile('light_floor', x, y)
                SolidTile('corner1', x, y)

            if level[y][x] == 'U':
                StaticTile('light_floor', x, y)
                SolidTile('corner2', x, y)

            if level[y][x] == 'I':
                StaticTile('light_floor', x, y)
                SolidTile('corner3', x, y)

            if level[y][x] == 'i':
                StaticTile('light_floor', x, y)
                SolidTile('corner4', x, y)
Exemplo n.º 9
0
import os
import pygame
import random
import time
from settings import SIZE, WHITE, HEIGHT, WIDHT, BGCOLOR
from game_objects import Player, Bullet, EnemyAircraft
from math import pi, cos, sin
os.environ['SDL_VIDEO_CENTERED'] = '1'
pygame.init()
game_over = False
win = pygame.display.set_mode(SIZE)
pygame.display.set_caption("Shooter")

player = Player()

enemies = []
exampleEnemy = EnemyAircraft(2, 270)
enemiesBullets = []
for e in range(3):
    enemies.append(EnemyAircraft(1, 3 * pi / 2, 1))
    enemiesBullets.append([])
enemies[1].vel = 2

[enemies[0].rect.centerx, enemies[0].rect.centery] = [WIDHT // 4, -10]
[enemies[1].rect.centerx, enemies[1].rect.centery] = [WIDHT // 2, -10]
[enemies[2].rect.centerx, enemies[2].rect.centery] = [WIDHT * 3 // 4, -10]

playerBullets = []
numberbgCadr = 0
intervalPlayerSnaryad = 0
intervalEnemySnaryad = 0
Exemplo n.º 10
0
def level11(win, money):
    print(
        "rmervmeivmiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
    )

    # __________________________БЛОК ПЕРЕМЕННЫХ начинается___________________________
    player = Player()
    coins = []
    exampleCoin = Coin(1, 1)
    exampleCoin.image = pygame.transform.scale(exampleCoin.image, (25, 25))
    exampleCoin.rect.center = [20, 20]
    event = 0
    enemies = []
    exampleEnemy = EnemyAircraft(270, 1, 10)
    enemiesBullets = []
    for e in range(3):
        enemies.append(EnemyAircraft(270, 1, 1))
        enemiesBullets.append([])
    enemies[1].vel = 2

    [enemies[0].rect.centerx, enemies[0].rect.centery] = [WIDHT // 4, -10]
    [enemies[1].rect.centerx, enemies[1].rect.centery] = [WIDHT // 2, -10]
    [enemies[2].rect.centerx, enemies[2].rect.centery] = [WIDHT * 3 // 4, -10]

    playerBullets = []
    numberbgCadr = 0
    intervalPlayerSnaryad = 0
    intervalEnemySnaryad = 0
    intervalCoin = 0
    intervalCoin2 = 0
    intervalPause12 = 0
    intervalPause23 = 0
    global numberCoinImg
    numberCoinImg = 1
    global numberCoinImg2
    numberCoinImg2 = 1
    playerTimerSnaryad = True
    enemiesTimerSnaryad = True
    mouseCoords = []
    clock = pygame.time.Clock()
    rightleftGun = 30
    constantShooting = -1
    global player_live
    player_live = 3
    hearts = []
    for staff2 in range(player_live):
        hearts.append(Heart(staff2))
        hearts[staff2].centerx = WIDHT - 25 - staff2 * 35
        hearts[staff2].centery = 25
    pause = False
    restart = False
    allEnemiesZero = False

    font_name = pygame.font.match_font('Comic Sans MS')

    # __________________________БЛОК ПЕРЕМЕННЫХ закончился___________________________

    # __________________________БЛОК ФУНКЦИЙ начинается___________________________

    def draw_text(surf, text, size, x, y):
        font = pygame.font.Font(font_name, size)
        text_surface = font.render(text, True, WHITE)
        text_rect = text_surface.get_rect()
        text_rect.midtop = (x, y)
        surf.blit(text_surface, text_rect)

    def game_over():
        """Функция для вывода надписи Game Over и результатов
        в случае завершения игры и выход из игры"""
        play_surface = pygame.display.set_mode((500, 650))
        bg = pygame.image.load('sprites/gameover_bg.jpg')
        play_surface.blit(bg, (0, 0))
        pygame.display.set_caption('Shooter')
        draw_text(play_surface, str('Game over'), 72, WIDHT // 2,
                  HEIGHT // 2 - 200)
        play_surface.blit(exampleCoin.image, exampleCoin.rect)
        draw_text(play_surface, str(money), 20, 60, 11)
        draw_text(play_surface, str(money), 50, WIDHT // 2, HEIGHT // 2 - 50)
        pygame.display.flip()
        time.sleep(3)
        pygame.quit()
        os.sys.exit()

    # функция получения названия картинки фона по номеру

    def winner():
        play_surface = pygame.display.set_mode((500, 650))
        pygame.display.set_caption('Shooter')
        bg = pygame.image.load('sprites/winner_bg.jpg')
        play_surface.blit(bg, (0, 0))
        draw_text(play_surface, str('You win!'), 72, WIDHT // 2,
                  HEIGHT // 2 - 200)
        play_surface.blit(exampleCoin.image, exampleCoin.rect)
        draw_text(play_surface, str(money), 20, 60, 11)
        draw_text(play_surface, str(money), 50, WIDHT // 2, HEIGHT // 2 - 50)
        draw_text(play_surface, str('press \'Esc\' to exit...'), 10,
                  WIDHT // 2, HEIGHT - 40)
        pygame.display.flip()
        winner = True
        while winner:
            keys = pygame.key.get_pressed()
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    os.sys.exit()
                if keys[pygame.K_ESCAPE]:
                    winner = False
        pygame.quit()
        os.sys.exit()

    def bgCadr(i):
        i = str(i)
        while len(i) < 4:
            i = '0' + i
        return ('bg/Видеофон Звёздное небо ' + i + '.jpg')

    def pausedddd():
        nonlocal pause
        nonlocal restart
        play_surface = pygame.display.set_mode((500, 650))
        pygame.display.set_caption('Shooter')
        bg = pygame.image.load('sprites/pause_bg.jpg')
        play_surface.blit(bg, (0, 0))
        while pause or not restart:
            keys = pygame.key.get_pressed()
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    os.sys.exit()
                if keys[pygame.K_r]:
                    restart = True

                if keys[pygame.K_p]:
                    pause = False
                    break

            draw_text(play_surface, str('Pause...'), 72, WIDHT // 2,
                      HEIGHT // 2 - 200)
            play_surface.blit(exampleCoin.image, exampleCoin.rect)
            draw_text(play_surface, str(money), 20, 60, 11)
            draw_text(play_surface, str(money), 50, WIDHT // 2,
                      HEIGHT // 2 - 50)
            draw_text(play_surface, str('press \'R\' to restart game...'), 10,
                      WIDHT // 2, HEIGHT - 40)
            for staff2 in range(player_live):
                win.blit(hearts[staff2].image, hearts[staff2].rect)
            pygame.display.flip()
            pygame.display.update()

    # функция обновления экрана

    def drawWindow(win):
        bg = pygame.image.load(bgCadr(numberbgCadr))
        win.blit(bg, (0, 0))
        for playerBullet in playerBullets:
            win.blit(playerBullet.image, playerBullet.rect)
        for coin in coins:
            if coin.imageInd == 1:
                coin.image = pygame.image.load('sprites/coin' +
                                               str(coin.imageInd) + '/coin' +
                                               str(numberCoinImg) + '.png')
            elif coin.imageInd == 2:
                coin.image = pygame.image.load('sprites/coin' +
                                               str(coin.imageInd) + '/coin' +
                                               str(numberCoinImg2) + '.png')
            win.blit(coin.image, coin.rect)
        for enemy in enemies:
            enemyBullets = enemiesBullets[enemies.index(enemy)]
            for enemyBullet in enemyBullets:
                win.blit(enemyBullet.image, enemyBullet.rect)
            if type(enemy) == type(exampleEnemy):
                win.blit(enemy.image, enemy.rect)
        win.blit(player.image, player.rect)
        for staff2 in range(player_live):
            win.blit(hearts[staff2].image, hearts[staff2].rect)

        draw_text(win, str(money), 20, 60, 11)
        win.blit(exampleCoin.image, exampleCoin.rect)
        pygame.display.update()

    # двигаю снаряды врагов и удаляю улетевшие
    def movingEnemiesBullets():
        for enemy in enemies:
            enemyBullets = enemiesBullets[enemies.index(enemy)]
            for enemyBullet in enemyBullets:
                if inWindow(enemyBullet) == 1:
                    enemyBullet.rect.centery += enemyBullet.vel * \
                        (-round(sin(enemyBullet.angle*pi/180), 3))
                    enemyBullet.rect.centerx += enemyBullet.vel * \
                        (round(cos(enemyBullet.angle*pi/180), 3))
                else:
                    enemyBullets.pop(enemyBullets.index(enemyBullet))

    # двигаю снаряды игрока и удаляю улетевшие
    def movingPlayerBullets():
        for playerBullet in playerBullets:
            if inWindow(playerBullet) == 1:
                delta = round(random.random())
                playerBullet.rect.centery -= playerBullet.vel + delta * 3
                playerBullet.rect.bottom -= playerBullet.vel + delta * 3
            else:
                playerBullets.pop(playerBullets.index(playerBullet))

    # обработка поражения врагов пулями
    def defeatOfEnemies():
        realEnemies = []
        for enemy in enemies:
            if type(enemy) == type(exampleEnemy):
                realEnemies.append(enemy)
        enemiesGroup = pygame.sprite.Group(realEnemies)
        playerBulletsGroup = pygame.sprite.Group(playerBullets)
        hits = pygame.sprite.groupcollide(enemiesGroup, playerBulletsGroup,
                                          True, True)
        for hit in hits:
            if hit:
                if allEnemiesZero == False:
                    imageInd = 1
                    coins.append(Coin(numberCoinImg, imageInd))
                    coins[len(coins) - 1].rect.center = enemies[enemies.index(
                        hit)].rect.center
                    coins[len(coins) -
                          1].image = pygame.image.load('sprites/coin' +
                                                       str(imageInd) +
                                                       '/coin' +
                                                       str(numberCoinImg) +
                                                       '.png')
                elif allEnemiesZero == True and iteration3 == False:
                    imageInd = 2
                    coins.append(Coin(numberCoinImg, imageInd))
                    coins[len(coins) - 1].rect.center = enemies[enemies.index(
                        hit)].rect.center
                    coins[len(coins) -
                          1].image = pygame.image.load('sprites/coin' +
                                                       str(imageInd) +
                                                       '/coin' +
                                                       str(numberCoinImg) +
                                                       '.png')

                enemies[enemies.index(hit)] = 0

    def takeCoins():
        nonlocal money
        for coin in coins:
            distance = (coin.rect.centerx - player.rect.centerx)**2 + \
                (coin.rect.centery - player.rect.centery)**2
            if distance <= 25**2:
                if coin.imageInd == 1:
                    coins.pop(coins.index(coin))
                    money += 1
                elif coin.imageInd == 2:
                    coins.pop(coins.index(coin))
                    money += 2

            # обработка поражения игрока пулями

    def defeatOfPlayer():
        global player_live
        for enemy in enemies:
            enemyBullets = enemiesBullets[enemies.index(enemy)]
            for enemyBullet in enemyBullets:
                # обработка столкновения врагов с игроком
                distance = (enemyBullet.rect.centerx - player.rect.centerx)**2 + \
                    (enemyBullet.rect.centery - player.rect.centery)**2
                if distance <= 25**2:
                    enemyBullets.pop(enemyBullets.index(enemyBullet))
                    # уничтожение пули
                    player_live -= 1
                    if player_live <= 0:
                        time.sleep(0)
                        print('Game over')
                        print(player_live)
                        game_over()

    def inWindow(sprite):
        if sprite.rect.left > WIDHT or sprite.rect.right < 0 or sprite.rect.top > HEIGHT or sprite.rect.bottom < 0:
            return (0)
        else:
            return (1)

        # __________________________БЛОК ФУНКЦИЙ закончился________________________

        # __________________________ОСНОВНОЙ БЛОК начинается___________________________

        # __________________________итерация 1_________________________________

    i = 1
    while not allEnemiesZero:
        clock.tick(45)
        intervalPlayerSnaryad += 1
        intervalEnemySnaryad += 1
        intervalCoin += 1

        # счетчик для анимированного фона
        if numberbgCadr < 7325:
            numberbgCadr += 1
        else:
            numberbgCadr = 0

        movingEnemiesBullets()

        movingPlayerBullets()

        takeCoins()

        defeatOfEnemies()

        defeatOfPlayer()

        # обработка некоторых клавиш (выхода и постоянной стрельбы)
        events = pygame.event.get()
        keys = pygame.key.get_pressed()
        for event in events:
            if event.type == pygame.QUIT:
                os.sys.exit()
            if keys[pygame.K_e]:
                os.sys.exit(0)
            if keys[pygame.K_c]:
                constantShooting *= -1
            if keys[pygame.K_p]:
                pause = True
                pausedddd()

        # движение игрока за стрелкой
        if event.type == pygame.MOUSEMOTION:
            [player.rect.centerx, player.rect.centery] = event.pos
            mouseCoords = event.pos

        # движение врагов
        staff1 = 0
        for enemy in enemies:
            if type(enemy) == type(exampleEnemy):
                if inWindow(enemy) == 1:
                    enemy.rect.centery += enemy.vel * \
                        (-sin(enemy.angle*pi/180))
                    enemy.rect.centerx += enemy.vel * \
                        cos(enemy.angle*pi/180)
                    # обработка столкновения врагов с игроком
                    distance = (enemy.rect.centerx - player.rect.centerx)**2 + \
                        (enemy.rect.centery - player.rect.centery)**2
                    if distance <= 30**2:
                        time.sleep(0)
                        print('Game over')
                        print(player_live)
                        game_over()
                else:
                    enemy = 0
                    staff1 += 1
            else:
                staff1 += 1
        if staff1 == 3:
            allEnemiesZero = True

        # UPDATE - СОЗДАНИЕ ПУЛЬ  стрельба врагов
        if enemiesTimerSnaryad == True:
            for enemy in enemies:
                if type(enemy) == type(exampleEnemy):
                    enemyBullets = enemiesBullets[enemies.index(enemy)]
                    enemyBullets.append(Bullet(enemy.angle, 1, 6))
                    enemyBullets[len(enemyBullets) -
                                 1].rect.centerx = enemy.rect.centerx
                    enemyBullets[len(enemyBullets) -
                                 1].rect.centery = enemy.rect.centery
            enemiesTimerSnaryad = False

        # стрельба игрока
        if keys[pygame.
                K_f] or event.type == pygame.MOUSEBUTTONDOWN or constantShooting > 0:
            if playerTimerSnaryad == True:
                playerBullets.append(Bullet(90, 2, 20))
                playerBullets[len(playerBullets) -
                              1].rect.centerx = mouseCoords[0] - rightleftGun
                playerBullets[len(playerBullets) -
                              1].rect.centery = mouseCoords[1]
                rightleftGun *= -1
                playerTimerSnaryad = False

        drawWindow(win)
        # проверка счетчика интервала между пулями
        if intervalPlayerSnaryad >= 5:
            playerTimerSnaryad = True
            intervalPlayerSnaryad = 0
        if intervalEnemySnaryad >= 30:
            enemiesTimerSnaryad = True
            intervalEnemySnaryad = 0
        if intervalCoin >= 5 and numberCoinImg < 6:
            numberCoinImg += 1
            intervalCoin = 0
        elif numberCoinImg >= 6:
            numberCoinImg = 1

        #allEnemiesZero = True

    # __________________итерация 2_________________________________________
    allEnemiesZero = True
    intervalEnemySnaryad = 9
    enemiesTimerSnaryad = True
    iteration3 = False
    enemy1Count = 0
    enemy2Count = 0
    """

    """
    #
    """
    enemies = []
    enemiesBullets = []
    for e in range(3):
        enemies.append(EnemyAircraft(270, 1, 1))
        enemiesBullets.append([])
    enemies[1].vel = 2

    [enemies[0].rect.centerx, enemies[0].rect.centery] = [WIDHT // 4, -10]
    [enemies[1].rect.centerx, enemies[1].rect.centery] = [WIDHT // 2, -10]
    [enemies[2].rect.centerx, enemies[2].rect.centery] = [WIDHT*3 // 4, -10]
    enemiesBullets = []
    for e in range(3):
        enemies.append(EnemyAircraft(270, 1, 1))
        enemiesBullets.append([])
    enemies[1].vel = 2

    [enemies[0].rect.centerx, enemies[0].rect.centery] = [WIDHT // 4, -10]
    [enemies[1].rect.centerx, enemies[1].rect.centery] = [WIDHT // 2, -10]
    [enemies[2].rect.centerx, enemies[2].rect.centery] = [WIDHT*3 // 4, -10]
    """
    exampleEnemy = EnemyAircraft(270, 1, 1)
    enemies = []
    enemiesBullets = []

    while intervalPause12 <= 100:
        intervalPause12 += 1
        intervalCoin += 1
        takeCoins()
        # обработка некоторых клавиш (выхода и постоянной стрельбы)
        events = pygame.event.get()
        keys = pygame.key.get_pressed()
        for event in events:
            if event.type == pygame.QUIT:
                os.sys.exit()
            if keys[pygame.K_e]:
                os.sys.exit(0)
            if keys[pygame.K_c]:
                constantShooting *= -1
            if keys[pygame.K_p]:
                pause = True
                pausedddd()

        # движение игрока за стрелкой
        if event.type == pygame.MOUSEMOTION:
            [player.rect.centerx, player.rect.centery] = event.pos
            mouseCoords = event.pos

        movingPlayerBullets()
        if intervalCoin >= 5 and numberCoinImg < 6:
            numberCoinImg += 1
            intervalCoin = 0
        elif numberCoinImg >= 6:
            numberCoinImg = 1
        drawWindow(win)

    enemies.append(EnemyAircraft(0, 2, 10, 2))
    enemiesBullets.append([])
    [enemies[0].rect.centerx, enemies[0].rect.centery] = [0, WIDHT // 2]

    enemies.append(EnemyAircraft(-90, 2, 10, 1.3, 10))
    enemies[len(enemies) - 1].image_copy = enemies[len(enemies) - 1].image
    enemiesBullets.append([])
    [
        enemies[len(enemies) - 1].rect.centerx,
        enemies[len(enemies) - 1].rect.centery
    ] = [WIDHT // 3, 0]
    #
    #
    # здесь должен быть код с созданием врагов второй итерации
    #
    # playerBullets = []
    #
    while not iteration3:
        clock.tick(45)
        intervalPlayerSnaryad += 1
        intervalEnemySnaryad += 1
        intervalCoin2 += 1
        intervalCoin += 1

        # счетчик для анимированного фона
        if numberbgCadr < 7325:
            numberbgCadr += 1
        else:
            numberbgCadr = 0

        movingEnemiesBullets()

        movingPlayerBullets()

        takeCoins()
        defeatOfEnemies()

        defeatOfPlayer()
        """
        staff1 = 0
        for enemy in enemies:
            if type(enemy) == type(exampleEnemy):
                enemy.rect.centery += enemy.vel * \
                    (-sin(enemy.angle*pi/180))
                enemy.rect.centerx += enemy.vel * \
                    cos(enemy.angle*pi/180)
                # обработка столкновения врагов с игроком
                distance = (enemy.rect.centerx - player.rect.centerx)**2 + \
                    (enemy.rect.centery - player.rect.centery)**2
                if distance <= 30**2:
                    time.sleep(0)
                    print('Game over')
                    print(player_live)
                    game_over()
            else:
                staff1 += 1
        if staff1 == 3:
            allEnemiesZero = True
        """
        for enemy in enemies:
            if type(enemy) == type(exampleEnemy):
                if enemies.index(enemy) == 0:
                    enemy.rect.centery += enemy.vel * \
                        (-round(sin(enemy.angle*pi/180), 3))
                    enemy.rect.centerx += enemy.vel * \
                        (round(cos(enemy.angle*pi/180), 3))
                    enemy.rotate()
                    distance = (enemy.rect.centerx - player.rect.centerx)**2 + \
                        (enemy.rect.centery - player.rect.centery)**2
                    if inWindow(enemy) == 0:
                        enemies[0] = EnemyAircraft(0, 2, 10, 2)
                        [enemies[0].rect.centerx,
                         enemies[0].rect.centery] = [0, WIDHT // 2]
                        enemy1Count += 1
                    if enemy1Count == 3:
                        enemies[0] = 0
                elif enemies.index(enemy) == 1:
                    enemy.rect.centery += enemy.vel * \
                        (-round(sin(enemy.angle*pi/180), 3))
                    enemy.rect.centerx += enemy.vel * \
                        (round(cos(enemy.angle*pi/180), 3))
                    enemy.rotate()
                    distance = (enemy.rect.centerx - player.rect.centerx)**2 + \
                        (enemy.rect.centery - player.rect.centery)**2
                    if inWindow(enemy) == 0:
                        enemies[len(enemies) - 1] = EnemyAircraft(
                            -90, 2, 10, 1.3, 10)
                        enemies[len(enemies) -
                                1].image_copy = enemies[len(enemies) - 1].image
                        [
                            enemies[len(enemies) - 1].rect.centerx,
                            enemies[len(enemies) - 1].rect.centery
                        ] = [WIDHT // 4, 0]
                        enemy2Count += 1
                    if enemy2Count == 3:
                        enemies[1] = 0

                if distance <= 30**2:
                    time.sleep(0)
                    print('Game over')
                    print(player_live)
                    game_over()

        #
        #
        #
        #
        #
        #
        # здесь будет функция с движением игроков второй итерации
        #
        #

        # обработка некоторых клавиш (выхода и постоянной стрельбы)
        events = pygame.event.get()
        keys = pygame.key.get_pressed()
        for event in events:
            if event.type == pygame.QUIT:
                os.sys.exit()
            if keys[pygame.K_e]:
                os.sys.exit(0)
            if keys[pygame.K_c]:
                constantShooting *= -1
            if keys[pygame.K_p]:
                pause = True
                pausedddd()

        # движение игрока за стрелкой
        if event.type == pygame.MOUSEMOTION:
            [player.rect.centerx, player.rect.centery] = event.pos
            mouseCoords = event.pos

        # UPDATE - СОЗДАНИЕ ПУЛЬ  стрельба врагов
        if enemiesTimerSnaryad == True:
            for enemy in enemies:
                if type(enemy) == type(exampleEnemy):
                    enemyBullets = enemiesBullets[enemies.index(enemy)]
                    enemyBullets.append(Bullet(enemy.angle, 1, 15))
                    enemyBullets[len(enemyBullets) -
                                 1].rect.centerx = enemy.rect.centerx
                    enemyBullets[len(enemyBullets) -
                                 1].rect.centery = enemy.rect.centery
            enemiesTimerSnaryad = False
        # стрельба игрока
        if keys[pygame.
                K_f] or event.type == pygame.MOUSEBUTTONDOWN or constantShooting > 0:
            if playerTimerSnaryad == True:
                playerBullets.append(Bullet(pi / 2, 2, 20))
                playerBullets[len(playerBullets) -
                              1].rect.centerx = mouseCoords[0] - rightleftGun
                playerBullets[len(playerBullets) -
                              1].rect.centery = mouseCoords[1]
                rightleftGun *= -1
                playerTimerSnaryad = False

        drawWindow(win)
        # проверка счетчика интервала между пулями
        if intervalPlayerSnaryad >= 7:
            playerTimerSnaryad = True
            intervalPlayerSnaryad = 0
        if intervalEnemySnaryad >= 3:
            enemiesTimerSnaryad = True
            intervalEnemySnaryad = 0
        if intervalCoin >= 5 and numberCoinImg < 6:
            numberCoinImg += 1
            intervalCoin = 0
        elif numberCoinImg >= 6:
            numberCoinImg = 1

        if intervalCoin2 >= 20 and numberCoinImg2 < 6:
            numberCoinImg2 += 1
            intervalCoin2 = 0
        elif numberCoinImg2 >= 6:
            numberCoinImg2 = 1

        if (enemy1Count >= 3 or enemies[0] == 0) and (enemy2Count >= 3
                                                      or enemies[1] == 0):
            iteration3 = True

    enemies = []
    enemiesBullets = []
    while intervalPause23 <= 100:
        intervalPause23 += 1
        intervalCoin += 1
        takeCoins()
        # обработка некоторых клавиш (выхода и постоянной стрельбы)
        events = pygame.event.get()
        keys = pygame.key.get_pressed()
        for event in events:
            if event.type == pygame.QUIT:
                os.sys.exit()
            if keys[pygame.K_e]:
                os.sys.exit(0)
            if keys[pygame.K_c]:
                constantShooting *= -1
            if keys[pygame.K_p]:
                pause = True
                pausedddd()

        # движение игрока за стрелкой
        if event.type == pygame.MOUSEMOTION:
            [player.rect.centerx, player.rect.centery] = event.pos
            mouseCoords = event.pos

        movingPlayerBullets()
        if intervalCoin >= 5 and numberCoinImg < 6:
            numberCoinImg += 1
            intervalCoin = 0
        elif numberCoinImg >= 6:
            numberCoinImg = 1
        drawWindow(win)

    winner()
Exemplo n.º 11
0
from game_objects import Player
from game_server import OneNight
from roles import Werewolf, Seer, Villager, Mason, Minion, Robber, Troublemaker, Insomniac

if __name__ == "__main__":
    _roles = [
        Werewolf(),
        Werewolf(),
        Minion(),
        Seer(),
        Robber(),
        Troublemaker(),
        Mason(),
        Mason(),
        Insomniac(),
        Villager(),
        Villager()
    ]
    _players = [Player("Player{}".format(i)) for i in range(len(_roles))]
    game = OneNight(_players, _roles)
    game.run()

# The game end should be somehow dependent upon the current participating roles.
# Input and output should be decoupled from the core BL.
# Async streams should be used as message buses in both communication directions.
Exemplo n.º 12
0
import sys
import pygame

from game_objects import Player, Background
from settings import WIDTH, HEIGHT

pygame.init()
pygame.display.set_caption('My game')

screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()

all_objects = pygame.sprite.Group()
bullets = pygame.sprite.Group()

player = Player(clock, bullets)
background = Background()

all_objects.add(background)
all_objects.add(player)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

    screen.fill((255, 255, 255))

    all_objects.update()
    bullets.update()
    all_objects.draw(screen)
Exemplo n.º 13
0
    [('assets/asteroid_explode{}.png'.format(i + 1), 50) for i in range(4)],
    loop=False)

music = pygame.mixer.Sound('assets/Scene1.ogg')
music.play(-1)

# Groups
all_objects = pygame.sprite.Group()
plasmoids = pygame.sprite.Group()
meteors = pygame.sprite.Group()

explosions = []

# Game objects
background = Background()
player = Player(clock, plasmoids)

all_objects.add(background)
all_objects.add(player)
# plasmoids.add(Plasmoid(player.rect.midtop))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit(0)

    screen.fill(WHITE)

    # background.update()
    Meteorite.process_meteors(clock, meteors)
Exemplo n.º 14
0
def StartGame():
    pygame.init()
    pygame.display.set_caption('TestGame')
    screen = pygame.display.set_mode(SIZE)
    clock = pygame.time.Clock()

    #Group objects
    objects = pygame.sprite.Group()
    bullets = pygame.sprite.Group()
    asteroids = pygame.sprite.Group()

    #Game objects
    player = Player(bullets, clock)
    background = Background()

    objects.add(background)
    objects.add(player)

    active = True

    while active:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                active = False

        #Respoun asteroid
        Asteroid.respoun(asteroids, clock)

        #Change state player
        objects.update()
        bullets.update()
        asteroids.update()

        #Collise
        pygame.sprite.groupcollide(bullets, asteroids, True, True)

        if pygame.sprite.spritecollide(player, asteroids, True):
            badaboom = BadaBoom(player.rect.midtop)
            badaboom.draw(screen)
            pygame.display.flip()
            pygame.time.delay(1000)
            active = False

        #Fill background
        screen.fill(COLOR_BACKGROUND)

        #Draw Background
        background.draw(screen)

        #Draw player
        player.draw(screen)

        #Draw bullet
        bullets.draw(screen)

        #Draw asteroid
        asteroids.draw(screen)

        #Show frame
        pygame.display.flip()

        # Delay game loop -- frame per second
        clock.tick(60)

    pygame.quit()
    sys.exit(0)
Exemplo n.º 15
0
 def load(self) -> LevelObject:
     return LevelObject(Player(self.objects, self.start_x, self.start_y), self.objects, self.drawables)
Exemplo n.º 16
0
import game_fuction as gf
from stats import GameStats
from button import Button

pygame.init()
pygame.display.set_caption('Catch This')
ct_settings = Settings()
screen = pygame.display.set_mode((ct_settings.width, ct_settings.height))
clock = pygame.time.Clock()
stats = GameStats(ct_settings)
sb = Scoreboard(ct_settings, stats, screen)
play_button = Button(screen, 'Play')

#Groups
friends = Group()
enemies = Group()
bonus = Group()

#Game objects
player = Player(ct_settings, screen)
background = Background(ct_settings, screen)

while True:
    gf.check_events(bonus, ct_settings, enemies, friends, play_button, player, sb, stats)
    if stats.game_active:
        player.update()
        gf.update_enemies(bonus, clock, ct_settings, enemies, friends, player, sb, stats)
        gf.update_friends(ct_settings, clock, sb, stats, player, friends)
        gf.update_bonus(bonus, clock, ct_settings, player, sb, stats)
    gf.update_screen(background, bonus, ct_settings, sb, screen, stats, play_button, player, friends, enemies)
    clock.tick(30)
    number_of_players = input('How many players? ')

    valid_number_of_players = validation_helper.is_valid_number_of_players(
        number_of_players)

    if not valid_number_of_players:
        message = validation_helper.number_of_players_validity_message(
            number_of_players)
        print(message + '\n')
        number_of_players = 0
    else:
        number_of_players = int(number_of_players)

for i in range(number_of_players):
    name = input('\nEnter player ' + str(i + 1) + '\'s name.\n')
    new_player = Player(name, (i + 1), 0)
    players.append(new_player)

game_is_active = True
order_index = 0

while game_is_active:
    current_player = players[order_index]
    valid_score = False
    proceed_to_next_player = False

    print(current_player.name + '\'s turn\n')

    while not valid_score:
        score = input('Enter score: ("s" to skip, "e" to end game)\n')
        valid_score = validation_helper.is_number(score)
Exemplo n.º 18
0
import pygame
import sys

from settings import SIZE
from game_objects import Player, Background, Mob


pygame.init()
pygame.display.set_caption("Surprise, mutherfucker!")

screen = pygame.display.set_mode(SIZE)
running = True

#Game objects
player = Player()
background = Background()

#Groups of sprites
all_sprites = pygame.sprite.Group()
bullets = pygame.sprite.Group()
mobs = pygame.sprite.Group()
for i in range(4):
    mob = Mob()
    mobs.add(mob)
    all_sprites.add(mob)


while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
Exemplo n.º 19
0
    'explosion': path('explosion.ogg', 'sound'),
    'sound': path('hot.ogg', 'sound')
}

process.resource = resource

if FS:
    screen = pygame.display.set_mode(SCREEN_SIZE, FULLSCREEN, display.bitsize)
else:
    screen = pygame.display.set_mode((800, 600), 0, display.bitsize)
clock = pygame.time.Clock()
FPS = 60
background = pygame.image.load(resource['bg']).convert()

# Player
player = Player(200, 400, resource['spacecraft'])

# Enemy
for i, inimigos in enumerate(range(10)):
    fn = Enemy(0, 10, resource['enemy00'])

def stereo_pan(x, width):
    rv = float(x)/width
    lv = 1.0 - rv
    return(lv, rv)

last_key = None


while True:
Exemplo n.º 20
0
screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption("PyPong Neural")
clock = pygame.time.Clock()

# Score
score = 0
score_record = 0
score_font = pygame.font.SysFont("Arial", 18)

# Controles
moving_left = False
moving_right = False
move_direction = "standby"

# Objetos Juego
ai_player = Player(150, 20, WINDOW_WIDTH / 2.5,
                   WINDOW_HEIGHT - 20)  # Width, height, x position, y position
my_ball = Ball(350, 0)  # x position, y position

# Preparar neural network
neural_network = NeuralNetwork()
losses_count = 0

while True:
    clock.tick(100)  # 100 FPS

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    # A.I Direcciones
Exemplo n.º 21
0
    'explosion': path('explosion.ogg', 'sound'),
    'sound': path('hot.ogg', 'sound')
}

process.resource = resource

if FS:
    screen = pygame.display.set_mode(SCREEN_SIZE, FULLSCREEN, display.bitsize)
else:
    screen = pygame.display.set_mode((800, 600), 0, display.bitsize)
clock = pygame.time.Clock()
FPS = 60
background = pygame.image.load(resource['bg']).convert()

# Player
player = Player(200, 400, resource['spacecraft'])

# Enemy
for i, inimigos in enumerate(range(10)):
    fn = Enemy(0, 10, resource['enemy00'])


def stereo_pan(x, width):
    rv = float(x) / width
    lv = 1.0 - rv
    return (lv, rv)


last_key = None

while True: