Exemple #1
0
def fight_local(screen, side, **kwargs):
    print('local_fight')
    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5
    last_shot = time.clock()

    enemy_unit = units.units_pack[sk]['enemy']["default_unit"]
    enemy_unit.screen = screen
    enemy_unit.x = w // 2 - unit.width // 2
    enemy_unit.y = h // 5

    if side == 'server':
        server = Server()
        server.create_server()
        server.connect()
        sprite_name = 'unit_1.jpg'
        server.send(sprite_name)
        sprite_name = server.get(512)
        enemy_unit.sprite = pygame.image.load('game/units/img/' + sprite_name)
        print('connected')
        while True:
            screen.fill(kw.colors['black'])
            server.send(unit.pack())
            data = server.get(512)
            enemy_unit.unpack(data)

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

            keys = pygame.key.get_pressed()
            if keys[pygame.K_LEFT]:
                unit.move_left()
            if keys[pygame.K_RIGHT]:
                unit.move_right()
            if keys[pygame.K_UP]:
                current_shot = time.clock()
                if current_shot - last_shot >= unit.fire_rate:
                    unit.add_bullet()
                    last_shot = current_shot
            if keys[pygame.K_SPACE] and unit.laser is None:
                unit.create_laser()

            for bullet in unit.bullets:
                bullet.create_bullet()
                bullet.move_up()
                if bullet.y < -1 * 50:
                    unit.bullets.remove(bullet)

            for bullet in enemy_unit.bullets:
                bullet.create_bullet()
                bullet.move_down()
                if bullet.y > h + bullet.height:
                    enemy_unit.bullets.remove(bullet)
                elif collision_rect(unit, bullet):
                    unit.health -= 5
                    enemy_unit.bullets.remove(bullet)

            enemy_unit.create_plane()
            unit.create_plane()
            pygame.display.update()

    elif side == 'client':
        client = Client(ip=kwargs['ip'], port=kwargs['port'])
        client.connect()
        sprite_name = "unit_1.jpg"
        client.send(sprite_name)
        sprite_name = client.get(512)
        enemy_unit.sprite = pygame.image.load('game/units/img/' + sprite_name)
        while True:

            screen.fill(kw.colors['black'])
            client.send(unit.pack())
            data = client.get(512)
            print(data)
            enemy_unit.unpack(data)

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

            keys = pygame.key.get_pressed()

            if keys[pygame.K_LEFT]:
                unit.move_left()
            if keys[pygame.K_RIGHT]:
                unit.move_right()
            if keys[pygame.K_UP]:
                current_shot = time.clock()
                if current_shot - last_shot >= unit.fire_rate:
                    unit.add_bullet()
                    last_shot = current_shot
            if keys[pygame.K_SPACE] and unit.laser is None:
                unit.create_laser()

            for bullet in unit.bullets:
                bullet.create_bullet()
                bullet.move_up()
                if bullet.y < -1 * 50:
                    unit.bullets.remove(bullet)

            for bullet in enemy_unit.bullets:
                bullet.create_bullet()
                bullet.move_down()
                if bullet.y > h + bullet.height:
                    enemy_unit.bullets.remove(bullet)
                elif collision_rect(unit, bullet):
                    unit.health -= 5
                    enemy_unit.bullets.remove(bullet)

            enemy_unit.create_plane()
            unit.create_plane()
            pygame.display.update()
Exemple #2
0
def fight_with_ai(screen):
    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5

    enemy_unit = units.units_pack[sk]['enemy']["default_unit"]
    enemy_unit.screen = screen
    enemy_unit.x = w // 2 - unit.width // 2
    enemy_unit.y = h // 5

    while 1:
        screen.fill(kw.colors["black"])
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    kw.pause = not kw.pause
        keys = pygame.key.get_pressed()

        if not kw.pause:
            if keys[pygame.K_LEFT]:
                unit.move_left()
            if keys[pygame.K_RIGHT]:
                unit.move_right()
            if keys[pygame.K_UP]:
                unit.add_bullet()
            if keys[pygame.K_SPACE] and unit.laser is None:
                unit.create_laser()

            for bullet in unit.bullets:
                bullet.create_bullet()
                bullet.move_up()
                if bullet.y < -1 * 50:
                    unit.bullets.remove(bullet)
                elif collision_rect(enemy_unit, bullet):
                    enemy_unit.health -= 5
                    unit.bullets.remove(bullet)

            for bullet in enemy_unit.bullets:
                bullet.create_bullet()
                bullet.move_down()
                if bullet.y > h + bullet.height:
                    enemy_unit.bullets.remove(bullet)
                elif collision_rect(unit, bullet):
                    unit.health -= 5
                    enemy_unit.bullets.remove(bullet)

            if unit.laser is not None:
                unit.laser.shot()
                if unit.laser.width <= 0:
                    unit.laser = None
            ai.low_skill(enemy_unit, unit)

        enemy_unit.health_bar()
        unit.health_bar()
        unit.check_border()
        unit.create_plane()
        enemy_unit.create_plane()
        enemy_unit.check_border()
        pygame.display.update()
