Beispiel #1
0
    def _check_render(self):
        if self.frameRate > 0:
            now = time.time()
            if now >= (self._last_render + self._frame_period):
                self._last_render = now

                if _core._request_render:
                    _core._request_render()
                else:
                    self._render(True)
Beispiel #2
0
    def __init__(self):
        DisplayObjectContainer.__init__(self, "Stage")
        _core._set_event_handler(self._process_stage_event)

        self._mouse_over_objects = []
        self._focus_over_objects = []
        self.active = True

        self._invalid = False
        self._last_render = 0.0
        self._last_down = [None, None, None]
        self._last_click_time = 0.0
        self._touch_info = {}
        self._joy_axis_data = {}
        self._drag_bounds = None
        self._frame_rate = 0
        self._frame_period = 0

        self._drag_object = None
        self._drag_offset_x = 0.0
        self._drag_offset_y = 0.0

        self.frameRate = 100

        if _core._request_render:
            _core._request_render()

        self._event_map = {
            _core.etKeyDown:
                lambda event:
                    self._on_key(event, KeyboardEvent.KEY_DOWN),

            _core.etKeyUp:
                lambda event:
                    self._on_key(event, KeyboardEvent.KEY_UP),

            _core.etMouseMove:
                lambda event:
                    self._on_mouse(event, MouseEvent.MOUSE_MOVE, True),

            _core.etMouseDown:
                lambda event:
                    self._on_mouse(event, MouseEvent.MOUSE_DOWN, True),

            _core.etMouseUp:
                lambda event:
                    self._on_mouse(event, MouseEvent.MOUSE_UP, True),

            _core.etMouseClick:
                lambda event:
                    self._on_mouse(event, MouseEvent.CLICK, True),

            _core.etResize:
                lambda event:
                    self._on_resize(),

            _core.etPoll:
                lambda event:
                    self._poll_timers(),

            _core.etQuit:
                lambda event:
                    self._on_quit(),

            _core.etFocus:
                self._on_focus,

            _core.etShouldRotate:
                self._should_rotate,

            _core.etDestroyHandler:
                lambda event: None,

            _core.etRedraw:
                lambda event:
                    self._render(True),

            _core.etTouchBegin:
                self._on_touch_begin,

            _core.etTouchMove:
                self._on_touch_move,

            _core.etTouchEnd:
                self._on_touch_end,

            _core.etChange:
                self._on_change,

            _core.etActivate:
                lambda event:
                    self._set_active(True),

            _core.etDeactivate:
                lambda event:
                    self._set_active(False),

            _core.etGotInputFocus:
                lambda event:
                    self._on_got_input_focus(),

            _core.etLostInputFocus:
                lambda event:
                    self._on_lost_input_focus(),

            _core.etJoyAxisMove:
                lambda event:
                    self._on_joystick(event, 0),

            _core.etJoyBallMove:
                lambda event:
                    self._on_joystick(event, 0),

            _core.etJoyHatMove:
                lambda event:
                    self._on_joystick(event, 0),

            _core.etJoyButtonDown:
                lambda event:
                    self._on_joystick(event, 0),

            _core.etJoyButtonUp:
                lambda event:
                    self._on_joystick(event, 0),
        }