Beispiel #1
0
def main():
    # Create the main window
    window = Window(800, 600, visible=False,
                   caption="FF:Tactics.py", style='dialog')
    # Create the default camera and have it always updating
    camera = Camera((-600, -300, 1400, 600), (400, 300), 300, speed=PEPPY)
    clock.schedule(camera.update)

    # Load the first scene
    world = World(window, camera)
    world.transition(MainMenuScene)

    # centre the window on whichever screen it is currently on
    window.set_location(window.screen.width/2 - window.width/2,
                        window.screen.height/2 - window.height/2)
    # clear and flip the window
    # otherwise we see junk in the buffer before the first frame
    window.clear()
    window.flip()

    # make the window visible at last
    window.set_visible(True)

    # finally, run the application
    pyglet.app.run()
Beispiel #2
0
    def __init__(self, window, player, console):
        self.keys = key.KeyStateHandler()
        self.player = player
        
        # Console
        self.console = console        
        
        # States
        self.states = {}
        self.states[wireframe] = False
        self.states[flight] = False   

        self.mouse_speed = 0.0014     
        
        # Key Press Events
        self.keyPressEvents = {}
        
        clock.schedule(self.update)
                
        window.push_handlers(self.on_key_press)
        window.push_handlers(self.on_key_release)
        window.push_handlers(self.keys)
        window.push_handlers(self.on_mouse_motion)
        window.push_handlers(self.on_mouse_drag)
        window.push_handlers(self.on_mouse_press)
        window.push_handlers(self.on_mouse_release)
Beispiel #3
0
def main():
    global win
    clock.schedule(rabbyt.add_time)

    win = Window(width=800, height=600)
    rabbyt.set_default_attribs()

    lawn = Lawn()
    wind = Wind()

    magicEventRegister(win, events, list(lawn))

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        lawn.update(tick)
        wind.update(tick)
        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))

        lawn.draw()

        win.flip()
Beispiel #4
0
def main():
    global win
    clock.schedule(rabbyt.add_time)

    win = pyglet.window.Window(width=leaves.SCREEN_WIDTH, height=leaves.SCREEN_HEIGHT)
    window.set_window(win)
    rabbyt.set_default_attribs()

    garbage = GarbageCan()

    leafs = leaves.LeafGroup()
    leafs += [leaves.Leaf(), leaves.Leaf(), leaves.Leaf() ]
    for i in range(len(leafs)):
        leafs[i].logicalX = 260 + i*80
        leafs[i].logicalY = 100 + i*60
        leafs[i].logicalZ = 10

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        leafs.update(tick)
        garbage.update(tick)
        
        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))

        leafs.draw()
        garbage.draw()

        win.flip()
Beispiel #5
0
 def on_key_release(self, symbol, modifiers):
     super().on_key_press(symbol, modifiers)
     if symbol == key.SPACE:
         if self.qr is None:
             self.init_all_reg()
             clock.schedule(self.tick)
     return
Beispiel #6
0
def main():
    # Create the main window
    window = Window(800,
                    600,
                    visible=False,
                    caption="FF:Tactics.py",
                    style='dialog')
    # Create the default camera and have it always updating
    camera = Camera((-600, -300, 1400, 600), (400, 300), 300, speed=PEPPY)
    clock.schedule(camera.update)

    # Load the first scene
    world = World(window, camera)
    world.transition(MainMenuScene)

    # centre the window on whichever screen it is currently on
    window.set_location(window.screen.width / 2 - window.width / 2,
                        window.screen.height / 2 - window.height / 2)
    # clear and flip the window
    # otherwise we see junk in the buffer before the first frame
    window.clear()
    window.flip()

    # make the window visible at last
    window.set_visible(True)

    # finally, run the application
    pyglet.app.run()
Beispiel #7
0
 def play(self):
     if self.playing: return
     clock.schedule(self.update)
     self.player.play()
     self.control.play.setVisible(False)
     self.control.pause.setVisible(True)
     self.playing = True
Beispiel #8
0
def main():
    clock.schedule(rabbyt.add_time)

    window.game_window = Window(width=SCREEN_WIDTH, height=SCREEN_HEIGHT)
    rabbyt.set_default_attribs()

    mower = Mower()
    bubble = RPMBubble()
    guage = Guage(mower)

    objs = [mower, guage, bubble]
    magicEventRegister(window.game_window, events, objs)

    while not window.game_window.has_exit:
        tick = clock.tick()
        window.game_window.dispatch_events()

        for obj in objs:
            obj.update(tick)
        
        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))

        guage.draw()
        mower.draw()
        bubble.draw()

        window.game_window.flip()
Beispiel #9
0
def main():
    global fps_display

    win = Window(width=800, height=600)

    clock.schedule(rabbyt.add_time)

    rabbyt.set_default_attribs()

    bg = Background()

    fps_display = clock.ClockDisplay()

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        bg.update(tick)

        rabbyt.clear((bg.color))

        bg.draw()
        fps_display.draw()

        win.flip()
Beispiel #10
0
 def __init__(self, obj, attr, target_value, rate=1.0):
     self.obj = obj
     self.attr = attr
     self.rate = rate
     self.target_value = target_value
     self.direction = 1 if target_value > getattr(obj, attr) else -1
     clock.schedule(self.update)
