コード例 #1
0
    def __init__(self, scene):
        spyral.Sprite.__init__(self, scene)

        self.ESTADO = "bigbang"

        self.image = spyral.Image(size=(1, 1))
        self.pos = (-1, -1)

        self.offset = (0, 0)

        self.offset_anim = spyral.Animation("offset", spyral.easing.Arc((0,0), 50), duration=5) + \
                            spyral.Animation("offset", spyral.easing.LinearTuple((50,0),(0,0)), duration=1)
        self.offset_anim.property = "offset"

        spyral.event.register("TimeMaster.offset.animation.end",
                              self.endhandler)
コード例 #2
0
ファイル: Basketball.py プロジェクト: yyzett/chester_pets
    def __init__(self, scene, coord):
        super(Hoop, self).__init__()
        self.scene = scene

        self.is_target = False

        hoop_image = spyral.Image(filename="basketball_images/hoop.png")
        
        self.image = hoop_image

        self.x_coord = coord[0]
        self.y_coord = coord[1]

        self.anchor = "center"
        self.x = (self.x_coord / NUM_X_POINTS) * COORD_WIDTH + PAD_LEFT
        self.y = HEIGHT - ((self.y_coord / NUM_Y_POINTS) * COORD_HEIGHT) - PAD_BOTTOM
コード例 #3
0
ファイル: concurrent.py プロジェクト: daleathan/spyral
    def __init__(self):
        spyral.Scene.__init__(self, SIZE)
        self.clock.max_ups = 60.
        bg = spyral.Image(size=SIZE)
        bg.fill(BG_COLOR)
        self.background = bg

        self.counter = DumbObject()

        def add_new_box():
            StupidSprite(self)

        add_new_box()

        spyral.event.register('system.quit', spyral.director.quit)
        spyral.event.register('input.keyboard.down', add_new_box)
コード例 #4
0
    def set_text(self, text):
        self._text = text
        ancho_promedio = self.font.get_size("X")[0]
        caracteres = (self.width - 2 * self.margen) / ancho_promedio
        lineas = wrap(text, caracteres).splitlines()

        altura = len(lineas) * self.line_height
        bloque = spyral.Image(size=(self.width, altura))

        ln = 0
        for linea in lineas:
            bloque.draw_image(image=self.font.render(linea),
                position=(0, ln * self.line_height), anchor="midtop")
            ln = ln + 1

        return bloque
コード例 #5
0
    def __init__(self, scene, text, x, y, w, h):
        super(MultilineText, self).__init__(scene)
        self.image = spyral.Image(size=(w,h))

        font_path = "fonts/LiberationSans-Regular.ttf"
        self.font = spyral.Font(font_path, 24, FG_COLOR)
        self.line_height = self.font.linesize

        self.anchor = 'center'
        self.x = x
        self.y = y
        self.w = w
        self.h = h

        self.image = self.render_text(text)
        self.text = text
コード例 #6
0
 def update(self, intentos):
     if intentos >= 6:
         self.image = spyral.Image(filename="images/Hangman-0.png")
     elif intentos == 5:
         self.image = spyral.Image(filename="images/Hangman-1.png")
     elif intentos == 4:
         self.image = spyral.Image(filename="images/Hangman-2.png")
     elif intentos == 3:
         self.image = spyral.Image(filename="images/Hangman-3.png")
     elif intentos == 2:
         self.image = spyral.Image(filename="images/Hangman-4.png")
     elif intentos == 1:
         self.image = spyral.Image(filename="images/Hangman-5.png")
         self.image = spyral.Image(filename="images/Hangman-6.png")
     self.image.scale((512, 512))
コード例 #7
0
    def __init__(self, scene):
        spyral.Sprite.__init__(self, scene)
        self.image = spyral.Image("images/etoys-car.png")
        self.vel = 100
        self.scale = 1
        self.x, self.y = 100, 100
        self.anchor = "midbottom"

        self.estado = "quieto"
        self.movimiento = spyral.Vec2D(0, 0)

        spyral.event.register("director.render",
                              self.seguir_raton,
                              scene=scene)
        spyral.event.register("director.pre_render",
                              self.determinar_estado,
                              scene=scene)
