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
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