Beispiel #11
0
 def play(self):
     if self.playing: return
     clock.schedule(self.time_update)
     self.player.play()
     self.control.pause.setVisible(True)
     self.control.play.setVisible(False)
     self.playing = True
    def __init__(self):
        super(hello_visionseed, self).__init__()
        self.skipSync = False
        self.frame = None
        self.msg = None
        self.sprite = None
        self.label = cocos.text.Label('O',
                                      font_name='Time New Noman',
                                      font_size=32,
                                      anchor_x="center",
                                      anchor_y="center")
        self.label.position = (window_width / 2, window_height / 2)
        # self.add(self.label, z=100)

        self.mouth = []
        for i in range(2):
            mouth = cocos.sprite.Sprite('mouth%d.png' % i)
            mouth.position = (window_width / 2, window_height / 2)
            self.add(mouth, z=200)
            mouth.opacity = 0
            self.mouth.append(mouth)

        self.setDebugDrawing(1)

        clock.schedule(self.callback)
Beispiel #13
0
    def __init__(self, window, on_finished=None):
        global current_screen
        if current_screen:
            current_screen.end()
        current_screen = self

        handlers = {}
        global serial_number
        serial_number += 1
        self.serial_number = serial_number
        self.log("__init__.  large and in charge.")
        for k in dir(self):
            if k.startswith('on_'):
                handlers[k] = getattr(self, k)
        self.window = window
        self.on_finished = on_finished
        self.load()
        self.batch = pyglet.graphics.Batch()
        self.t = 0

        self.clock = clock.Clock(time_function=self._time)
        clock.schedule(self._tick)
        self.start()
        self.log(">>>> push handlers >>>>")
        window.push_handlers(**handlers)
Beispiel #14
0
    def __init__(self, object, tween='linear', duration=1, on_finished=None,
                clock=None,
                 **targets):
        self.targets = targets
        self.function = TWEEN_FUNCTIONS[tween]
        self.duration = duration
        self.on_finished = on_finished
        self.t = 0
        self.object = object
        self.initial = {}
        self.running = True
        for k in self.targets:
            try:
                a = getattr(object, k)
            except AttributeError:
                raise ValueError('object %r has no attribute %s to animate' % (object, k))
            self.initial[k] = a
            key = id(object), k
            previous_animation = self._animation_dict.get(key)
            if previous_animation is not None:
                previous_animation._remove_target(k)
            self._animation_dict[key] = self

        clock = clock or pyglet.clock
        clock.schedule(self.update)
        self.clock = clock
        self.animations.append(self)
Beispiel #15
0
def _schedule_callback(dt, func, *args, **kwargs):
    """
    Schedule a callback to occur every event loop.
    """
    # schedule it
    clock.schedule(func, *args, **kwargs)
    # call it
    func(dt, *args, **kwargs)
 def on_scene_enter(self):
     #glEnable(GL_POINT_SMOOTH)
     #glEnable(GL_TEXTURE_2D)
     self.player = Player()
     self.players = [self.player]
     self.dynamic.append(self.player)
     self.last_lead = self.player.position = self.campos = self.cam_spline.get_point(0)
     clock.schedule(self.update)
Beispiel #17
0
 def __init__(self, *args, **kwargs):
     clock.schedule(self.update)
     self.autoRun = False
     #self.autoRun = True
     self.translatex = self.translatey = 0
     self.rotx = 0
     self.depthtarget = self.depth = -7
     super(AppWindow, self).__init__(*args,**kwargs)
Beispiel #18
0
def _schedule_callback(dt, func, *args, **kwargs):
    """
    Schedule a callback to occur every event loop.
    """
    # schedule it
    clock.schedule(func, *args, **kwargs)
    # call it
    func(dt, *args, **kwargs)
	def start(self):
		# schedule update function to be called every frame
		# I need to add some sort of FPS setting here
		clock.schedule(self.update)

		# instantiate the main game instance
		# this will be changed to the menu instance when it's implemented
		gameState = Game(self)
		self.stateManager.addState('game', gameState)
		self.stateManager.setState('game')
Beispiel #20
0
	def __init__(self):
		config = gl.Config(sample_buffers=1, samples=4, depth_size=16, double_buffer=True)
		try:
			super(HypyrApp, self).__init__(resizable=True, config=config, vsync=False, width=800, height=600)
		except pyglet.window.NoSuchConfigException:
			super(HypyrApp, self).__init__(resizable=True)
		self.scene = scene.Thing()
		self.camera = scene.Camera()
		clock.schedule(self.update)
		self.setupOpenGL()
Beispiel #21
0
 def explode(self):
     explosion = ExplosionDrawable()
     schedule(explosion.timer)
     schedule_once(lambda x: unschedule(explosion.timer), 2.)
     schedule_once(lambda x: self._mesh.remove_drawable(explosion), 2.)
     explosion_animator = Explosion(self._mesh.all_faces)
     self._mesh.add_animation(explosion_animator.animate)
     schedule_once(lambda x: explosion_animator.expire(), 6.)
     self._mesh.add_drawable(explosion)
     self._mesh.set_double_sided(True)
Beispiel #22
0
    def __init__(self):

        self.init_window()

        self.world = World()
        self.bot = Bot(SimpleController())
        self.bot.position = self.world.size * 0.5
        self.world.add_bot(self.bot)

        clock.schedule(self.update)
Beispiel #23
0
def main():
    window = pyglet.window.Window(width=400, height=400)

    model = Model()
    view = View(model, window)

    clock.schedule_interval(model.update, 0.001)
    clock.schedule(view.render)

    pyglet.app.run()