コード例 #8
0
 def renderGuess(self, correct):
     right = 0
     if self.oper == "+":
         right = self.num1 + self.num2
     if self.oper == "-":
         right = self.num1 - self.num2
     self.image = spyral.Image(size=[300, 30])
     self.anchor = 'center'
     font = pygame.font.SysFont(None, 40)
     color = [255, 0, 0, 255]
     if correct:
         color = [0, 255, 0, 255]
     surf = font.render(
         self.num1.__str__() + " " + self.oper + " " + self.num2.__str__() +
         " = " + right.__str__(), True, color)
     self.image._surf.blit(
         surf, [150 - surf.get_width() * .5, 15 - surf.get_height() * .5])
コード例 #9
0
    def __init__(self, scene):
        spyral.Sprite.__init__(self, scene)
        self.image = spyral.Image(filename="images/love-shield.png")
        self.layer = "frente"

        self.yay = pygame.mixer.Sound('sounds/heal.ogg')

        self.pos = (scene.width + 2,
                    random.randint(60, scene.height - self.height))
        self.timer = 0
        self.freq = random.random() * 2
        self.duration = random.random() * 2 + 4

        self.estado = "normal"

        spyral.event.register("director.update", self.chequea)
        #spyral.event.register ("Premio.pos.animation.end", self.desaparecer)
        spyral.event.register("Comodo.muere", self.fin)
コード例 #10
0
    def intro5(self):
        spyral.event.unregister("Jugador.demora.animation.end", self.intro5)
        a = spyral.Animation("y", spyral.easing.Linear(self.scene.height, 0), duration=4)
        self.camino.animate(a)

        img = spyral.Image(filename=gamedir(
        "images/Peru_Machu_Picchu_Sunrise.jpg")).scale(self.scene.size)

        self.v = Visualizador(self)
        self.v.reset("Press space to begin.", loop=True)

        n = pygame.Surface.convert_alpha(img._surf)
        # red at 50%
        n.fill((255, 0, 0, 127))
        img._surf.blit(n, (0, 0))

        self.scene.background = img

        self.j.set_deambular()
コード例 #11
0
ファイル: Basketball.py プロジェクト: yyzett/chester_pets
    def __init__(self, scene, size_factor):
        '''
        # @TODO: 
        '''
        super(Ball, self).__init__()
        self.scene = scene

        self.ball_speed_up = -900
        self.ball_speed_fast = 500
        self.ball_speed_slow = 150
        self.ball_slow_range = 50

        self.hangtime = 80

        self.image = spyral.Image(filename="basketball_images/basketball.png")
        
        self.vel_y = 0;
        
        self.anchor = "center"
コード例 #12
0
    def __init__(self, menuScene, SIZE, filename):
        spyral.Scene.__init__(self, SIZE)
        self.background = spyral.Image(size=SIZE).fill((25, 150, 25))

        self.menuScene = menuScene
        self.sceneSize = SIZE
        self.levelWidth = 20
        self.levelHeight = 20

        self.currentLevel = 1
        self.goalAmount = 3
        self.startLength = 1

        self.levelData = self.CreateLevel(SIZE, filename)

        #create the text on the top of the screen that informs the player the length the snake needs
        #to be in order to progress to the next level
        self.hudGoalText = spyral.Sprite(self.parent)
        self.hudGoalStatus = spyral.Sprite(self.parent)
        self.text = spyral.Font("game/fonts/DejaVuSans.ttf", 22,
                                (255, 255, 255))
        self.hudGoalText.image = self.text.render(
            "The snake needs to be " + str(self.goalAmount) +
            " pieces long to go to the next level!")

        self.hudGoalText.x = SIZE[0] / 2
        self.hudGoalText.y = self.text.get_size("X").y
        self.hudGoalText.anchor = 'center'

        #create snake player object
        self.player = snake.Snake(self, (2, self.levelWidth / 2))

        spyral.event.register("input.keyboard.down.*",
                              self.handleKeyboard,
                              scene=self)

        self.hudGoalStatus.image = self.text.render(
            "The snake is currently " + str(self.player.bodyLength) +
            " pieces long!")
        self.hudGoalStatus.x = SIZE[0] / 2
        self.hudGoalStatus.y = self.text.get_size("X").y * 2.1
        self.hudGoalStatus.anchor = 'center'
