示例#1
0
文件: ChatBox.py 项目: czorn/Modifire
 def AddMessage(self, prefix, prefixColor, message):
     parent = self.displayFrame.attachNewNode('messageParent')
     
     prefixTextNode = TextNode('prefixMessage')
     prefixTextNode.setText(prefix)
     prefixTextNode.setTextColor(prefixColor)
     prefixTextNode.setShadow(0.05, 0.05)
     prefixTextNode.setShadowColor(Globals.COLOR_BLACK)
     prefixTextNodePath = parent.attachNewNode(prefixTextNode)
     prefixTextNodePath.setScale(Settings.CHAT_HEIGHT)
     
     messageTextNode = TextNode('prefixMessage')
     messageTextNode.setText(message)
     messageTextNode.setTextColor(1, 1, 1, 1)
     messageTextNode.setShadow(0.05, 0.05)
     messageTextNode.setShadowColor(Globals.COLOR_BLACK)
     messageTextNodePath = parent.attachNewNode(messageTextNode)
     messageTextNodePath.setScale(Settings.CHAT_HEIGHT)
     messageTextNodePath.setPos(Vec3(prefixTextNode.calcWidth(prefix) * Settings.CHAT_HEIGHT, 0, 0))
     
     taskMgr.remove('HideMessageLog')
     taskMgr.doMethodLater(ChatBox.MESSAGE_LIFE, self.HideMessageLog, 'HideMessageLog') 
     self.ShowMessageLog()
     
     self.textNodes.append(parent)
     
     if(len(self.textNodes) > ChatBox.MAX_NUM_MESSAGES):
         self.RemoveMessage(self.textNodes[0])
         
     self.RedrawMessages()
示例#2
0
 def AddMessage(self, victimName, attackerName, itemName, attackerColor = Globals.COLOR_WHITE, victimColor = Globals.COLOR_WHITE):
     parent = self.displayFrame.attachNewNode('messageParent')
     
     attackerTextNode = TextNode('attackerTextNode')
     attackerTextNode.setText(attackerName)
     attackerTextNode.setTextColor(attackerColor)
     attackerTextNode.setShadow(0.05, 0.05)
     attackerTextNode.setShadowColor(Globals.COLOR_BLACK)
     attackerTextNodePath = parent.attachNewNode(attackerTextNode)
     attackerTextNodePath.setScale(Settings.CHAT_HEIGHT)
     attackerTextNodePath.setPos(Vec3(-attackerTextNode.calcWidth('%s [%s] %s' % (attackerName, itemName, victimName)) * Settings.CHAT_HEIGHT, 0, 0))
     
     itemNameTextNode = TextNode('itemNameTextNode')
     itemNameTextNode.setText('[%s]' % (itemName))
     itemNameTextNode.setTextColor(Globals.COLOR_WHITE)
     itemNameTextNode.setShadow(0.05, 0.05)
     itemNameTextNode.setShadowColor(Globals.COLOR_BLACK)
     itemNameTextNodePath = parent.attachNewNode(itemNameTextNode)
     itemNameTextNodePath.setScale(Settings.CHAT_HEIGHT)
     itemNameTextNodePath.setPos(Vec3(-attackerTextNode.calcWidth('[%s] %s' % (itemName, victimName)) * Settings.CHAT_HEIGHT, 0, 0))
     
     victimTextNode = TextNode('prefixMessage')
     victimTextNode.setText(victimName)
     victimTextNode.setTextColor(victimColor)
     victimTextNode.setShadow(0.05, 0.05)
     victimTextNode.setShadowColor(Globals.COLOR_BLACK)
     victimTextNodePath = parent.attachNewNode(victimTextNode)
     victimTextNodePath.setScale(Settings.CHAT_HEIGHT)
     victimTextNodePath.setPos(Vec3(-attackerTextNode.calcWidth(victimName) * Settings.CHAT_HEIGHT, 0, 0))
     
     taskMgr.remove('HideMessageLog')
     taskMgr.doMethodLater(DeathNotifications.MESSAGE_LIFE, self.RemoveMessage, 'RemoveMessage', extraArgs = [parent]) 
             
     self.textNodes.append(parent)
     
     if(len(self.textNodes) > DeathNotifications.MAX_NUM_MESSAGES):
         self.RemoveMessage(self.textNodes[0])
         
     self.RedrawMessages()