Ejemplo n.º 1
0
def create_object(ch, x, y):
    if ch in ['1', '2', '3', '4', '5']:
        obj = Jelly(ord(ch) - ord('1'), x, y)
        gfw.world.add(gfw.layer.item, obj)
        #print('creating Jelly', x, y)
    elif ch in ['O', 'P']:
        dy = 1 if ch == 'Q' else 3
        y -= dy * BLOCK_SIZE // 2
        x -= BLOCK_SIZE // 2
        obj = Platform(ord(ch) - ord('O'), x, y)
        gfw.world.add(gfw.layer.platform, obj)
        #print('creating Platform', x, y)
    elif ch in ['B']:
        pass
    else:
        ao = factory.create(ch, x, y)
        if ao is None:
            global ignore_char_map
            if ch not in ignore_char_map:
                print("Error? I don't know about: '%s'" % ch)
                ignore_char_map |= {ch}
            return
        l, b, r, t = ao.get_bb()
        ao.pass_wh(r - l, t - b)
        gfw.world.add(gfw.layer.enemy, ao)
Ejemplo n.º 2
0
def build_world():
    gfw.world.init([
        'bg', 'platform', 'enemy', 'boss', 'item', 'player', 'life', 'score',
        'ui', 'menu'
    ])
    Player.load_all_images()
    Jelly.load_all_images()

    center = get_canvas_width() // 2, get_canvas_height() // 2

    for n, speed in [(1, 10), (2, 100), (3, 150)]:
        bg = HorzScrollBackground('map_bg/bg_%d.png' % n, 'sound/main.mp3')
        bg.speed = speed
        gfw.world.add(gfw.layer.bg, bg)

    global font
    font = load_font(gobj.RES_DIR + 'font/CookieRun Regular.ttf', 30)

    global life
    life = Life()
    gfw.world.add(gfw.layer.life, life)

    global score
    score = Score(canvas_width / 2 - 30, canvas_height - 65, (0, 0, 0), 30)
    gfw.world.add(gfw.layer.score, score)

    stage_gen.load(gobj.res('stage_boss.txt'))

    global obs_sound, crash_sound
    obs_sound = load_wav(gobj.RES_DIR + 'sound/obs.wav')
    obs_sound.set_volume(50)
    crash_sound = load_wav(gobj.RES_DIR + 'sound/crash.wav')
    crash_sound.set_volume(30)

    global player
    player = Player(name)
    gfw.world.add(gfw.layer.player, player)

    l, b, w, h = get_canvas_width() - 100, get_canvas_height() - 100, 50, 50
    btn = Button("pause_", l, b, w, h, font, "", lambda: pause_set())
    gfw.world.add(gfw.layer.ui, btn)

    global paused, open
    paused = False
    open = False
Ejemplo n.º 3
0
def enter():
    gfw.world.init(['bg', 'platform', 'enemy', 'boss', 'item', 'player'])
    Player.load_all_images()
    Jelly.load_all_images()

    center = get_canvas_width() // 2, get_canvas_height() // 2

    for n, speed in [(1, 10), (2, 100), (3, 150)]:
        bg = HorzScrollBackground('map_bg/bg_%d.png' % n)
        bg.speed = speed
        gfw.world.add(gfw.layer.bg, bg)

    global player
    player = Player()
    #    player.bg = bg
    gfw.world.add(gfw.layer.player, player)

    global font
    font = load_font(gobj.RES_DIR + 'font/CookieRun Regular.ttf', 40)

    stage_gen.load(gobj.res('stage_boss.txt'))