コード例 #13
0
ファイル: Basketball.py プロジェクト: yyzett/chester_pets
def get_hoops(scene):
    hoops = []
    hoop_posns = []
    num_hoops = 7

    for i in range(num_hoops):
        temp_coord = (random.choice(range(int(NUM_X_POINTS + 1))),
                        random.choice(range(int(NUM_Y_POINTS + 1))))
        while temp_coord in hoop_posns:
            temp_coord = (random.choice(range(int(NUM_X_POINTS + 1))),
                            random.choice(range(int(NUM_Y_POINTS + 1))))
        hoops.append(Hoop(scene, temp_coord))
        hoop_posns.append(temp_coord)

    target_hoop = random.choice(range(num_hoops))
    new_hoop_image = spyral.Image(filename="basketball_images/target_hoop.png")
    hoops[target_hoop].image = new_hoop_image
    hoops[target_hoop].is_target = True

    return hoops
コード例 #14
0
    def __init__(self):
        spyral.Scene.__init__(self, SIZE)
        self.background = spyral.Image(size=SIZE).fill((255, 255, 255))

        text = GuidedText(self, "DejaVuSans.ttf", "ABCDEFGHIJKLM",
                          self.height * 1. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", "NOPQRSTUVWXYZ",
                          self.height * 2. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", "abcdefghijklm",
                          self.height * 3. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", "nopqrstuvwxyz",
                          self.height * 4. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", "1234567890-=,",
                          self.height * 5. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", "!@#$%^&*()_+<",
                          self.height * 6. / 8)
        text = GuidedText(self, "DejaVuSans.ttf", ".>/?;:'\"[{]}|\\~`",
                          self.height * 7. / 8)

        spyral.event.register("system.quit", spyral.director.quit)
コード例 #15
0
 def __stylize__(self, properties):
     """
     The __stylize__ function is called during initialization to set up
     properties taken from a style function. Sprites that want to override
     default styling behavior should implement this class, although that
     should rarely be necessary.
     """
     if 'image' in properties:
         image = properties.pop('image')
         if isinstance(image, str):
             image = spyral.Image(image)
         setattr(self, 'image', image)
     simple = ['pos', 'x', 'y', 'position', 'anchor', 'layer', 'visible',
               'scale', 'scale_x', 'scale_y', 'flip_x', 'flip_y', 'angle',
               'mask']
     for property in simple:
         if property in properties:
             value = properties.pop(property)
             setattr(self, property, value)
     if len(properties) > 0:
         spyral.exceptions.unused_style_warning(self, properties.iterkeys())
コード例 #16
0
    def __init__(self, scene, texto):
        spyral.Sprite.__init__(self, scene)

        self.anchor = 'center'
        self.pos = spyral.Vec2D(scene.size) / 2
        self.margen = 5
        self.layer = "primer"

        self.image = spyral.Image(filename=gamedir("images/Menu_2.png"))
        #self.image.draw_rect(color=(128,128,128),
        #        position=(0,0), size=(self.height,self.width))

        font_path = gamedir("../fonts/DejaVuSans.ttf")
        self.font = spyral.Font(font_path, 24, (0, 0, 0))
        self.line_height = self.font.linesize

        nueva = self.set_text(texto)
        self.image.draw_image(nueva,
            position=(self.margen / 2, 0), anchor="midleft")

        self.scale = 1.3
