// ---------------------------------------------------------------------------- void Editor::initAfterDataDirKnown() { m_rcs = RoadCrossSectionWndw::get(); // fonts IGUISkin* skin = m_gui_env->getSkin(); m_font = m_gui_env->getFont(m_data_loc + L"editor/font/font.xml"); skin->setFont(m_font); // removing gui transparency for (s32 i = 0; i < EGDC_COUNT; ++i) { video::SColor col = skin->getColor((EGUI_DEFAULT_COLOR)i); col.setAlpha(255); skin->setColor((EGUI_DEFAULT_COLOR)i, col); } // free camera ICameraSceneNode* cam; cam = m_scene_manager->addCameraSceneNodeMaya(); cam->setID(1); cam->setFarValue(20000.f); cam->setTarget(vector3df(0, 0, 0)); cam->setInputReceiverEnabled(false); // viewport init ICameraSceneNode* norm_cam; norm_cam = m_scene_manager->addCameraSceneNode(0, vector3df(25, 50, 30), vector3df(5, 10, 6)); norm_cam->setID(2); m_viewport = Viewport::get(norm_cam, &m_mouse, &m_keys); m_viewport->setFreeCamera(cam); m_indicator = m_viewport->getIndicator(); m_scene_manager->setActiveCamera(norm_cam); m_msg_wndw = MsgWndw::get(); m_toolbar = ToolBar::getToolBar(); m_new_dialog_wndw = NewDialogWndw::get(); m_new_dialog_wndw->hide(); m_welcome_screen = WelcomeScreen::get(); } // initAfterDataDirKnown
/* ---------------------------------------------------------------------------- set the font used by the GUI */ void DLL_EXPORT IrrGUISetColor( EGUI_DEFAULT_COLOR element, s32 red, s32 green, s32 blue, s32 alpha ) { IGUISkin* skin = guienv->getSkin(); skin->setColor(element, video::SColor(alpha, red, green, blue )); }
//第一次初始化执行 void main_init_on_login(IrrlichtDevice* device) { guienv = device->getGUIEnvironment(); guiroot = guienv->addStaticText(L"", core::rect<s32>(0, 0, 10000, 10000)); the_device = device; the_smgr = device->getSceneManager(); the_driver = device->getVideoDriver(); porting::signal_handler_init(); porting::initializePaths(); // Create user data directory fs::CreateDir(porting::path_user); // Initialize default settings set_default_settings(g_settings); // Initialize sockets sockets_init(); atexit(sockets_cleanup); std::vector<std::string> filenames; filenames.push_back(porting::path_user + DIR_DELIM + "settings.conf"); #if RUN_IN_PLACE // Try also from a lower level (to aid having the same configuration // for many RUN_IN_PLACE installs) filenames.push_back(porting::path_user + DIR_DELIM + ".." + DIR_DELIM + ".." + DIR_DELIM + "settings.conf"); #endif for(u32 i=0; i<filenames.size(); i++) { bool r = g_settings->readConfigFile(filenames[i].c_str()); if(r) { g_settings_configpath = filenames[i]; break; } } // If no path found, use the first one (menu creates the file) if(g_settings_configpath == "") g_settings_configpath = filenames[0]; // Initialize random seed srand(time(0)); mysrand(time(0)); my_event_receiver.init(); g_timegetter = new IrrlichtTimeGetter(device); // Create game callback for menus g_gamecallback = new MainGameCallback(device); bool random_input = false;//g_settings->getBool("random_input"); // if(random_input) // input = new RandomInputHandler(); // else { touchscreengui = new TouchScreenGUI(device); input = touchscreengui; } scene::ISceneManager* smgr = device->getSceneManager(); //这里保存下原有的skin。从游戏内返回的时候需要重新加载 IGUISkin* skin = guienv->getSkin(); //设定一下一些控件的大小 skin->setSize(EGDS_SCROLLBAR_SIZE, device->getVideoDriver()->getScreenSize().Width * 0.06); skin->setSize(EGDS_CHECK_BOX_WIDTH, device->getVideoDriver()->getScreenSize().Width * 0.03); skin->setSize(EGDS_BUTTON_WIDTH, device->getVideoDriver()->getScreenSize().Width * 0.1); skin->setSize(EGDS_BUTTON_HEIGHT, device->getVideoDriver()->getScreenSize().Width * 0.03); skin->setSize(EGDS_WINDOW_BUTTON_WIDTH, device->getVideoDriver()->getScreenSize().Width * 0.05); font = skin->getFont(); if(font) skin->setFont(font); else errorstream<<"WARNING: Font file was not found." " Using default font."<<std::endl; // If font was not found, this will get us one // font = skin->getFont(); assert(font); //skin->setColor(gui::EGDC_BUTTON_TEXT, video::SColor(255,0,0,0)); skin->setColor(gui::EGDC_BUTTON_TEXT, video::SColor(255,255,255,255)); //skin->setColor(gui::EGDC_3D_HIGH_LIGHT, video::SColor(0,0,0,0)); //skin->setColor(gui::EGDC_3D_SHADOW, video::SColor(0,0,0,0)); // skin->setColor(gui::EGDC_3D_HIGH_LIGHT, video::SColor(255,0,0,0)); skin->setColor(gui::EGDC_3D_HIGH_LIGHT, video::SColor(255,52,55,64)); skin->setColor(gui::EGDC_3D_SHADOW, video::SColor(255,0,0,0)); // skin->setColor(gui::EGDC_HIGH_LIGHT, video::SColor(255,70,100,50)); skin->setColor(gui::EGDC_HIGH_LIGHT, video::SColor(255, 161 , 164 , 179)); skin->setColor(gui::EGDC_HIGH_LIGHT_TEXT, video::SColor(255,255,255,255)); #if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2 // Irrlicht 1.8 input colours skin->setColor(gui::EGDC_EDITABLE, video::SColor(255,128,128,128)); skin->setColor(gui::EGDC_FOCUSED_EDITABLE, video::SColor(255,96,134,49)); #endif if (!g_menucloudsmgr) g_menucloudsmgr = smgr->createNewSceneManager(); if (!g_menuclouds) g_menuclouds = new Clouds(g_menucloudsmgr->getRootSceneNode(), g_menucloudsmgr, -1, rand(), 100); g_menuclouds->update(v2f(0, 0), video::SColor(255,200,200,255)); scene::ICameraSceneNode* camera; camera = g_menucloudsmgr->addCameraSceneNode(0, v3f(0,0,0), v3f(0, 60, 100)); camera->setFarValue(10000); guienv->clear(); guiroot = guienv->addStaticText(L"", core::rect<s32>(0, 0, 10000, 10000)); }