При отладке не всегда удобно выводить данные в консоль. Например, если имеется переменная, которая меняет значение каждый кадр, тем более если таких переменных несколько - разобраться в потоке данных, выливающемся в консоль становится проблемно. В этом случае разумно было бы использовать OnscreenText, однако для него надо писать дополнительно функции для форматирования данных, очистки и т.п. Разработчики панды позаботились об этой мелочи за нас - при импорте DirectStart создатся глобальная переменная onScreenDebug. Для включения вывода надо написать onScreenDebug.enabled = True После этого можно выводить в отладку либо информацию привязанную к ключу onScreenDebug.add('position', myNodePath.getPos()), либо просто текст onScreenDebug.append("Hello World!"). Замечу, что значение ключей сохраняется, даже если их не обновлять, а вот текст, добавленный с помощью append стирается, так что его необходимо обновлять каждый кадр. Для тех, кому не нравится расцветка/размер/положение и т.п. - у onScreenDebug есть свойство onScreenText, которое, собственно и является экземпляром OnscreenText. Соответственно, можно менять его свойства стандартным для него способом - например: onScreenDebug.onScreenText['bg'] = (0,0,0,0.3) onScreenDebug.onScreenText['fg'] = (0,1,0,0.8) только перед этим нужно вызвать метод onScreenDebug.load(), иначе может оказаться, что onScreenText ещё не инициализирован, т.е. имеет значение None. Другой вариант управлять свойствами onScreenDebug - прописать их в config.prc. Возможные свойства: on-screen-debug-enabled on-screen-debug-font on-screen-debug-font-scale on-screen-debug-fg-color on-screen-debug-bg-color on-screen-debug-fg-alpha on-screen-debug-bg-alpha Символ между ключом и значением может быть ~ либо =. Первый вариант - старое значение, второй вариант - значение обновлено в текущем кадре.
|