⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monitorframe.cc

📁 2007年机器人足球世界杯3D仿真组亚军
💻 CC
字号:
#include "monitorframe.ih"#include <GL/glut.h>using namespace bats;MonitorFrame::MonitorFrame(const wxString& title, const wxPoint& pos, const wxSize& size, int style, GameModel& gameModel)  : wxFrame((wxFrame *)NULL, -1, title, pos, size, style),    d_gameModel(gameModel),    d_camPos(0.0, -25.0, 25.0),    d_camLookAt(0.0, 0.0, 0.0),    d_camUp(0.0, 0.0, 1.0),    d_centerOnBall(true){  resetCamUp();    int ac = 0;  char *argv = 0;  // Hmm.. glut init!  glutInit(&ac,&argv);  wxMenu *menuFile = new wxMenu;  menuFile->Append( ID_About, wxT("&About...") );  menuFile->AppendSeparator();  menuFile->Append( ID_Quit, wxT("E&xit") );    wxMenuBar *menuBar = new wxMenuBar;  menuBar->Append( menuFile, wxT("&File") );    SetMenuBar( menuBar );    CreateStatusBar();  SetStatusText( wxT("Welcome to the BATS Robocup Monitor!") );    wxFont largeFont(16, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);    // Elements  d_mainSizer = new wxBoxSizer(wxHORIZONTAL);  d_viewSizer = new wxBoxSizer(wxVERTICAL);    d_teamScoreSizer = new wxBoxSizer(wxHORIZONTAL);    d_leftTeamNameLabel = new wxStaticText(this, -1, wxT("Team 1"));  d_leftTeamNameLabel->SetFont(largeFont);  d_teamScoreSizer->Add(d_leftTeamNameLabel, 0, wxALL, 5);    d_scoreLabel = new wxStaticText(this, -1, wxT("0 - 0"));  d_scoreLabel->SetFont(largeFont);  d_teamScoreSizer->Add(d_scoreLabel, 0, wxALL, 5);  d_rightTeamNameLabel = new wxStaticText(this, -1, wxT("Team 2"));  d_rightTeamNameLabel->SetFont(largeFont);  d_teamScoreSizer->Add(d_rightTeamNameLabel, 0, wxALL, 5);      d_viewSizer->Add(d_teamScoreSizer, 0, wxCENTER);#ifdef BATS_DOUBLEBUFFER  int atrib[2];  atrib[0] = WX_GL_DOUBLEBUFFER;  atrib[1] = 0;  d_glCanvas = new MonitorGLCanvas(this, -1, wxDefaultPosition, wxSize(600, 400), wxSUNKEN_BORDER, wxT("glcanvas"), atrib);#else  d_glCanvas = new MonitorGLCanvas(this, -1, wxDefaultPosition, wxSize(600, 400), wxSUNKEN_BORDER, wxT("glcanvas")/*, atrib*/);#endif      d_viewSizer->Add(d_glCanvas, 1, wxALL | wxEXPAND, 5);  //d_glCanvas->SetCurrent();      d_kickoffButton = new wxButton(this, ID_KickOff, wxT("&Kickoff!"));  d_viewSizer->Add(d_kickoffButton, 0, wxALL, 5);  d_centerOnBallCheck = new wxCheckBox(this, ID_CenterOnBall, wxT("&Center on ball"));  d_viewSizer->Add(d_centerOnBallCheck, 0, wxALL, 5);  d_centerOnBallCheck->SetValue(true);    d_sayText = new wxTextCtrl(this, -1, wxT(" "), wxDefaultPosition, wxSize(600,150), wxTE_MULTILINE | wxTE_READONLY);  d_viewSizer->Add(d_sayText, 0, wxEXPAND);  d_mainSizer->Add(d_viewSizer, 1, wxEXPAND);      d_settingsSizer = new wxFlexGridSizer(2);      d_selectAllLeft = new wxCheckBox(this, ID_SelectLeft, wxT("L"));  d_settingsSizer->Add(d_selectAllLeft, 0);  d_selectAllRight = new wxCheckBox(this, ID_SelectRight, wxT("R"));  d_settingsSizer->Add(d_selectAllRight, 0);  wxCheckBox* check;  for (unsigned p = 0; p < 11; ++p)    for (unsigned t = 0; t < 2; ++t)    {      ostringstream out;      out << (p + 1);      check = new wxCheckBox(this, (t == 0 ? ID_LeftCheck : ID_RightCheck) + p /*(t?ID_RightCheck:ID_LeftCheck)*/, wxString(out.str().c_str(), wxConvUTF8));      d_playerCheckBoxes[t].push_back(check);      d_settingsSizer->Add(check, 0);    }  d_mainSizer->Add(d_settingsSizer, 0);      SetSizer(d_mainSizer);  d_mainSizer->SetSizeHints(this);  // Create the graphics objects.  createGFXObjects();  initGameObjects();  // Load grass texture  ifstream grassin("grass.ppm");  // Read magic number and size bogus (maybe prettier later so we can use different textures)  string dummy;  getline(grassin, dummy); // magic number  getline(grassin, dummy); // gimp meuk  getline(grassin, dummy); // size  getline(grassin, dummy); // depth  grassin.read(d_grassTex, 512 * 512 * 3);  cout << "Characters read: " << grassin.gcount() << endl;    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -