2016-07-27 2 views
0

Я пытаюсь написать программу panda3d без окон, как выделенный сервер. И я не знаю, как использовать panda3d без создания каких-либо графических материалов.с использованием panda3d без графического содержимого в C++?

Я попытался это:

load_prc_file_data("", "window-type none"); // do not effect. 
load_prc_file_data("", "window-type offscreen"); // cause errors while running PandaFramework::open_window(); 

На самом деле я отправил это на Panda3d Forums
И только один ответил сказал мне не делать PandaFramework::open_window(); Но в panda3d-cpp Я не знаю, как работать без WindowFramework, если честно, я даже не знаю, работает ли программа правильно.

В настоящее время с помощью: Panda3d1.9.2 Qt5.7.0 MSVC2015 Windows10SDK

Полное ядро ​​.pro файла:

TEMPLATE = app 
CONFIG += console c++11 
CONFIG -= app_bundle 
CONFIG -= qt 
SOURCES += main.cpp 
INCLUDEPATH += "G:/Panda3D-1.9.2/include" 
INCLUDEPATH += "G:/Panda3D-1.9.2/python/include" 
LIBS += "G:/Panda3D-1.9.2/python/libs/python27.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libp3framework.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libpanda.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libpandafx.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libpandaexpress.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libp3dtool.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libp3dtoolconfig.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libp3pystub.lib" 
LIBS += "G:/Panda3D-1.9.2/lib/libp3direct.lib" 

Полное ядро ​​.cpp файла:

#include <pandaFramework.h> 
#include <pandaSystem.h> 
#include <load_prc_file.h> 
int main(int argc, char *argv[]) 
{ 
    PandaFramework pFramework; 
    pFramework.open_framework(argc, argv); 
    load_prc_file_data("", "window-type offscreen"); // cause errors 
    WindowFramework *pWindow = pFramework.open_window(); 
    pFramework.main_loop(); 
    pFramework.close_framework(); 
    return 0; 
} 

Может ли кто-нибудь помочь мне в этом?

+0

Это поможет, если вы напишете часть своего кода, который вы хотите запустить в этом примере. вы хотите, чтобы это привело к событиям? Вы хотите, чтобы он был простым и выполнял некоторые расчеты, когда это возможно? – Jonathan

+0

Вместо WindowFramework, не следует ли использовать GraphicsBuffer? – wasthishelpful

+0

@ Джонатан, я просто начинающий Panda3d и хочу знать, могу ли я использовать Panda3D в играх с архитектурой клиент/сервер. –

ответ

0

Это довольно просто: если вы не хотите открывать окно, не вызывайте open_window. Вы по-прежнему будете иметь доступ к AsyncTaskManager::get_global_ptr() для планирования задач, к Loader для загрузки моделей, и вы можете создать граф сцены, просто не создавая NodePath(new PandaNode("root")) и присоединение объектов к нему и т.д.

.prc переменная window-type не имеет эффект в PandaFramework, так как создание окна - это явная операция.

Смежные вопросы