Beispiel #24
0
    def __init__(self, parent, file=None, source=None, playing=False,
                 x=0, y=0, z=0, width=None, height=None, scale=True, **kw):
        self.parent = parent
        self.scale = scale

        if file is not None:
            source = self.source = media.load(file, streaming=True)
        else:
            assert source is not None, 'one of file or source is required'

        self.player = media.Player()
        self.player.eos_action = self.player.EOS_PAUSE
        self.player.on_eos = self.on_eos

        # poke at the video format
        if not source.video_format:
            raise ValueError("Movie file doesn't contain video")
        video_format = source.video_format
        if width is None:
            width = video_format.width
            if video_format.sample_aspect > 1:
                width *= video_format.sample_aspect
        if height is None:
            height = video_format.height
            if video_format.sample_aspect < 1:
                height /= video_format.sample_aspect

        super().__init__(parent, x, y, z, width, height, **kw)

        # control frame top-level
        c = self.control = Frame(self, bgcolor=(1, 1, 1, .5),
                                 is_visible=False, width='100%', height=64)

        # controls underlay
        f = Frame(c, is_transparent=True, width='100%', height='100%')
        f.layout = layouts.Horizontal(f, valign='center', halign='center',
                                      padding=10)
        c.play = Image(f, data.load_gui_image('media-play.png'),
                       classes=('-play-button',), is_visible=not playing)
        c.pause = Image(f, data.load_gui_image('media-pause.png'),
                        bgcolor=None, classes=('-pause-button',),
                        is_visible=playing)
        fi = Frame(f, is_transparent=True)
        c.range = Image(fi, data.load_gui_image('media-range.png'))
        im = data.load_gui_image('media-position.png')
        c.position = Image(fi, im, x=0, y=-2, classes=('-position',))
        c.time = Label(f, '00:00', font_size=20)
        c.anim = None

        # make sure we get at least one frame to display
        self.player.queue(source)
        clock.schedule(self.update)
        self.playing = False
        if playing:
            self.play()
Beispiel #25
0
 def start_stop_frames(self):
     if self.is_playing:
         clock.unschedule(self.call_draw)
         self.is_playing = False
         print('stopping frames!')
     else:
         clock.unschedule(self.call_draw)
         clock.schedule(self.call_draw)
         self.is_playing = True
         print('playing frames at ' + str(SPEED_ARR[self.curr_speed]) +
               'x speed')
    def test_schedule_multiple(self):
        clock.set_default(clock.Clock())
        clock.schedule(self.callback)
        clock.schedule(self.callback)
        self.callback_count = 0

        clock.tick()
        self.assertTrue(self.callback_count == 2)

        clock.tick()
        self.assertTrue(self.callback_count == 4)
Beispiel #27
0
def main():
	window = pyglet.window.Window(
		width=400, height=400
	)

	model = None
	view = View(model, window)

	#clock.schedule_interval(model.update, 0.001)
	clock.schedule(view.render)

	pyglet.app.run()
    def test_unschedule(self):
        clock.set_default(clock.Clock())
        clock.schedule(self.callback)

        result = clock.tick()
        self.assertTrue(result == self.callback_dt)
        self.callback_dt = None
        time.sleep(1)
        clock.unschedule(self.callback)

        result = clock.tick()
        self.assertTrue(self.callback_dt == None)
Beispiel #29
0
    def __init__(self, parent, file=None, source=None, title=None,
                 playing=False, bgcolor=(1, 1, 1, 1), color=(0, 0, 0, 1),
                 font_size=20, **kw):
        """Pass in a filename as "file" or a pyglet Source as "source".
        """
        self.parent = parent

        if file is not None:
            source = media.load(file, streaming=True)
        else:
            assert source is not None, 'one of file or source is required'

        self.player = media.Player()

        # poke at the audio format
        if not source.audio_format:
            raise ValueError("File doesn't contain audio")

        super().__init__(parent, bgcolor=bgcolor, **kw)

        # lay it out

        # control frame top-level
        c = self.control = Frame(self, width='100%', height=64)

        ft = Frame(c, is_transparent=True, width='100%', height='100%')
        ft.layout = layouts.Vertical(ft)
        Label(ft, title or 'unknown', color=color, bgcolor=bgcolor,
              padding=2, font_size=font_size)

        # controls underlay
        f = Frame(ft, is_transparent=True, width='100%', height='100%')
        f.layout = layouts.Horizontal(f, valign='center', halign='center',
                                      padding=10)
        c.play = Image(f, data.load_gui_image('media-play.png'),
                       classes=('-play-button',), is_visible=not playing)
        c.pause = Image(f, data.load_gui_image('media-pause.png'),
                        bgcolor=None, classes=('-pause-button',),
                        is_visible=playing)
        fi = Frame(f, is_transparent=True)
        c.range = Image(fi, data.load_gui_image('media-range.png'))
        c.position = Image(fi, data.load_gui_image('media-position.png'),
                           y=-2, classes=('-position',))
        c.time = Label(f, '00:00', font_size=20)
        c.anim = None

        # make sure we get at least one frame to display
        self.player.queue(source)
        clock.schedule(self.update)
        self.playing = False
        if playing:
            self.play()
Beispiel #30
0
 def start_game(self, controller, player_name = "Samus", host="localhost", game_name = "Deathtroid"):
   self.menu = None
   #self.init_gl()
   if controller == "server" or controller == "both":
     if self.server == None:
       self.server = server_controller.ServerController(game_name)
     #clock.schedule(self.server.update)
     clock.schedule_interval_soft(self.server.update, 1./30.)
   
   if controller == "client" or controller == "both":
     if self.client == None:
       self.client = client_controller.ClientController(player_name, host)
     clock.schedule(self.client.update)
