Exemplo 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)
Exemplo n.º 2
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)))
Exemplo n.º 3
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)))
Exemplo n.º 4
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)
Exemplo n.º 5
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)
Exemplo n.º 6
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