Exemple #3
0
def start_with_ai(screen):
    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5
    bw = kw.settins_pack[sk]['button']['width']
    bh = kw.settins_pack[sk]['button']['height']

    low_skill = Button(screen,
                       width=bw,
                       height=bh,
                       text="LOW",
                       coordinates=(w // 4 - bw - ((w // 4 - bw) // 2),
                                    h // 2 - 35),
                       font_size=kw.settins_pack[sk]['button']['font_size'],
                       text_color=kw.colors["green"],
                       background_color=kw.colors["white"],
                       sprite=kw.LOW_AI)

    medium_skill = Button(screen,
                          width=bw,
                          height=bh,
                          text="MEDIUM",
                          coordinates=(w // 2 - bw - ((w // 4 - bw) // 2),
                                       h // 2 - 35),
                          font_size=kw.settins_pack[sk]['button']['font_size'],
                          text_color=kw.colors["green"],
                          background_color=kw.colors["white"],
                          sprite=kw.MEDIUM_AI)

    back = Button(screen,
                  width=bw,
                  height=bh,
                  text="BACK",
                  coordinates=(w - bw - ((w // 4 - bw) // 2), h // 2 - 35),
                  font_size=kw.settins_pack[sk]['button']['font_size'],
                  text_color=kw.colors["green"],
                  background_color=kw.colors["white"],
                  sprite=kw.BACK)

    hard_skill = Button(screen,
                        width=bw,
                        height=bh,
                        text="HARD",
                        coordinates=(w // 4 * 3 - bw - ((w // 4 - bw) // 2),
                                     h // 2 - 35),
                        font_size=kw.settins_pack[sk]['button']['font_size'],
                        text_color=kw.colors["green"],
                        background_color=kw.colors["white"],
                        sprite=kw.HARD_AI)

    while 1:
        screen.fill(kw.colors["black"])
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            unit.move_left()
        if keys[pygame.K_RIGHT]:
            unit.move_right()
        if keys[pygame.K_UP]:
            unit.add_bullet()
        if keys[pygame.K_SPACE] and unit.laser is None:
            unit.create_laser()

        for bullet in unit.bullets:
            bullet.create_bullet()
            bullet.move_up()
            if bullet.y < -1 * 50:
                unit.bullets.remove(bullet)
            if collision_rect(bullet, back):
                unit.bullets.clear()
                kw.run = "main"
                return
            if collision_rect(bullet, medium_skill):
                unit.bullets.clear()
                return
            if collision_rect(bullet, hard_skill):
                unit.bullets.clear()
                return
            if collision_rect(bullet, low_skill):
                kw.run = 'fight'
                kw.difficult = 'low'
                unit.bullets.clear()
                return

        if unit.laser is not None:
            unit.laser.shot()
            if unit.laser.width <= 0:
                unit.laser = None

        hard_skill.create_button()
        back.create_button()
        low_skill.create_button()
        medium_skill.create_button()

        unit.check_border()
        unit.create_plane()
        pygame.display.update()
Exemple #4
0
def display(screen):
    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5
    bw = kw.settins_pack[sk]['button']['width']
    bh = kw.settins_pack[sk]['button']['height']

    full_hd = Button(screen,
                     width=bw,
                     height=bh,
                     text="1920x1080",
                     coordinates=(w // 4 - bw - ((w // 4 - bw) // 2),
                                  h // 2 - 35),
                     font_size=kw.settins_pack[sk]['button']['font_size'],
                     text_color=kw.colors["green"],
                     background_color=kw.colors["white"],
                     sprite=None)

    WXGA = Button(screen,
                  width=bw,
                  height=bh,
                  text="1366x768",
                  coordinates=(w // 2 - bw - ((w // 4 - bw) // 2),
                               h // 2 - 35),
                  font_size=kw.settins_pack[sk]['button']['font_size'],
                  text_color=kw.colors["green"],
                  background_color=kw.colors["white"],
                  sprite=None)

    back = Button(screen,
                  width=bw,
                  height=bh,
                  text="BACK",
                  coordinates=(w - bw - ((w // 4 - bw) // 2), h // 2 - 35),
                  font_size=kw.settins_pack[sk]['button']['font_size'],
                  text_color=kw.colors["green"],
                  background_color=kw.colors["white"],
                  sprite=kw.BACK)

    fullscreen = Button(screen,
                        width=bw,
                        height=bh,
                        text="FullScreen",
                        coordinates=(w // 4 * 3 - bw - ((w // 4 - bw) // 2),
                                     h // 2 - 35),
                        font_size=kw.settins_pack[sk]['button']['font_size'],
                        text_color=kw.colors["green"],
                        background_color=kw.colors["white"],
                        sprite=kw.FULL_SCREEN)

    while 1:
        screen.fill(kw.colors["black"])
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            unit.move_left()
        if keys[pygame.K_RIGHT]:
            unit.move_right()
        if keys[pygame.K_UP]:
            unit.add_bullet()
        if keys[pygame.K_SPACE] and unit.laser is None:
            unit.create_laser()

        for bullet in unit.bullets:
            bullet.create_bullet()
            bullet.move_up()
            if bullet.y < -1 * 50:
                unit.bullets.remove(bullet)
            if collision_rect(bullet, back):
                unit.bullets.clear()
                kw.run = "settings"
                return
            if collision_rect(bullet, full_hd):
                unit.bullets.clear()
                kw.screen_size = (1920, 1080)
                return
            if collision_rect(bullet, WXGA):
                unit.bullets.clear()
                kw.screen_size = (1366, 768)
                return
            if collision_rect(bullet, fullscreen):
                unit.bullets.clear()
                return

        if unit.laser is not None:
            unit.laser.shot()
            if unit.laser.width <= 0:
                unit.laser = None

        full_hd.create_button()
        back.create_button()
        WXGA.create_button()
        fullscreen.create_button()

        unit.check_border()
        unit.create_plane()
        pygame.display.update()
Exemple #5
0
def main_screen(screen):

    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5
    bw = kw.settins_pack[sk]['button']['width']
    bh = kw.settins_pack[sk]['button']['height']

    start_ai = Button(screen,
                      width=bw,
                      height=bh,
                      text="START AI",
                      coordinates=(w // 4 - bw - ((w // 4 - bw) // 2),
                                   h // 2 - 35),
                      font_size=kw.settins_pack[sk]['button']['font_size'],
                      text_color=kw.colors["green"],
                      background_color=kw.colors["white"],
                      sprite=kw.START_AI)

    game_settings = Button(
        screen,
        width=bw,
        height=bh,
        text="SETTINGS",
        coordinates=(w // 2 - bw - ((w // 4 - bw) // 2), h // 2 - 35),
        font_size=kw.settins_pack[sk]['button']['font_size'],
        text_color=kw.colors["green"],
        background_color=kw.colors["white"],
        sprite=kw.SETTINGS)

    exit_b = Button(screen,
                    width=bw,
                    height=bh,
                    text="EXIT",
                    coordinates=(w - bw - ((w // 4 - bw) // 2), h // 2 - 35),
                    font_size=kw.settins_pack[sk]['button']['font_size'],
                    text_color=kw.colors["pink"],
                    background_color=kw.colors["white"],
                    sprite=kw.EXIT)

    start_local = Button(screen,
                         width=bw,
                         height=bh,
                         text="MULTIPLAY",
                         coordinates=(w // 4 * 3 - bw - ((w // 4 - bw) // 2),
                                      h // 2 - 35),
                         font_size=kw.settins_pack[sk]['button']['font_size'],
                         text_color=kw.colors["green"],
                         background_color=kw.colors["white"],
                         sprite=kw.MULTIPLAY)

    while 1:
        screen.fill(kw.colors["black"])
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT]:
            unit.move_left()
        if keys[pygame.K_RIGHT]:
            unit.move_right()
        if keys[pygame.K_UP]:
            unit.add_bullet()
        if keys[pygame.K_SPACE] and unit.laser is None:
            unit.create_laser()

        for bullet in unit.bullets:
            bullet.create_bullet()
            bullet.move_up()
            if bullet.y < -1 * 50:
                unit.bullets.remove(bullet)
            if collision_rect(bullet, exit_b):
                sys.exit()
            if collision_rect(bullet, start_ai):
                kw.run = "start_with_ai"
                unit.bullets.clear()
                return
            if collision_rect(bullet, game_settings):
                unit.bullets.clear()
                kw.run = "settings"
                unit.bullets.clear()
                return
            if collision_rect(bullet, start_local):
                kw.run = "start_local"
                unit.bullets.clear()
                return

        if unit.laser is not None:
            unit.laser.shot()
            if unit.laser.width <= 0:
                unit.laser = None

        game_settings.create_button()
        exit_b.create_button()
        start_local.create_button()
        start_ai.create_button()

        unit.check_border()
        unit.create_plane()
        pygame.display.update()
Exemple #6
0
def settings(screen):
    unit = units.units_pack[sk]['ally']["default_unit"]
    unit.screen = screen
    unit.x = w // 2 - unit.width // 2
    unit.y = h - h // 5
    bw = kw.settins_pack[sk]['button']['width']
    bh = kw.settins_pack[sk]['button']['height']

    sound = Button(screen,
                   width=bw,
                   height=bh,
                   text="SOUND",
                   coordinates=(w // 4 - bw - ((w // 4 - bw) // 2),
                                h // 2 - 35),
                   font_size=kw.settins_pack[sk]['button']['font_size'],
                   text_color=kw.colors["green"],
                   background_color=kw.colors["white"],
                   sprite=kw.SOUND)

    display_size = Button(screen,
                          width=bw,
                          height=bh,
                          text="DISPLAY",
                          coordinates=(w // 2 - bw - ((w // 4 - bh) // 2),
                                       h // 2 - 35),
                          font_size=kw.settins_pack[sk]['button']['font_size'],
                          text_color=kw.colors["green"],
                          background_color=kw.colors["white"],
                          sprite=kw.DISPLAY)

    back = Button(screen,
                  width=bw,
                  height=bh,
                  text="BACK",
                  coordinates=(w - bw - ((w // 4 - bw) // 2), h // 2 - 35),
                  font_size=kw.settins_pack[sk]['button']['font_size'],
                  text_color=kw.colors["green"],
                  background_color=kw.colors["white"],
                  sprite=kw.BACK)

    FreeSpace = Button(screen,
                       width=bw,
                       height=bh,
                       text="",
                       coordinates=(w // 4 * 3 - bw - ((w // 4 - bw) // 2),
                                    h // 2 - 35),
                       font_size=kw.settins_pack[sk]['button']['font_size'],
                       text_color=kw.colors["green"],
                       background_color=kw.colors["white"],
                       sprite=kw.FREE_SPACE)

    while 1:
        screen.fill(kw.colors["black"])
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            unit.move_left()
        if keys[pygame.K_RIGHT]:
            unit.move_right()
        if keys[pygame.K_UP]:
            unit.add_bullet()
        if keys[pygame.K_SPACE] and unit.laser is None:
            unit.create_laser()

        for bullet in unit.bullets:
            bullet.create_bullet()
            bullet.move_up()
            if bullet.y < -1 * 50:
                unit.bullets.remove(bullet)
            if collision_rect(bullet, back):
                unit.bullets.clear()
                kw.run = "main"
                return
            if collision_rect(bullet, sound):
                unit.bullets.clear()
            if collision_rect(bullet, display_size):
                unit.bullets.clear()
                kw.run = "display"
                return
            if collision_rect(bullet, FreeSpace):
                unit.bullets.clear()
                return

        if unit.laser is not None:
            unit.laser.shot()
            if unit.laser.width <= 0:
                unit.laser = None

        display_size.create_button()
        back.create_button()
        sound.create_button()
        FreeSpace.create_button()

        unit.check_border()
        unit.create_plane()
        pygame.display.update()