Beispiel #31
0
    def __init__(self, parent, file=None, source=None, title=None,
            playing=False, bgcolor=(1, 1, 1, 1), color=(0, 0, 0, 1),
            font_size=20, **kw):
        '''Pass in a filename as "file" or a pyglet Source as "source".
        '''
        self.parent = parent

        if file is not None:
            source = media.load(file, streaming=True)
        else:
            assert source is not None, 'one of file or source is required'

        self.player = media.Player()

        # poke at the audio format
        if not source.audio_format:
            raise ValueError("File doesn't contain audio")

        super(Music, self).__init__(parent, bgcolor=bgcolor, **kw)

        # lay it out

        # control frame top-level
        c = self.control = Frame(self, width='100%', height=64)

        ft = Frame(c, is_transparent=True, width='100%', height='100%')
        ft.layout = layouts.Vertical(ft)
        Label(ft, title or 'unknown', color=color, bgcolor=bgcolor,
            padding=2, font_size=font_size)

        # controls underlay
        f = Frame(ft, is_transparent=True, width='100%', height='100%')
        f.layout = layouts.Horizontal(f, valign='center', halign='center',
            padding=10)
        c.play = Image(f, data.load_gui_image('media-play.png'),
            classes=('-play-button',), is_visible=not playing)
        c.pause = Image(f, data.load_gui_image('media-pause.png'),
            bgcolor=None, classes=('-pause-button',), is_visible=playing)
        fi = Frame(f, is_transparent=True)
        c.range = Image(fi, data.load_gui_image('media-range.png'))
        c.position = Image(fi, data.load_gui_image('media-position.png'),
            y=-2, classes=('-position',))
        c.time = Label(f, '00:00', font_size=20)
        c.anim = None

        # make sure we get at least one frame to display
        self.player.queue(source)
        clock.schedule(self.update)
        self.playing = False
        if playing:
            self.play()
Beispiel #32
0
 def start(self):
     def run():
         time_per_cycle = 1.0 / cycles_per_second
         while True:
             begin = time.time()
             self.cycle()
             sleep_time = time_per_cycle - (time.time() - begin)
             if sleep_time > 0:
                 time.sleep(sleep_time)
     td = Thread(target=run)
     td.daemon = True
     td.start()
     clock.schedule(self.on_draw)
     pyglet.app.run()
Beispiel #33
0
    def startup(self, win):
        self.add(Sky())
        self.add(Ground())
        self.add(StressTest())
        self.add(HudLives())
        self.add(HudScore())
        self.add(HudMultiplier())

        def update_and_refresh(win, dt):
            self.update(dt)
            win.invalid = True

        clock.schedule(lambda dt: update_and_refresh(win, dt))
        self.title()
Beispiel #34
0
Datei: run.py Projekt: msarch/py
def main():
    win = Window(fullscreen=True, visible=False)
    camera = Camera(win.width, win.height, (0, 0), 100)
    renderer = Renderer()
    maze = Maze()
    maze.create(50, 30, 300)
    keyboard = Keyboard()
    keyboard.key_handlers[key.ESCAPE] = win.close
    keyboard.key_handlers.update(camera.key_handlers)
    clock.schedule(maze.update)
    win.on_draw = lambda: renderer.on_draw(maze, camera, win.width, win.height)
    win.on_key_press = keyboard.on_key_press
    keyboard.print_handlers()
    win.set_visible()
    app.run()
Beispiel #35
0
    def __init__(self, window):
        if exists('saved.view'):
            data = load(open('saved.view'))
            self.rotation = Vector(data['rx'], data['ry'])
            self.position = Vector(data['x'], data['y'], data['z'])
        else:
            self.rotation = Vector()
            self.position = Vector(0, 0, -1)

        self.rotspeed = Vector()
        self.speed = Vector()
        self.keys = key.KeyStateHandler()
        self.navigator = Navigator()
        schedule(self.update)
        window.push_handlers(self.on_key_press)
Beispiel #36
0
Datei: run.py Projekt: msarch/py
def main():
    win = Window(fullscreen=True, visible=False)
    camera = Camera(win.width, win.height, (0, 0), 100)
    renderer = Renderer()
    maze = Maze()
    maze.create(50, 30, 300)
    keyboard = Keyboard()
    keyboard.key_handlers[key.ESCAPE] = win.close
    keyboard.key_handlers.update(camera.key_handlers)
    clock.schedule(maze.update)
    win.on_draw = lambda: renderer.on_draw(maze, camera, win.width, win.height)
    win.on_key_press = keyboard.on_key_press
    keyboard.print_handlers()
    win.set_visible()
    app.run()
Beispiel #37
0
    def __init__(self, window):
        if exists('saved.view'):
            data = load(open('saved.view'))
            self.rotation = Vector(data['rx'], data['ry'])
            self.position = Vector(data['x'], data['y'], data['z'])
        else:
            self.rotation = Vector()
            self.position = Vector(0, 0, -1)

        self.rotspeed = Vector()
        self.speed = Vector()
        self.keys = key.KeyStateHandler()
        self.navigator = Navigator()
        schedule(self.update)
        window.push_handlers(self.on_key_press)
Beispiel #38
0
def main():
    clock.schedule(rabbyt.add_time)

    window.game_window.set_window(Window(width=800, height=600))
    rabbyt.set_default_attribs()
    bgPat = pyglet.image.SolidColorImagePattern((0, 0, 0, 255))
    bg = pyglet.image.create(window.game_window.width, window.game_window.height, bgPat)

    bub = ThoughtBubble(
        "Click to make this disappear."
        " This is a thought bubble."
        " asdf asdf .qwer p30n fpin pp) ) *HNPO *H#NN ! #RFL"
    )

    bub2 = HintBubble("This is a hint bubble.")

    maker = BubbleMaker()

    magicEventRegister(window.game_window, events, [bub])

    counter = 0

    objects = [bub, bub2, maker]
    events.Fire("Shoo", 1, 2, None)

    while not window.game_window.has_exit:
        tick = clock.tick()
        window.game_window.dispatch_events()

        counter += tick
        if counter > 8:
            counter = -10
            events.Fire("NewThought", "new thought")
            events.Fire("Shoo", 3, 4, None)

        for obj in objects:
            obj.update(tick)

        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))
        bg.blit(0, 0)

        for obj in objects:
            obj.draw()

        window.game_window.flip()
