예제 #1
0
    def __init__(self, **kwargs):
        """Initialize the rocket timer using values from settings"""
        config = getattr(settings, 'ROCKET', None)
        if config is None:
            config = {}

        self.mode = config.get('mode') or 'editor'
        self.files = config.get('files') or './tracks'
        self.project = config.get('project') or 'project.xml'
        self.start_paused = False

        self.controller = TimeController(config.get('rps', 24))
        if self.mode == 'editor':
            self.rocket = Rocket.from_socket(self.controller,
                                             track_path=self.files)
            self.start_paused = True
        elif self.mode == 'project':
            self.rocket = Rocket.from_project_file(self.controller,
                                                   self.project)
        elif self.mode == 'files':
            self.rocket = Rocket.from_files(self.controller, self.files)
        else:
            raise ValueError("Unknown rocket mode: '{}'".format(self.mode))

        # Register tracks in the editor
        # Ninja in pre-created track objects
        for track in tracks.tacks:
            self.rocket.tracks.add(track)

        # Tell the editor about these tracks
        for track in tracks.tacks:
            self.rocket.track(track.name)

        self.rocket.update()
        super().__init__(**kwargs)
예제 #2
0
def main():
    controller = TimeController(24)
    rocket = Rocket.from_socket(controller,
                                track_path="./data",
                                log_level=logging.ERROR)
    # rocket = Rocket.from_project_file(controller, 'example.xml')
    # rocket = Rocket.from_files(controller, './data')

    rocket.track("underwater:cam.x")
    rocket.track("underwater:cam.y")
    t1 = rocket.track("cube:size")
    t2 = rocket.track("cube:zoom")

    rocket.start()

    # Fake draw loop
    frame = 0
    while True:
        try:
            rocket.update()
        except SocketConnError:
            print("Editor probably closed..")
            break

        # Get track values from rocket
        v1 = rocket.value("underwater:cam.x")
        v2 = rocket.value("underwater:cam.y")
        # Get track values from track
        v3 = t1.row_value(rocket.row)
        v4 = t2.row_value(rocket.row)

        time.sleep(1.0 / 1000 * 16)
        frame += 1

        if frame % 60 == 0:
            print("frame", frame, "time", rocket.time, "row", rocket.row,
                  "playing", controller.playing)
            print("values", v1, v2, v3, v4)