コード例 #1
0
def test_level(fn):
    level = Level()
    level.read(fn)

    solutions = level.solve()
    assert len(solutions) > 0
    assert level.par == len(solutions[0])
コード例 #2
0
def start_game():
    appium = webdriver.Remote(config.APPIUM_HOST, config.DESIRED_CAPABILITIES)
    unity = AltrunUnityDriver(appium, config.PLATFORM)
    main_menu = MainMenu(unity)
    main_menu.play_button.tap()
    return {
        "Appium": appium,
        "Unity": unity,
        "Game": Game(unity),
        "MainMenu": main_menu,
        "Level": Level(unity),
        "Player": Player(unity),
        "LevelCompleteMenu": LevelComplete(unity),
    }
コード例 #3
0
ファイル: game.py プロジェクト: gwen23/P3
 def __init__(self):
     pg.init()
     self.maze = Maze()
     pg.display.set_mode((WIDTH, HEIGHT))
     pg.image.load(FL).convert()
     pg.image.load(WA).convert()
     pg.image.load(E).convert_alpha()
     pg.image.load(T).convert_alpha()
     pg.image.load(S).convert_alpha()
     pg.image.load(BG).convert_alpha()
     pg.image.load(PL).convert_alpha()
     pg.display.set_caption('The Maze')
     self.clock = pg.time.Clock()
     self.is_running = True
     self.SCREEN = pg.display.set_mode((WIDTH, HEIGHT))
     self.fond = pg.image.load("./images/floor-tiles-20x20.png").convert()
     self.level = Level()
     self.run()
コード例 #4
0
    def setup (self):
        keyboard = mixin (KeyboardTask, AutoSender) (
            DEFAULT_KEYMAP)

        base.setBackgroundColor (Vec4 (.4, .6, .9, 1))
        
        self.events.connect (keyboard)
        self.events.event ('panda-escape').connect (self.kill)

        physics = Physics ()

        boy = Boy (physics = physics,
                   render = render)
        boy.set_position ((0, 70, 20))

        level = Level (physics = physics,
                       render = render)
        level.set_position ((0, 0, -100))

        self.tasks.add (keyboard)
        self.tasks.add (boy)
        self.tasks.add (level)
        self.tasks.add (physics)

        boy.connect (SlowEntityFollower (base.camera))
        keyboard.connect (
            mixin (DelegatePlayerEntity, AutoReceiver) (delegate = boy))
        
        plightnode = PointLight("point light")
        plightnode.setAttenuation (Vec3(1,0.0000005,0.0000001))
        plight = render.attachNewNode (plightnode)
        plight.setPos (100, -100, 1000)

        alightnode = AmbientLight("ambient light")
        alightnode.setColor (Vec4(0.4,0.4,0.4,1))
        alight = render.attachNewNode (alightnode)

        #render.setLight (alight)
        render.setLight (plight)
コード例 #5
0
ファイル: game.py プロジェクト: gwen23/P3
import pygame as pg
from pygame.locals import KEYDOWN as Kd

from game.settings import E, T, S, FL, WA, BG, PL, WIDTH, HEIGHT, SIZE_SPRITE
from game.level import Level
from game.the_maze import Maze

clock = pg.time.Clock()
pg.display.set_caption('The Maze')
level = Level()
SCREEN = pg.display.set_mode((WIDTH, HEIGHT))


class Game:
    def __init__(self):
        pg.init()
        self.maze = Maze()
        pg.display.set_mode((WIDTH, HEIGHT))
        pg.image.load(FL).convert()
        pg.image.load(WA).convert()
        pg.image.load(E).convert_alpha()
        pg.image.load(T).convert_alpha()
        pg.image.load(S).convert_alpha()
        pg.image.load(BG).convert_alpha()
        pg.image.load(PL).convert_alpha()
        pg.display.set_caption('The Maze')
        self.clock = pg.time.Clock()
        self.is_running = True
        self.SCREEN = pg.display.set_mode((WIDTH, HEIGHT))
        self.fond = pg.image.load("./images/floor-tiles-20x20.png").convert()
        self.level = Level()
