Пример #1
0
    def __init__(self, experiment):
        self.logger = FileLogger()

        self.screen = pygame.display.get_surface()
        self.clock = pygame.time.Clock()
        self.experiment = experiment
        # self.level = Level()

        self.event_handler = EventHandler()
        self.keyboard_handler = Event()

        self.sprites_group = pygame.sprite.LayeredDirty()

        self.msgs = {}

        self.msgs["welcome"] = ImageMessage(str(0), "welcome.jpg")
        self.msgs["the_end"] = ImageMessage(str(0), "theEnd.jpg")

        for v in self.msgs.itervalues():
            self.sprites_group.add(v, layer=MSG_lyr)

        self.trial = Trial(self.logger)
        self.block = Block(self.trial, self.msgs)
        self.exp_runner = ExpRunner(self.experiment, self.block, self.msgs,
                                    self.set_images)
Пример #2
0
    def __init__(self, experiment):
        self.logger = FileLogger()

        self.screen = pygame.display.get_surface()

        self.clock = pygame.time.Clock()
        self.experiment = experiment

        self.event_handler = EventHandler()
        self.keyboard_handler = Event()

        self.sprites_group = pygame.sprite.LayeredDirty()

        self.background = {}
        self.background["pasive"] = pygame.sprite.DirtySprite()
        # self.background["pasive"].image = pygame.surface.Surface(Properties.SCREEN_RES)
        self.background["pasive"].image = pygame.surface.Surface(
            self.screen.get_size())
        self.background["pasive"].image.fill([40, 40, 40])
        self.background["pasive"].rect = self.background[
            "pasive"].image.get_rect()
        self.sprites_group.add(self.background["pasive"], layer=BACKGR_lyr)

        # self.background["active"] = pygame.sprite.DirtySprite()
        # self.background["active"].image = pygame.surface.Surface(Properties.SCREEN_RES)
        # # self.background["active"].image = pygame.surface.Surface(self.screen.get_size())
        # self.background["active"].image.fill([80,80,80])
        # self.background["active"].rect = self.background["active"].image.get_rect()
        # self.sprites_group.add(self.background["active"], layer=BACKGR_lyr)

        # self.background["active"].visible = False
        self.feedback_ok = Feedback()
        self.feedback_no = Feedback(False)
        self.sprites_group.add(self.feedback_ok, layer=FEED_lyr)
        self.sprites_group.add(self.feedback_no, layer=FEED_lyr)

        self.msgs = {}
        self.boxes = {}

        self.instruction = Instruction()
        self.instruction.hide()
        self.sprites_group.add(self.instruction, layer=INST_lyr)

        self.msgs["done"] = ImageDone()
        for v in self.msgs.itervalues():
            self.sprites_group.add(v, layer=BTN_lyr)

        for box_name, position in self.experiment["box_positions"].iteritems():
            box = Box(box_name, json.loads(position),
                      self.experiment["properties"])
            self.sprites_group.add(box, layer=BOXES_lyr)
            self.boxes[box_name] = box

        self.tic_group = []

        self.trial = Trial(
            self.logger, self.experiment["properties"],
            self.change_to_active_mode, None, {
                "ok": self.feedback_ok.show,
                "no": self.feedback_no.show,
                "off":
                (lambda: [self.feedback_ok.hide(),
                          self.feedback_no.hide()])
            })
        self.exp_runner = ExpRunner(self.experiment, self.trial, self.boxes)
        self.exp_runner.end_test = self.terminar_juego
        self.exp_runner.instruction = self.instruction
        self.trial.handle_end = self.exp_runner.next_trial
        self.trial.set_boxes(self.boxes, self.suscribe_box_on,
                             self.unsuscribe_box)
        self.boxes_on = []

        self.msgs["done"].set_callback(self.trial.next_by_usr)

        self.change_to_active_mode(False)
Пример #3
0
    def __init__(self):
        if LOG:
            self.api = Fw_API()
        else:
            self.api = DebugGame()

        self.screen = pygame.display.get_surface()
        self.clock = pygame.time.Clock()
        self.level = Level()

        self.background = pygame.sprite.DirtySprite()
        self.background.image = pygame.image.load(
            "images/fondo" + str(Properties.SCREEN_RES[0]) + "x" +
            str(Properties.SCREEN_RES[1]) + ".png")
        self.background.rect = self.background.image.get_rect()

        self.event_handler = EventHandler()
        self.keyboard_handler = Event()

        self.sprites_group = pygame.sprite.LayeredDirty()
        self.clickeableGroup = pygame.sprite.Group()

        self.sprites_group.add(self.background, layer=BACKGR_lyr)

        self.clock_hand = ClockHand()
        self.sprites_group.add(self.clock_hand, layer=CLOCK_HAND_lyr)

        c = Clock()
        c.rect.x = self.screen.get_rect().centerx - c.rect.width / 2
        c.rect.y = self.screen.get_rect().centery - c.rect.height / 2

        self.sprites_group.add(c, layer=CLOCK_lyr)

        self.log("INIT ", "INICIANDO JUEGO")

        self.shadow = pygame.sprite.DirtySprite()
        self.shadow.image = pygame.Surface(self.screen.get_size(),
                                           pygame.SRCALPHA)  # per-pixel alpha
        self.shadow.image.fill((0, 50, 150, 180))
        self.shadow.rect = self.screen.get_rect()
        self.shadow.visible = 0

        self.levelbar = LevelBar(self.level)
        self.sprites_group.add(self.levelbar.bar, layer=LEVEL_BAR_lyr)

        self.leveltime = LevelTime(self.level)
        self.sprites_group.add(self.leveltime, layer=LEVEL_TIME_lyr)

        self.sprites_group.add(self.levelbar.check, layer=LEVEL_BAR_CHK_lyr)

        self.sprites_group.add(self.shadow, layer=MSG_lyr)

        self.info_button = InfoButton(self.show_instructions)
        self.sprites_group.add(self.info_button, layer=CTRL_BTN_lyr)
        self.clickeableGroup.add(self.info_button)

        self.close_button = CloseButton(self.terminar_juego)
        self.sprites_group.add(self.close_button, layer=CTRL_BTN_lyr)
        self.clickeableGroup.add(self.close_button)

        self.instructions_window = Instruction()
        self.sprites_group.add(self.instructions_window, layer=INST_lyr)

        self.state = State()