def add_node(self): node = Node(self) id = "new_node" ctr = 1 while self.get_node(id) != None: id = "new_node({0})".format(ctr) ctr += 1 node.id(id) self.nodes.append(node) pub.sendMessage("node_added", {"node": node}) return node
def Next(self): self.CurrentLevel += 1 if self.CurrentLevel < len(self.Levels): self.Level = self.Levels[self.CurrentLevel](self.Window) self.Level.Number = self.CurrentLevel + 1 # Use 1-based here. Publisher.sendMessage("level.started", self.Level) self.PlayedLevels.append(self.Level) else: self.Level = None Publisher.sendMessage("game.over", self.PlayedLevels) pyglet.media.load(data.filepath("sound/start1.wav"), streaming=False).play()
def onkeypress(self, message): key = int(message.topic[-1]) if key == pyglet.window.key.DOWN: if self.currentSelection < len(self.labels)-1: self.currentSelection += 1 elif key == pyglet.window.key.UP: if self.currentSelection > 0: self.currentSelection -= 1 elif key in (pyglet.window.key.ENTER, pyglet.window.key.RETURN): action = ("new", "exit")[self.currentSelection] Publisher.sendMessage("game.%s" % action) self.menuBullet.y = self.ypositions[self.currentSelection] self.highlight(self.currentSelection)
def tick(self, dt): if self.State == "FADEIN": self.Opacity += dt / self.FadeTime * 255 if self.Opacity >= 255: self.Opacity = 255 self.State = "COUNTING" self.setOpacity() elif self.State == "COUNTING": self.Timeout -= dt if self.Timeout <= 0: self.State = "FADEOUT" elif self.State == "FADEOUT": self.Opacity -= dt / self.FadeTime * 255 if self.Opacity <= 0: self.stop() Publisher.sendMessage("instruction.complete", self) self.setOpacity()
def tick(self, dt): tipped = self.Teeter.tick(dt) if tipped: Publisher.sendMessage("level.ended", self) self.Pipe.tick(dt) for obj in self.CurrentObjects: obj.tick(dt) # Did the object fall off the screen? if obj.y < 0: # Oh no, the level is lost! self.CurrentObjects = [] self.Won = False Publisher.sendMessage("level.ended", self) elif self.Teeter.intersects(obj): self.LandPlayer.play() self.Teeter.hold(obj) self.CurrentObjects.remove(obj) if self.NextObjectInQueue == self.NullObject and not self.CurrentObjects: self.Won = True Publisher.sendMessage("level.ended", self) if self.Instruction: self.Instruction.tick(dt)
def doSomething2(): print '--- SENDING topic2 message ---' pub.sendMessage('topic2', 123) print '---- SENT topic2 message ----'
def doSomething1(): print '--- SENDING topic1 message ---' pub.sendMessage('topic1', 'message1') print '---- SENT topic1 message ----'
def on_mouse_press(self, x, y, button, mods): if button == pyglet.window.mouse.LEFT: Publisher.sendMessage("click.left")
def on_key_press(self, symbol, modifiers): Publisher.sendMessage("keypress.%s" % symbol, modifiers)
def remove_node(self, node): if not node is None: self.nodes.remove(node) pub.sendMessage("node_removed", {"node": node})
def on_change(self, key): if self.loaded: self.network.save() pub.sendMessage("node_changed", {"node": self, "key": key})