コード例 #17
0
    def __init__(self, scene):
        spyral.Sprite.__init__(self, scene)
        self.image = spyral.Image(filename="images/comodo.png")
        self.layer = "frente"
        self.pos = (0, scene.height - self.height)

        self.estado = "normal"
        self.cajita = spyral.Rect(0, 60, scene.width - self.width,
                                  scene.height - self.height)
        self.vida = 100

        spyral.event.register("input.keyboard.down.space", self.salto)
        spyral.event.register("input.keyboard.down.up", self.salto)
        spyral.event.register("Comodo.y.animation.end", self.fin_salto)
        spyral.event.register("Comodo.muere", self.muere)

        spyral.event.register("director.update", self.chequea)
        pygame.mixer.init()
        pygame.mixer.music.load("sounds/Harp.ogg")
        pygame.mixer.music.play(-1)
        self.flap = pygame.mixer.Sound('sounds/bird_flap.ogg')
コード例 #18
0
    def __init__(self, SIZE=None, activity=None, *args, **kwargs):
        spyral.Scene.__init__(self, SIZE)
        self.background = spyral.Image(size=self.size).fill((255, 255, 255))

        self.title = spyral.Sprite(self)
        self.title.image = spyral.Font("fonts/SFDigitalReadout-Medium.ttf",
                                       105).render("Consenso en 8-bits")
        self.title.anchor = "midbottom"
        self.title.pos = spyral.Vec2D(self.size) / 2

        #anim = spyral.Animation("visible", spyral.easing.Iterate([True,False]), duration=0.5, loop=True)
        #self.title.animate(anim)

        self.subtitle = spyral.Sprite(self)
        self.subtitle.image = spyral.Font("fonts/SFDigitalReadout-Medium.ttf",
                                          75).render("presiona espacio")
        self.subtitle.anchor = "midtop"
        self.subtitle.pos = spyral.Vec2D(self.size) / 2

        self.player = Carrito(self, 1)
        self.player.pos = 150, 150
        self.player.vel = 30
        self.player.scale = 3

        self.player = Carrito(self, 2)
        self.player.pos = self.width - 150, self.height - 150
        self.player.vel = 30
        self.player.scale = 3
        self.angle = math.pi
        self.interruptores = []

        spyral.event.register("input.keyboard.down.space", self.continuar)
        spyral.event.register("input.keyboard.down.*", self.mostrar)
        spyral.event.register("system.quit", spyral.director.pop)

        if activity:
            activity.box.next_page()
            activity._pygamecanvas.grab_focus()
            activity.window.set_cursor(None)
            self.activity = activity
コード例 #19
0
    def __init__(self, scene, text, style=None):
        spyral.Sprite.__init__(self, scene)

        font_path = "fonts/LiberationSans-Regular.ttf"
        if style=="title":
            self.font = spyral.Font(font_path, 48, (0,0,0))
        elif style=="small":
            self.font = spyral.Font(font_path, 16, (0,0,0))
        else:
            self.font = spyral.Font(font_path, 24, (0,0,0))
        self.line_height = self.font.linesize
        self.margen = 30

        text_width = self.font.get_size(text)[0]

        ancho_promedio = self.font.get_size("X")[0]
        caracteres = (scene.width - 2 * self.margen) / ancho_promedio
        self.lineas = self.wrap(text, caracteres).splitlines()
        self.altura = len(self.lineas) * self.line_height

        self.image = spyral.Image(size = (scene.width, self.altura)).fill((255,255,255))
        self.image = self.render_text(text)