Beispiel #39
0
def main():
    global win
    clock.schedule(rabbyt.add_time)

    win = pyglet.window.Window(width=SCREEN_WIDTH, height=SCREEN_HEIGHT)
    window.set_window(win)

    bgPat = pyglet.image.SolidColorImagePattern((200, 200, 255, 255))
    bg = pyglet.image.create(window.game_window.width, window.game_window.height, bgPat)

    rabbyt.set_default_attribs()
    bubbles.init()
    bubbles.win = win

    storyTeller = narrative.StoryTeller()

    fGen = FloaterGenerator()
    fGen.hitRequiredStage = True
    fGen.active = True
    sGen = SourcecodeGenerator()
    sGen.hitRequiredStage = True
    sGen.active = True

    events.Fire("NewStage", narrative.terror)

    scene = sky.Background(None)

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        bubbles.bubbleMaker.update(tick)
        scene.update(tick)
        fGen.update(tick)
        sGen.update(tick)

        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))
        bg.blit(0, 0)

        scene.draw()
        fGen.draw()
        bubbles.bubbleMaker.draw()
        sGen.draw()

        win.flip()
Beispiel #40
0
def play(level):
    view = FlatView.from_window(w, layers=[level, effectlayer, rocketlayer])

    # set rocket start
    for col in level.cells:
        for cell in col:
            if 'player-start' in cell.properties:
                rocket.midtop = cell.midtop

    clock.schedule(rocket.update)
    rocket.properties.update(dict(dx=0, dy=0, done=0))

    # run game
    while not (w.has_exit or rocket.properties['done']):
        dt = clock.tick()
        w.dispatch_events()
        view.fx, view.fy = rocket.center
        view.clear((.2, .2, .2, .2))
        view.draw()
        fps.draw()
        w.flip()

    # put up a message
    done = rocket.properties['done']
    if not done:
        return
    if done == 1:
        text = 'YAY YOU LANDED!'
    if done == 2:
        text = 'BOO YOU CRASHED!'
    text += '  (press [escape] to continue)'
    sprite = TextSprite(font, text, color=(1., 1., 1., 1.))
    sprite.x, sprite.y = w.width / 2 - sprite.width / \
        2, w.height / 2 - sprite.height / 2
    w.has_exit = False
    while not w.has_exit:
        dt = clock.tick()
        w.dispatch_events()
        view.clear((.2, .2, .2, .2))
        view.draw()
        sprite.draw()
        w.flip()

    clock.unschedule(rocket.update)
    if boom in effectlayer.sprites:
        effectlayer.sprites.remove(boom)
Beispiel #41
0
def play(level):
    view = FlatView.from_window(w, layers=[level, effectlayer, rocketlayer])

    # set rocket start
    for col in level.cells:
        for cell in col:
            if 'player-start' in cell.properties:
                rocket.midtop = cell.midtop

    clock.schedule(rocket.update)
    rocket.properties.update(dict(dx=0, dy=0, done=0))

    # run game
    while not (w.has_exit or rocket.properties['done']):
        dt = clock.tick()
        w.dispatch_events()
        view.fx, view.fy = rocket.center
        view.clear((.2, .2, .2, .2))
        view.draw()
        fps.draw()
        w.flip()

    # put up a message
    done = rocket.properties['done']
    if not done:
        return
    if done == 1:
        text = 'YAY YOU LANDED!'
    if done == 2:
        text = 'BOO YOU CRASHED!'
    text += '  (press [escape] to continue)'
    sprite = TextSprite(font, text, color=(1., 1., 1., 1.))
    sprite.x, sprite.y = w.width / 2 - sprite.width / \
        2, w.height / 2 - sprite.height / 2
    w.has_exit = False
    while not w.has_exit:
        dt = clock.tick()
        w.dispatch_events()
        view.clear((.2, .2, .2, .2))
        view.draw()
        sprite.draw()
        w.flip()

    clock.unschedule(rocket.update)
    if boom in effectlayer.sprites:
        effectlayer.sprites.remove(boom)
Beispiel #42
0
    def init(self, *args, **kwargs):
        # Setup a clock for frame rate
        clock.set_fps_limit(settings.FPS_LIMIT)
        # Setup updates to run once per tick
        if kwargs.get('noreset', True):
            clock.schedule(self.update)

        #---------------------------------------------------------
        # MENU.

        # set up a menu system. It is a hack.
        # don't let anyone else tell you otherwise.

        self.menubatch = pyglet.graphics.Batch()
        self.menugroup = pyglet.graphics.OrderedGroup(1)
        self.bggroup = pyglet.graphics.OrderedGroup(0)
        theme = kytten.Theme(fp('theme'))

        menu_choices = {
                'Play Game': self.remove_menu_load_level,
                'Help!'    : partial(show_help, self,
                                     self.menubatch, self.menugroup, theme),
                'Quit'     : pyglet.app.exit,
        }

        def on_select(choice):
            menu_choices.get(choice)()

        self.background = load(fp('background.png'))

        self.dialog = kytten.Dialog(
                kytten.TitleFrame("Altered Panda",
                    kytten.VerticalLayout([
                        kytten.Menu(options=[
                            "Play Game",
                            "Help!",
                            "Quit",],
                            on_select=on_select),
                    ])
                ),
                window=self, batch=self.menubatch,
                group=self.menugroup, anchor=kytten.ANCHOR_TOP_LEFT,
                theme=theme
        )
        self.do_draw = True