Ejemplo n.º 4
0
    def __init__(self, setting: settings, shoot_sound):
        self.shoot_sound = shoot_sound
        self.fleet = list()
        self.move_speed = setting.alien_speed
        self.creep_speed = setting.creep_speed
        self.gun = Gun(setting)
        self.setting = setting
        self.saucer = Saucer(setting, Vector2(-64, 64 * 2))

        for i in range(10):
            self.fleet.append(Squid(setting, pygame.Vector2(70 * i, 70)))
        for i in range(10):
            self.fleet.append(Squid(setting, pygame.Vector2(70 * i, 70 * 2)))
        for i in range(10):
            self.fleet.append(Jelly(setting, pygame.Vector2(70 * i, 70 * 3)))
        for i in range(10):
            self.fleet.append(Jelly(setting, pygame.Vector2(70 * i, 70 * 4)))
        for i in range(10):
            self.fleet.append(Crab(setting, pygame.Vector2(70 * i, 70 * 5)))
        for i in range(10):
            self.fleet.append(Crab(setting, pygame.Vector2(70 * i, 70 * 6)))
Ejemplo n.º 5
0
 def gen_sprites(self):
     self.sprite_models.append(
         Crab(
             self.setting,
             Vector2(self.screen_dim.x / 2 - 128,
                     self.screen_dim.y / 10 * 3)))
     self.sprite_models.append(
         Jelly(
             self.setting,
             Vector2(self.screen_dim.x / 2 - 128,
                     self.screen_dim.y / 10 * 4)))
     self.sprite_models.append(
         Squid(
             self.setting,
             Vector2(self.screen_dim.x / 2 - 128,
                     self.screen_dim.y / 10 * 5)))
     self.sprite_models.append(
         Saucer(
             self.setting,
             Vector2(self.screen_dim.x / 2 - 128,
                     self.screen_dim.y / 10 * 6)))
Ejemplo n.º 6
0
def make_jelly():
    sh = random.randrange(1, 4)
    if sh == 1:
        for i in range(10):
            x = canvas_width + i * 60
            y = 200
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        spine = Spine2(n_speed, canvas_width + 10)
        gfw.world.add(gfw.layer.spine, spine)
        spine = Spine2(n_speed, canvas_width + 400)
        gfw.world.add(gfw.layer.spine, spine)
    elif sh == 2:
        for i in range(4):
            x = canvas_width + i * 60
            y = 250 + i * 60
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        for i in range(4):
            x = canvas_width + (i + 4) * 60
            y = 430 - i * 60
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        spine = Spine1(n_speed, canvas_width + 150)
        gfw.world.add(gfw.layer.spine, spine)
    elif sh == 3:
        for i in range(2):
            x = canvas_width + i * 60
            y = 200 + i * 60
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        for i in range(4):
            x = canvas_width + (i + 2) * 60
            y = 260
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        for i in range(2):
            x = canvas_width + (i + 6) * 60
            y = 260 - i * 60
            jelly = Jelly(n_speed, x, y)
            gfw.world.add(gfw.layer.jelly, jelly)
        spine = Spine2(n_speed, canvas_width + 100)
        gfw.world.add(gfw.layer.spine, spine)
        spine = Spine2(n_speed, canvas_width + 200)
        gfw.world.add(gfw.layer.spine, spine)