コード例 #20
0
    def __init__(self, scene, side):
        spyral.Sprite.__init__(self, scene)
        self.image = spyral.Image(size=(20, 300)).fill((255, 255, 255))
        if side == 'left':
            self.anchor = 'midleft'
            self.x = 20
        else:
            self.anchor = 'midright'
            self.x = WIDTH - 20
        self.y = HEIGHT / 2
        self.side = side
        self.moving = False

        up = 'w' if self.side == 'left' else "up"
        down = 's' if self.side == 'left' else "down"

        spyral.event.register("input.keyboard.down." + up, self.move_up)
        spyral.event.register("input.keyboard.down." + down, self.move_down)
        spyral.event.register("input.keyboard.up." + up, self.stop_move)
        spyral.event.register("input.keyboard.up." + down, self.stop_move)
        spyral.event.register("director.update", self.update)
        spyral.event.register("pong_score", self._reset)
コード例 #21
0
    def __init__(self, scene, PALABRA="The Chakana Cross", ARCHIVO=None):
        # spritesheet color: yellow, green, orange, blue, brown
        spyral.Sprite.__init__(self, scene)

        self.layer = "arriba"

        self.PALABRA = PALABRA
        self.ARCHIVO = ARCHIVO
        self.font = spyral.Font(font_path, 28, (0, 0, 0))
        self.line_height = self.font.linesize

        self.mode = "TARJETA"

        self.anchor = "center"

        self.margin = 15
        self.marco = spyral.Image(filename=gamedir("imagenes/marco_1.png"))
        self.image = self.marco

        #self.scale = 1.2
        self.pos = spyral.Vec2D(scene.size) / 2
        self.showself()
コード例 #22
0
    def __init__(self, activity=None, *args, **kwargs):
        global SIZE, WIDTH, HEIGHT
        pantalla = pygame.display.get_surface()
        SIZE = pantalla.get_size()
        WIDTH = SIZE[0]
        HEIGHT = SIZE[1]
        spyral.Scene.__init__(self, SIZE)
        self.background = spyral.Image(size=SIZE).fill(BG_COLOR)

        self.ball = Ball(self)
        self.left_paddle = Paddle(self, 'left')
        self.right_paddle = Paddle(self, 'right')

        spyral.event.register("system.quit", spyral.director.pop)
        spyral.event.register("director.update", self.update)
        spyral.event.register("input.keyboard.down.q", spyral.director.pop)

        if activity:
            activity.box.next_page()
            activity._pygamecanvas.grab_focus()
            activity.window.set_cursor(None)
            self.activity = activity
コード例 #23
0
    def __init__(self):
        super(GarageScene, self).__init__(SIZE)

        spyral.event.register('input.keyboard.down.esc', spyral.director.quit)
        spyral.event.register("system.quit", spyral.director.quit)

        self.background = spyral.Image("images/Background.png")

        CarGarage = Garage(self)
        CarGarage.pos = ((WIDTH / 2), (HEIGHT / 2) - 100)

        #Creates a back button to go back to the Main Menu
        class RegisterForm(spyral.Form):
            BackButton = spyral.widgets.Button("Go Back")

        self.my_form = RegisterForm(self)

        self.my_form.focus()
        self.my_form.BackButton.pos = ((WIDTH / 2) - 50, (HEIGHT / 2) + 300)

        spyral.event.register("form.RegisterForm.BackButton.clicked",
                              self.goToMenu)
コード例 #24
0
    def __init__(self, SIZE, player):
        spyral.Scene.__init__(self, SIZE)
        self.background = spyral.Image(size=self.size).fill((255, 255, 255))

        if player:
            self.player = Carrito(self, player)
            self.player.pos = spyral.Vec2D(self.width / 2, self.height / 3)
            self.player.vel = 0
            self.player.scale = 3
            self.interruptores = []

            if player == 1:
                texto = "gana rojo"
            elif player == 2:
                texto = "gana verde"
            self.nota = spyral.Sprite(self)
            self.nota.image = spyral.Font("fonts/SFDigitalReadout-Medium.ttf",
                                          105).render(texto)
            self.nota.anchor = "center"
            self.nota.pos = spyral.Vec2D(self.width / 2, 2 * self.height / 3)

        else:
            self.player = spyral.Sprite(self)
            self.player.image = spyral.Font(
                "fonts/SFDigitalReadout-Medium.ttf",
                55).render("no hay consenso")
            self.player.anchor = "center"
            self.player.pos = spyral.Vec2D(self.size) / 2

        self.aplauso = pygame.mixer.Sound('sounds/applause.wav')
        self.aplauso.play()

        anim = spyral.Animation("scale", spyral.easing.Sine(1), shift=2)
        self.player.animate(anim + anim + anim + anim + anim)

        spyral.event.register("Sprite.scale.animation.end", self.continuar)
        spyral.event.register("Carrito.scale.animation.end", self.continuar)
        spyral.event.register("system.quit", spyral.director.pop)