Beispiel #43
0
def main():
    clock.schedule(rabbyt.add_time)

    win = Window(width=800, height=600)
    rabbyt.set_default_attribs()

    lawn = NewLawn()

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        lawn.update(tick)

        rabbyt.clear((1, 1, 1))

        lawn.draw()

        win.flip()
Beispiel #44
0
def main():
    global win
    clock.schedule(rabbyt.add_time)

    win = pyglet.window.Window(width=SCREEN_WIDTH, height=SCREEN_HEIGHT)
    window.set_window(win)
    rabbyt.set_default_attribs()
    bubbles.init()
    bubbles.win = win

    storyTeller = narrative.StoryTeller()

    wind = Wind()
    leafgen = LeafGenerator()
    leafgen.active = True
    leaves = LeafGroup()

    #bg = sky.Background(None)

    objs = [leafgen, leaves]
    magicEventRegister(win, events, objs)

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        bubbles.bubbleMaker.update(tick)
        #bg.update(tick)
        for obj in objs:
            obj.update(tick)
        wind.update(tick)
        
        events.ConsumeEventQueue()

        rabbyt.clear((1, 1, 1))

        #bg.draw()
        leaves.draw()
        bubbles.bubbleMaker.draw()

        win.flip()
Beispiel #45
0
def main():
    clock.schedule(rabbyt.add_time)

    win = pyglet.window.Window(width=800, height=600)
    window.set_window(win)

    rabbyt.set_default_attribs()

    grill = Grill()

    while not win.has_exit:
        tick = clock.tick()
        win.dispatch_events()

        grill.update(tick)

        rabbyt.clear((1, 1, 1))

        grill.draw()

        win.flip()
 def on_scene_enter(self):
     clock.schedule(self.update)
     
     self.player = Player()
     self.players = [self.player]
     self.generate_level()
     
     # set up collision detection
     self.coll_detector = collision.CollisionDetector()
     
     # collisions between:
     # flock-player, player-bullets, player-objstacles, bulltets-obstacles, bullets-flock
     #self.coll_detector.register_once(self, group_name1, group_name2, group1, group2, coll_strategy, type_tuple, func):
     self.coll_detector.register_group('player', self.players)
     self.coll_detector.register_group('flocks', self.flocks)
     self.coll_detector.register_group('obstacles', self.obstacles)
     self.coll_detector.register_group('enemies', self.enemies)
     self.coll_detector.register_group('bullets', self.bullets)
     self.coll_detector.register_pair('player', 'flocks', PlayerFlockCollisionStrategy(self))
     self.coll_detector.register_pair('player', 'bullets', PlayerBulletsCollisionStrategy(self))
     self.coll_detector.register_pair('player', 'obstacles', PlayerObstaclesCollisionStrategy(self))
     self.coll_detector.register_pair('bullets', 'obstacles', BulletsObstaclesCollisionStrategy(self))
     self.coll_detector.register_pair('flocks', 'bullets', FlockBulletsCollisionStrategy(self))
     
     #self.coll_detector.register_once('player', 'flocks', self.players, self.flocks, PlayerFlockCollisionStrategy(self), tuple(), None):
     
     # enemy
     #scene, fire_rate, position, orientation)
     self.enemies.append( Enemy(self, 1, Vec3(300, 10), Vec3(0, 1) * 100.0) )
     self.enemies.append( Enemy(self, 0.1, Vec3(10, 200), Vec3(1, -0.1) * 300.0) )
     self.enemies.append( Enemy(self, 1, Vec3(500, 10), Vec3(0, 1) * 200) )
     
     p = Polygon()
     p.add_vertex(400, 400)
     p.add_vertex(550, 400)
     p.add_vertex(550, 420)
     p.add_vertex(400, 450)
     self.obstacles.append(p)
Beispiel #47
0
 def on_enter(self):
     super(VisionSeedLayer, self).on_enter()
     clock.schedule(self.callback)
        self.x += v.x
        self.y += v.y


w = pyglet.window.Window(width=512, height=512)
w.set_exclusive_mouse()

# load the map and car and set up the scene and view
dirname = os.path.dirname(__file__)
m = RectMap.load_xml(os.path.join(dirname, 'road-map.xml'), 'map0')
car = CarSprite.from_image(0, 0, Image2d.load(os.path.join(dirname,
                                                           'car.png')))
view = FlatView.from_window(w, layers=[m], sprites=[car])

keyboard = key.KeyStateHandler()
w.push_handlers(keyboard)

clock.set_fps_limit(30)
clock.schedule(car.update)
while not w.has_exit:
    dt = clock.tick()
    w.dispatch_events()

    # re-focus on the car
    view.fx, view.fy = car.center

    # draw
    view.draw()
    w.flip()
w.close()

def drawCube(x, y, z, size):
    cubeVL = pyglet.graphics.vertex_list(8, 'v3f', 'c3B')
    glPushMatrix()
    glLoadIdentity()
    glTranslatef(x, y, z)
    cubeVL.vertices = [
        -size, size, size, size, size, size, size, -size, size, -size, -size,
        size, -size, size, -size, size, size, -size, size, -size, -size, -size,
        -size, -size
    ]
    cubeVL.colors = np.repeat([255, 0, 0], 8)
    cubeVL.draw(pyglet.gl.GL_LINE_LOOP)
    glPopMatrix()