コード例 #6
0
    def __game(self):
        print("entering __game")

        levels = Level(self.graphics, "home")

        bobby = Bobby(self.graphics)

        finalrender = pygame.Surface(
            (levels.get_map_size()[0], levels.get_map_size()[1]))

        in_dial = False
        pnj_name = "null"
        dial_count = 1

        state_to_return = "EXIT"
        goon = True
        while goon:
            #print(self.clock.get_fps())
            deltatime = self.clock.tick(30) / 100.0

            #events
            for event in pygame.event.get():
                if event.type == QUIT:
                    goon = False

                if in_dial:
                    if event.type == pygame.KEYUP:
                        if event.key == pygame.K_ESCAPE:
                            in_dial = False
                            pnj_name = "null"
                            dial_count = 1

                        if event.key == pygame.K_RETURN:
                            dial_count += 1
                            if dial_count > len(
                                    levels.chars[pnj_name]["dials"]):
                                in_dial = False
                                pnj_name = "null"
                                dial_count = 1
                else:
                    levels.event(event)

                    bobby.event(event)

            # updates
            bob_value = bobby.update(deltatime, levels.get_map_size(), levels)

            if bobby.get_state_to_return() == "MENU":
                state_to_return = "MENU"
                goon = False

            levels.update(bob_value, bobby)

            if levels.currentmap == "credits":
                goon = False
                state_to_return = "CREDITS"
                break

            if finalrender.get_width() != levels.get_map_size(
            )[0] or finalrender.get_height() != levels.get_map_size()[1]:
                finalrender = pygame.Surface(
                    (levels.get_map_size()[0], levels.get_map_size()[1]))

            # draws
            finalrender.blit(levels.draw(), (0, 0))

            b_x, b_y = bobby.get_pos()
            finalrender.blit(bobby.draw(), (b_x, b_y))

            self.screen.blit(
                pygame.transform.scale(finalrender,
                                       (c.WINDOW_WIDTH, c.WINDOW_HEIGHT)),
                (0, 0))

            if bob_value.split(' ')[0] == "pnj" and not in_dial:  # or in_dial
                in_dial = True
                pnj_name = bob_value.split(' ')[1]

            elif in_dial:
                bobby_talk = False

                my_font = pygame.font.Font("res/ubuntumono-r.ttf", 22)
                my_string = levels.chars[pnj_name]["dials"][str(dial_count)]
                if my_string[0] == "*":
                    bobby_talk = True
                    my_string = "<Bobby>  " + my_string[1:]
                else:
                    my_string = "<" + pnj_name[0].upper(
                    ) + pnj_name[1:] + ">  " + my_string

                my_rect = pygame.Rect(
                    (0, 0, c.WINDOW_WIDTH, c.WINDOW_HEIGHT / 4))
                rendered_text = Dialog().render_textrect(
                    my_string, my_font, my_rect, (216, 216, 216),
                    (0, 0, 20, 225), 0)
                self.screen.blit(
                    rendered_text,
                    (0, c.WINDOW_HEIGHT - rendered_text.get_height()))

                # TODO: Change head if ":" or "*"
                if bobby_talk:
                    head = pygame.transform.scale(
                        self.graphics["bobby_head.png"],
                        (175, rendered_text.get_height() + 50))
                else:
                    head = pygame.transform.scale(
                        self.graphics[pnj_name + "_head.png"],
                        (175, rendered_text.get_height() + 50))

                self.screen.blit(
                    head, (0, c.WINDOW_HEIGHT - rendered_text.get_height()))

                continue_font = my_font
                continue_font.set_italic(True)
                dial_left = "(" + str(dial_count) + "/" + str(
                    len(levels.chars[pnj_name]["dials"])) + ")"
                continue_font_rendered = continue_font.render(
                    "Press Enter to continue... " + dial_left, 1,
                    (150, 150, 150))
                self.screen.blit(
                    continue_font_rendered,
                    (c.WINDOW_WIDTH - continue_font_rendered.get_width(),
                     c.WINDOW_HEIGHT - continue_font_rendered.get_height()))

            pygame.display.flip()

        print("exiting __game")

        return state_to_return
コード例 #7
0
ファイル: level_list.py プロジェクト: tchanman/pokemon
 Level(
     pygame.image.load("./assets/bgs/hometown.png"),
     "./assets/sounds/music/pallet_town.mp3",
     [
         Entity([0, 0], [430, 75]),  # level walls
         Entity([0, 0], [220, 720]),
         Entity([0, 560], [1080, 720]),
         Entity([1080 - 224, 0], [224, 720]),
         Entity([1080 - 434, 0], [434, 75]),
         Entity([315, 90], [140, 80]),  # topleft house
         Entity([315, 90], [35, 110]),
         Entity([400, 90], [55, 110]),
         Entity([620, 90], [140, 80]),  # topright house
         Entity([620, 90], [35, 110]),
         Entity([705, 90], [55, 110]),
         Entity([620, 310], [140, 80]),  # bottomright house
         Entity([620, 310], [35, 110]),
         Entity([705, 310], [55, 110]),
         Entity([300, 310], [180, 80]),  # oakslab
         Entity([300, 310], [65, 110]),
         Entity([415, 310], [65, 110]),
     ],
     [
         ExitZone([430, 0], [220, 5], (0, 670),
                  "route1",
                  True,
                  doMusicChange=True),  # hometown to route 1
         # ExitZone([360, 180], [35, 5], (527,570) , "oakslab", False), # hometown to topleft house
         ExitZone([375, 400], [35, 5], (527, 570),
                  "oakslab",
                  False,
                  doMusicChange=True),  # hometown to oakslab
     ],
     PokeZone()),
コード例 #8
0
 def __init__(self, filepath):
     super(Play, self).__init__()
     self.filepath = filepath
     tileset = Tileset('resources/tileset/default.tset')
     self.level = Level(tileset, filepath)
コード例 #9
0
def level(unity):
    return Level(unity)