コード例 #25
0
    def __init__(self, scene, texto, callback):
        spyral.Sprite.__init__(self, scene)

        self.anchor = 'center'
        self.pos = spyral.Vec2D(scene.size) / 2
        self.margen = 5
        self.layer = "primer"

        self.image = spyral.Image(filename=gamedir("images/Menu_1.png"))
        #self.image.draw_rect(color=(128,128,128),
        #        position=(0,0), size=(self.height,self.width))

        font_path = gamedir("../fonts/DejaVuSans.ttf")
        self.font = spyral.Font(font_path, 28, (0, 0, 0))
        self.line_height = self.font.linesize

        nueva = self.set_text(texto)
        self.image.draw_image(nueva,
            position=(self.margen / 2, -17), anchor="midleft")

        spyral.event.register("input.mouse.down.left", callback)
        spyral.event.register("input.keyboard.down.return", self.goplay)
        spyral.event.register("input.keyboard.down.y", self.goplay)
コード例 #26
0
    def __init__(self):
        Scene.__init__(self)
        self.camera = self.parent_camera.make_child(SIZE)
        self.group = spyral.Group(self.camera)

        self.font = pygame.font.SysFont(None, FONT_SIZE)

        self.head = Sprite(self.group)
        self.head.image = spyral.Image(filename=OVEN)
        self.head.x = 200
        self.head.y = 100

        instructions = TextSprite(self.group, self.font)
        instructions.anchor = 'midbottom'
        instructions.x = 320
        instructions.y = 470
        instructions.render("s: taste")

        self.heading = TextSprite(self.group, self.font)
        self.heading.anchor = 'midbottom'
        self.heading.x = 330
        self.heading.y = 50
        self.heading.render("BAKING")
コード例 #27
0
    def __init__(self, topic=topic_dir, fake_gtk=False, gameview=False):
        spyral.Scene.__init__(self, SIZE)

        reset_vocabulario()

        self.T = TimeMaster(self)
        self.layers = ["abajo", "arriba", "primer"]
        self.puntos = 0

        #img = spyral.Image(filename=gamedir(
        #    "imagenes/Crux-20100220.jpg")).scale(self.scene.size)
        img = spyral.Image(size=(700, 700))

        #n = pygame.Surface.convert_alpha(img._surf)
        #n.fill((64, 0, 0, 127))
        #img._surf.blit(n, (0, 0))

        self.background = img

        self.nave = Nave(self, topic)
        self.campo = CampodeEstrellas(self)
        self.label = Dialogo(self, "WORD", transparent=True)
        self.label.visible = False
        self.label.layer = "primer"

        self.intro0()

        spyral.event.register("system.quit", spyral.director.pop, scene=self)

        pygame.mixer.music.load(gamedir('musica/ObservingTheStar.ogg'))
        pygame.mixer.music.play(-1)

        if gameview:
            Escena.gameview = gameview

        if fake_gtk:
            spyral.event.register("director.update", self.gtk_main_iteration)