Ejemplo n.º 7
0
def update():
    create = random.randint(0, 100)
    TrapPattern = random.randint(0, 3)

    # 오브젝트 생성
    if character.item_count > 0.01:
        jelly = Jelly()  # 젤리 (점수)
        game_world.add_object(jelly, 0)
        # 0.01초마다 5% 확률로 포션 생성
        if create < 5:
            potion = Potion()
            game_world.add_object(potion, 0)
        character.item_count = 0

    if character.count >= 1.0:
        if TrapPattern == 0:
            jump_trap = jTrap()  # 1단 점프 함정
            game_world.add_object(jump_trap, 0)
            character.count = 0
        elif TrapPattern == 1:
            double_jump_trap = djTrap()  # 2단 점프 함정
            game_world.add_object(double_jump_trap, 0)
            character.count = 0
        elif TrapPattern == 2:
            strap = sTrap()  # 슬라이드 함정
            game_world.add_object(strap, 0)
            character.count = 0

    # 게임월드 업데이트
    for game_object in game_world.all_objects():
        game_object.update()
    # 충돌처리
    for obj in game_world.all_objects():
        if isinstance(obj, Jelly) and hp.HP_count >= 0:
            if collides(character, obj):
                character.score += 5
                jelly_sound.play()
                game_world.remove_object(obj)
        if isinstance(obj, Potion):
            if collides(character, obj) and hp.HP_count >= 0:
                hp.HP_count += 30
                item_eat.play()
                game_world.remove_object(obj)
        # 함정
        if isinstance(obj, jTrap):
            if collides(character, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                character.fps = 0
                character.state = character.COLLIDE
                hp.HP_count -= 50
        if isinstance(obj, djTrap):
            if collides(character, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                character.fps = 0
                character.state = character.COLLIDE
                hp.HP_count -= 50
        if isinstance(obj, sTrap):
            if collides(character, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                character.fps = 0
                character.state = character.COLLIDE
                hp.HP_count -= 50

        update_score()

        if hp.HP_count <= 0:
            character.x -= 10 * game_framework.frame_time
            if character.x <= -500:
                game_framework.change_state(Score_state)
Ejemplo n.º 8
0
def update():
    create = random.randint(0, 100)
    TrapPattern = random.randint(0, 3)

    # 오브젝트 생성
    if cookie.itemcount > 0.01:
        jelly = Jelly()  # 젤리 (점수)
        game_world.add_object(jelly, game_world.layer_obstacle)
        # 0.01초마다 5% 확률로 포션 생성
        if create < 5:
            potion = Potion()
            game_world.add_object(potion, game_world.layer_obstacle)
        cookie.itemcount = 0

    # 함정의 경우
    if cookie.count >= 1.0:
        if TrapPattern == 0:
            jtrap = jTrap()  # 1단 점프 함정
            game_world.add_object(jtrap, game_world.layer_obstacle)
            cookie.count = 0
        elif TrapPattern == 1:
            djtrap = djTrap()  # 2단 점프 함정
            game_world.add_object(djtrap, game_world.layer_obstacle)
            cookie.count = 0
        elif TrapPattern == 2:
            strap = sTrap()  # 슬라이드 함정
            game_world.add_object(strap, game_world.layer_obstacle)
            cookie.count = 0

    # 게임월드 업데이트
    game_world.update()
    # 충돌처리
    for obj in game_world.all_objects():
        if isinstance(obj, Jelly) and hp.HP_count >= 0:
            if collides(cookie, obj):
                cookie.score += 5
                jelly_sound.play()
                game_world.remove_object(obj)
        if isinstance(obj, Potion):
            if collides(cookie, obj) and hp.HP_count >= 0:
                hp.HP_count += 30
                item_sound.play()
                game_world.remove_object(obj)
        # 함정
        if isinstance(obj, jTrap):
            if collides(cookie, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                cookie.fps = 0
                cookie.state = cookie.COLLIDE
                hp.HP_count -= 50
        if isinstance(obj, djTrap):
            if collides(cookie, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                cookie.fps = 0
                cookie.state = cookie.COLLIDE
                hp.HP_count -= 50
        if isinstance(obj, sTrap):
            if collides(cookie, obj) and hp.HP_count >= 0:
                game_world.remove_object(obj)
                collide_sound.play()
                cookie.fps = 0
                cookie.state = cookie.COLLIDE
                hp.HP_count -= 50

        update_score()

        if hp.HP_count <= 0:
            cookie.x -= 10 * game_framework.frame_time
            if cookie.x <= -500:
                game_framework.change_state(Score_state)
"""
import pygame
from globals import *
from time import sleep
from functions import start_graphics, load_best_dna_saved, draw_graphics_test, update_test
from jelly import Jelly

if __name__ == "__main__":

    if ENABLE_GRAPHICS:
        start_graphics()

    best_dna = load_best_dna_saved()
    print(best_dna)

    jelly = Jelly()
    jelly.set_dna(best_dna)
    print("Jelly INFOS::", jelly.golds, jelly.horses)

    year = 0

    while year < years:
        print("\nYEAR", year)

        if ENABLE_GRAPHICS:
            draw_graphics_test(jelly, year)

        update_test(jelly, year)

        year += 1