@win.event
def on_draw():
    global x
    x += 1
    win.clear()
    glLoadIdentity()
    glEnable(GL_DEPTH_TEST)
    drawCube(x, 0, 0, 50)


clock.schedule(on_draw)
pyglet.app.run()
evt.run()
Beispiel #50
0
Datei: run.py Projekt: msarch/py
win = Window(fullscreen=True, visible=False)
camera = Camera((0, 0), 10)
renderer = Renderer()

army_shape = Army.MakeShape(400, 1500, all_ghosts)
armies = []
for i in range(20, 0, -1):
    army = Creature(army_shape, rand_point(500), uniform(-pi, pi))
    army.dx = uniform(-0.4, +0.4)
    army.dy = uniform(-0.4, +0.4)
    armies.append(army)


def update(dt):
    for army in armies:
        army.update(dt)
    camera.zoom(1.003)


clock.schedule(update)

key_handlers[key.ESCAPE] = win.close
win.on_draw = lambda: renderer.on_draw(armies, camera, win.width, win.height)
win.on_key_press = on_key_press

print "keys to try:", [symbol_string(k) for k in key_handlers.keys()]
stdout.flush()
win.set_visible()
app.run()
Beispiel #51
0
 def __init__(self, world, pos, value, max_value=10):
     super().__init__(world, pos)
     self.create_particles(value, max_value)
     clock.schedule(self.update)
Beispiel #52
0
# load the sprites & level
dirname = os.path.dirname(__file__)
r = Resource.load(os.path.join(dirname, 'lander.xml'))
rocket = RocketSprite.from_image(0,
                                 0,
                                 r['rocket'],
                                 offset=(18, 0),
                                 properties=dict(dx=0, dy=0, done=0))
rocket.width = 92

frames = [r['flame%d' % i] for i in range(1, 7)]
flame = AnimatedSprite.from_image(0,
                                  0,
                                  frames[0],
                                  properties=dict(frame=0, t=0, frames=frames))
clock.schedule(flame.update)

frames = [r['boom%d' % i] for i in range(1, 4)]
boom = AnimatedSprite.from_image(0,
                                 0,
                                 frames[0],
                                 properties=dict(frame=0, t=0, frames=frames))
clock.schedule(boom.update)

fps = clock.ClockDisplay(color=(1., .5, .5, .5))

effectlayer = SpriteLayer(5)
rocketlayer = SpriteLayer(1, [rocket])


def play(level):
Beispiel #53
0
    def on_key_press(self, keyp, mod):
        if keyp in (key.ENTER,):
            # Dispatch an event rather than directly call self()
            flask_api.eventdispatcher.add_text("your lucky number is %d" % (randint(0, 255)))
        elif keyp in (key.Q,):
            director.terminate_app = True
        elif keyp in (key.B,):
            # Dispatch a local event, rather than a flask_api.eventdispatcher event
            localdispatcher.dispatch_event("on_change_bgcolor")
        elif keyp in (key.R,):
            self.on_reset()

    def ping(self):
        print 'sending pong!'
        flask_api.eventdispatcher.pong()

if __name__ == "__main__":
    # Register Event Handler
    http_server = flask_api.runWebController()
    if http_server:
        print "web api started successfully!"
    else:
        # TODO add exception handling
        print "unable to start web api"

    # Schedule clock to update the http poller
    clock.schedule(http_poller, http_server)

    # initiate the pyglet run loop
    director.run(cocos.scene.Scene(ForFunLayer()))
Beispiel #54
0
    def __init__(self,
                 parent,
                 file=None,
                 source=None,
                 playing=False,
                 x=0,
                 y=0,
                 z=0,
                 width=None,
                 height=None,
                 scale=True,
                 **kw):
        self.parent = parent
        self.scale = scale

        if file is not None:
            source = self.source = media.load(file, streaming=True)
        else:
            assert source is not None, 'one of file or source is required'

        self.player = media.Player()
        self.player.eos_action = self.player.EOS_PAUSE
        self.player.on_eos = self.on_eos

        # poke at the video format
        if not source.video_format:
            raise ValueError("Movie file doesn't contain video")
        video_format = source.video_format
        if width is None:
            width = video_format.width
            if video_format.sample_aspect > 1:
                width *= video_format.sample_aspect
        if height is None:
            height = video_format.height
            if video_format.sample_aspect < 1:
                height /= video_format.sample_aspect

        super().__init__(parent, x, y, z, width, height, **kw)

        # control frame top-level
        c = self.control = Frame(self,
                                 bgcolor=(1, 1, 1, .5),
                                 is_visible=False,
                                 width='100%',
                                 height=64)

        # controls underlay
        f = Frame(c, is_transparent=True, width='100%', height='100%')
        f.layout = layouts.Horizontal(f,
                                      valign='center',
                                      halign='center',
                                      padding=10)
        c.play = Image(f,
                       data.load_gui_image('media-play.png'),
                       classes=('-play-button', ),
                       is_visible=not playing)
        c.pause = Image(f,
                        data.load_gui_image('media-pause.png'),
                        bgcolor=None,
                        classes=('-pause-button', ),
                        is_visible=playing)
        fi = Frame(f, is_transparent=True)
        c.range = Image(fi, data.load_gui_image('media-range.png'))
        im = data.load_gui_image('media-position.png')
        c.position = Image(fi, im, x=0, y=-2, classes=('-position', ))
        c.time = Label(f, '00:00', font_size=20)
        c.anim = None

        # make sure we get at least one frame to display
        self.player.queue(source)
        clock.schedule(self.update)
        self.playing = False
        if playing:
            self.play()