コード例 #28
0
    def __init__(self, *args, **kwargs):
        super(Pong, self).__init__(*args, **kwargs)

        self.camera = self.parent_camera.make_child(virtual_size=(WIDTH,
                                                                  HEIGHT))

        paddle_image = spyral.Image(size=(20, 300))
        paddle_image.fill((255, 255, 255))

        # We want to make sure we keep the paddles around, since we'll
        # work with them for motion and collision detection
        self.left_paddle = spyral.Sprite()
        self.left_paddle.image = paddle_image
        # This anchor means that the x and y coordinates we assign are
        # relative to the middle left of the image.
        self.left_paddle.anchor = 'midleft'
        # We'll keep the paddle just slightly off of the wall
        self.left_paddle.x = 20
        # We'll have the paddle start out vertically centered
        self.left_paddle.y = HEIGHT / 2

        self.right_paddle = spyral.Sprite()
        self.right_paddle.image = paddle_image
        self.right_paddle.anchor = 'midright'
        self.right_paddle.x = WIDTH - 20
        self.right_paddle.y = HEIGHT / 2

        self.ball = Ball(self)

        # We have to give our camera to the group so it knows where to draw
        self.group = spyral.Group(self.camera)
        # We can add the sprites to the group
        self.group.add(self.left_paddle, self.right_paddle, self.ball)

        # We should track whether the paddles are moving up and down
        self.left_paddle.moving = False
        self.right_paddle.moving = False
コード例 #29
0
    def __init__(self, topic=topic_dir, gameview=False):

        spyral.Scene.__init__(self, SIZE)

        reset_vocabulario()
        self.topic = topic

        self.make_mapas()

        img = spyral.Image(
            filename=gamedir("imagenes/Fazenda_Colorada.jpg")).scale(
                self.scene.size)

        #n = pygame.Surface.convert_alpha(img._surf)
        #n.fill((64, 0, 0, 127))
        #img._surf.blit(n, (0, 0))

        self.background = img
        self.puntos = 0

        #self.tablero = Tablero(self, topic, mapa=self.mapas[Escena.n])
        self.titulo = Title(self)
        self.intro = Dialogo(
            self,
            "Devastated by ignorance, ancient forests have turned into deserts...",
            self.intro2)

        spyral.event.register("system.quit", spyral.director.pop, scene=self)
        spyral.event.register("Tablero.score", self.score)

        self.puntos = 0
        if gameview:
            Escena.gameview = gameview

        pygame.mixer.music.load(gamedir('musica/alien_ruins2.ogg'))
        pygame.mixer.music.play(-1)
コード例 #30
0
    def __init__(self,
                 form,
                 name,
                 width,
                 value='',
                 default_value=True,
                 text_length=None,
                 validator=None):
        self.box_width, self._box_height = 0, 0
        BaseWidget.__init__(self, form, name)

        self.layers = ["base", "content"]

        child_anchor = (self._padding, self._padding)
        self._back = spyral.Sprite(self)
        self._back.layer = "base"
        self._cursor = spyral.Sprite(self)
        self._cursor.anchor = child_anchor
        self._cursor.layer = "content:above"
        self._text = spyral.Sprite(self)
        self._text.pos = child_anchor
        self._text.layer = "content"

        self._focused = False
        self._cursor.visible = False
        self._selection_pos = 0
        self._selecting = False
        self._shift_was_down = False
        self._mouse_is_down = False

        self._cursor_time = 0.
        self._cursor_blink_interval = self._cursor_blink_interval

        self.default_value = default_value
        self._default_value_permanant = default_value

        self._view_x = 0
        self.box_width = width - 2 * self._padding
        self.text_length = text_length

        self._box_height = int(math.ceil(self.font.linesize))
        self._recalculate_mask()

        self._cursor.image = spyral.Image(size=(2, self._box_height))
        self._cursor.image.fill(self._cursor_color)

        if validator is None:
            self.validator = str(set(string.printable).difference("\n\t"))
        else:
            self.validator = validator

        if text_length is not None and len(value) < text_length:
            value = value[:text_length]
        self._value = None
        self.value = value

        self._render_backs()
        self._back.image = self._image_plain

        spyral.event.register("director.update",
                              self._update,
                              scene=self.scene)