Example #1
0
def test_extending_all_events():
    def all_extension(event):
        event.test_value = "pursuedpybear"

    @dataclasses.dataclass
    class TestEvent:
        pass

    class TestScene(BaseScene):
        def on_update(self, event, signal):
            assert event.test_value == "pursuedpybear"

        def on_mouse_motion(self, event, signal):
            assert event.test_value == "pursuedpybear"

        def on_test_event(self, event, signal):
            assert event.test_value == "pursuedpybear"

    ge = GameEngine(TestScene)
    ge.start()  # We need test scene instantiated.
    ge.register(..., all_extension)

    ge.signal(events.Update(0.01))
    ge.publish()

    ge.signal(events.MouseMotion(Vector(0, 0), Vector(0, 0), Vector(0, 1), []))
    ge.publish()

    ge.signal(TestEvent())
    ge.publish()
Example #2
0
 def activate(self, engine):
     if self.last_tick is None:
         self.last_tick = time.time()
     this_tick = time.time()
     self.accumulated_time += this_tick - self.last_tick
     self.last_tick = this_tick
     while self.accumulated_time >= self.time_step:
         self.accumulated_time += -self.time_step
         yield events.Update(self.time_step)
Example #3
0
 def on_idle(self, idle_event: events.Idle, signal):
     if self.last_tick is None:
         self.last_tick = time.monotonic()
     this_tick = time.monotonic()
     self.accumulated_time += this_tick - self.last_tick
     self.last_tick = this_tick
     while self.accumulated_time >= self.time_step:
         # This might need to change for the Idle event system to signal _only_ once per idle event.
         self.accumulated_time += -self.time_step
         signal(events.Update(self.time_step))
def test_collider_on_update(basic_collider: Collider, scene: BaseScene,
                            expected):
    basic_collider.set_running(scene)

    basic_collider.on_update(events.Update(0.15, scene), lambda x: None)
    assert basic_collider.primed == expected