def run(xml_file):
    gui = GUI(window)
    loadxml.fromFile(gui, xml_file)
    if '--dump' in sys.argv:
        print '-' * 75
        gui.dump()
        print '-' * 75

    window.push_handlers(gui)

    gui.push_handlers(dragndrop.DragHandler('.draggable'))

    @gui.select('#press-me')
    def on_click(widget, *args):
        print 'on_click', widget
        return event.EVENT_HANDLED

    @gui.select('#enable-other')
    def on_click(widget, *args):
        w = gui.get('#press-me')
        w.setEnabled(not w.isEnabled())
        return event.EVENT_HANDLED

    @gui.select('button, text-button')
    def on_click(widget, *args):
        print 'DEBUG', widget, 'PRESSED'
        return event.EVENT_UNHANDLED

    @gui.select('.show-value')
    def on_change(widget, value):
        print 'DEBUG', widget, 'VALUE CHANGED', ` value `
        return event.EVENT_UNHANDLED

    @gui.select('frame#menu-test', 'on_click')
    def on_menu(w, x, y, button, modifiers, click_count):
        if not widgets.PopupMenu.isActivatingClick(button, modifiers):
            return event.EVENT_UNHANDLED
        gui.get('#test-menu').expose((x, y))
        return event.EVENT_HANDLED

    @gui.select('.hover')
    def on_element_enter(widget, *args):
        print 'ENTER ELEMENT', widget.id
        return event.EVENT_HANDLED

    @gui.select('.hover')
    def on_element_leave(widget, *args):
        print 'LEAVE ELEMENT', widget.id
        return event.EVENT_HANDLED

    @gui.select('.drawer-control')
    def on_click(widget, *args):
        id = widget.id.replace('drawer-control', 'test-drawer')
        gui.get('#' + id).toggle_state()
        return event.EVENT_HANDLED

    @gui.select('#question-dialog-test')
    def on_click(widget, *args):
        def f(*args):
            print 'DIALOG SAYS', args

        dialogs.Question(widget.getGUI(),
                         'Did this appear correctly?',
                         callback=f).run()
        return event.EVENT_HANDLED

    @gui.select('#message-dialog-test')
    def on_click(widget, *args):
        def f(*args):
            print 'DIALOG SAYS', args

        dialogs.Message(widget.getGUI(), 'Hello, World!', callback=f).run()
        return event.EVENT_HANDLED

    @gui.select('#music-test')
    def on_click(widget, x, y, button, modifiers, click_count):
        if not button & mouse.RIGHT:
            return event.EVENT_UNHANDLED

        def load_music(file=None):
            if not file: return
            gui.get('#music-test').delete()
            m = widgets.Music(gui, file, id='music-test', playing=True)
            m.gainFocus()

        dialogs.FileOpen(gui, callback=load_music).run()
        return event.EVENT_HANDLED

    @gui.select('#movie-test')
    def on_click(widget, x, y, button, modifiers, click_count):
        if not button & mouse.RIGHT:
            return event.EVENT_UNHANDLED

        def load_movie(file=None):
            print 'DIALOG SELECTION:', file
            if not file: return
            gui.get('#movie-test').delete()
            m = widgets.Movie(gui, file, id='movie-test', playing=True)
            m.gainFocus()

        dialogs.FileOpen(gui, callback=load_movie).run()
        return event.EVENT_HANDLED

    @gui.select('#movie-test')
    def on_text(widget, text):
        if text == 'f':
            gui.get('#movie-test').video.pause()
            anim.Delayed(gui.get('#movie-test').video.play, duration=10)
            window.set_fullscreen()
        return event.EVENT_HANDLED

    @gui.select('.droppable')
    def on_drop(widget, x, y, button, modifiers, element):
        element.reparent(widget)
        widget.bgcolor = (1, 1, 1, 1)
        return event.EVENT_HANDLED

    @gui.select('.droppable')
    def on_drag_enter(widget, x, y, element):
        widget.bgcolor = (.8, 1, .8, 1)
        return event.EVENT_HANDLED

    @gui.select('.droppable')
    def on_drag_leave(widget, x, y, element):
        widget.bgcolor = (1, 1, 1, 1)
        return event.EVENT_HANDLED

    try:
        sample = gui.get('#xhtml-sample')
    except KeyError:
        sample = None
    if sample:

        @layout.select('#click-me')
        def on_mouse_press(element, x, y, button, modifiers):
            print 'CLICK ON', element
            return event.EVENT_HANDLED

        sample.label.push_handlers(on_mouse_press)

    if gui.has('.progress-me'):

        class Progress:
            progress = 0
            direction = 1

            def animate(self, dt):
                self.progress += dt * self.direction
                if self.progress > 5:
                    self.progress = 5
                    self.direction = -1
                elif self.progress < 0:
                    self.progress = 0
                    self.direction = 1
                for e in gui.get('.progress-me'):
                    e.value = self.progress / 5.

        animate_progress = Progress().animate
        clock.schedule(animate_progress)

    my_escape.has_exit = False
    while not (window.has_exit or my_escape.has_exit):
        clock.tick()
        window.dispatch_events()
        media.dispatch_events()

        glClearColor(.2, .2, .2, 1)
        glClear(GL_COLOR_BUFFER_BIT)
        gui.draw()
        fps.draw()
        window.flip()
        if '--once' in sys.argv:
            window.close()
            sys.exit()

    if '--dump' in sys.argv:
        print '-' * 75
        gui.dump()
        print '-' * 75

    if gui.has('.progress-me'):
        clock.unschedule(animate_progress)

    # reset everything
    window.pop_handlers()
    gui.delete()
    window.set_size(800, 600)

    return window.has_exit