Хм, вроде ясно прежде сделать функцию по печатанию сообщений. Их разумеется где-то нужно разместить, я предлагаю использовать список как буфер порядка.
Код
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from panda3d.core import TextNode
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
font = loader.loadFont('Xarrovv.ttf')
taskMgr.doMethodLater(2, self.my_print, 'MyTaskName')
self.list_message = ["Привет", "Ход игрока", "Нанесен урон", "Ошибка"]
self.text = TextNode('Info')
self.text.setFont(font)
self.text.setAlign(TextNode.ACenter)
self.text.setText("")
textNodePath = aspect2d.attachNewNode(self.text)
textNodePath.setScale(0.2)
self.accept('space', self.add_message)
self.n = 0
def add_message(self):
self.list_message.append("Пример "+str(self.n))
self.n += 1
def my_print(self, task):
if len(self.list_message) > 0:
self.text.setText(self.list_message[0])
del self.list_message[0]
# Ниже можно реализовать эффект исчезания и так далее.
else:
self.text.setText("Сообщений нет")
return task.again
app = MyApp()
app.run()
Теперь если программно добавить текст нажав на пробел в список self.list_message добавиться текст с порядковым номером, то функция его выведет.
Add. Обновил код