コード例 #1
0
class Sprite(Actor):

    def __init__(self):
        super(Sprite, self).__init__()
        self.sprite_state = Store()
        self.update_pos(400,300)
        self.pos = self.get_pos()
        print self.pos

    def get_pos(self, force=False):
        if (time.time() < self.sprite_state.last_update) or force:
            self.pos = self.sprite_state.export(["x", "y"])
        return self.pos

    # Threadsafe update of shareable state
    @retry
    def update_pos(self, x, y):
        repo = self.sprite_state.checkout()
        with repo.changeset("x","y") as c: # This can fail
            c["x"].set(x)
            c["y"].set(y)

        self.pos = self.get_pos(force=True)


    def render(self, surface, absolute=True): # Assume screen co-ordinates
        pass
コード例 #2
0
ファイル: pygame_example.py プロジェクト: samuell/guild
class Sprite(Actor):
    def __init__(self):
        super(Sprite, self).__init__()
        self.sprite_state = Store()
        self.update_pos(400, 300)
        self.pos = self.get_pos()
        print self.pos

    def get_pos(self, force=False):
        if (time.time() < self.sprite_state.last_update) or force:
            self.pos = self.sprite_state.export(["x", "y"])
        return self.pos

    # Threadsafe update of shareable state
    @retry
    def update_pos(self, x, y):
        repo = self.sprite_state.checkout()
        with repo.changeset("x", "y") as c:  # This can fail
            c["x"].set(x)
            c["y"].set(y)

        self.pos = self.get_pos(force=True)

    def render(self, surface, absolute=True):  # Assume screen co-ordinates
        pass