Scene* MainMenuScene::createScene() { MainMenuScene* scene = new MainMenuScene(); if (scene && scene->init()) { scene->autorelease(); return (Scene*)scene; } CC_SAFE_DELETE(scene); return nullptr; }
bool AppDelegate::applicationDidFinishLaunching() { auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl::create("Pacman"); director->setOpenGLView(glview); } glview->setDesignResolutionSize(750, 450, ResolutionPolicy::EXACT_FIT); director->setAnimationInterval(1.0 / 60); MainMenuScene* mainMenu = MainMenuScene::create(new SoundController()); Director::getInstance()->pushScene(mainMenu->getScene()); director->runWithScene(mainMenu->getScene()); return true; }
bool AppDelegate::applicationDidFinishLaunching() { // initialize director CCDirector *pDirector = CCDirector::sharedDirector(); pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize(); CCSize designSize = CCSizeMake(480.0f, 320.0f); std::vector<std::string> searchPaths; if (screenSize.height >= 320) { searchPaths.push_back("iphone"); searchPaths.push_back("music"); searchPaths.push_back("iphone/tiledmap"); //pDirector->setContentScaleFactor(screenSize.height/designSize.height); } CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths); CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object MainMenuScene *pScene = new MainMenuScene(); pScene->init(); // run pDirector->runWithScene(pScene); return true; }
bool MainMenuEventReceiver::OnEvent(const SEvent& event) { if (event.EventType == EET_GUI_EVENT) { s32 id = event.GUIEvent.Caller->getID(); IGUIEnvironment* env = this->contextGame->guiEnv; MainMenuScene* mainmenu = ((MainMenuScene*)this->contextGame->sceneManager->getLastScene()); char* ipadress; wchar_t* inputwchar; char* playername; wchar_t* namewchar; stringc portInput; short port; Player* newplayer; NetworkPacket packet(START_GAME); NetworkPacket namepacket(CLIENT_JOIN); NetworkPacket quitpacket(CLIENT_QUIT); NetworkPacket hostquitpacket(HOST_DISCONNECT); switch(event.GUIEvent.EventType) { case EGET_BUTTON_CLICKED: switch(id) { case 1: // Join inputwchar = (wchar_t*)mainmenu->Ipadresinput->getText(); ipadress = (char*)malloc(wcslen(inputwchar)+ 1); wcstombs(ipadress, inputwchar, wcslen(inputwchar)); ipadress[wcslen(inputwchar)] = 0; portInput = mainmenu->hostPortInput->getText(); port = atof(portInput.c_str()); namewchar = (wchar_t*)mainmenu->Nameinput->getText(); playername = (char*)malloc(wcslen(namewchar)+ 1); wcstombs(playername, namewchar, wcslen(namewchar)); playername[wcslen(namewchar)] = 0; if((*ipadress == ' ' || *ipadress == NULL) || (*playername == ' ' || *playername == NULL) || (port == 0)){ if(*ipadress == ' ' || *ipadress == NULL || port == 0){ mainmenu->messagebox = env->addMessageBox(L"Messsage",L"Fill in an Ipadress and port",true,1,mainmenu->mainMenuWindow); mainmenu->messagebox->setDraggable(false); }else{ mainmenu->messagebox = this->contextGame->guiEnv->addMessageBox(L"Message",L"Fill in an Name",true,1,mainmenu->mainMenuWindow); mainmenu->messagebox->setDraggable(false); } }else{ Network::GetInstance()->InitializeClient(ipadress, port); if(!Network::GetInstance()->IsConnected()){ mainmenu->messagebox = env->addMessageBox(L"Messsage",L"Not able to connect to server",true,1,mainmenu->mainMenuWindow); mainmenu->messagebox->setDraggable(false); }else{ //TODO: package met naam en checksum: Network->getinstance->GetPacketTypeChecksum namepacket << namewchar << Network::GetInstance()->GetPacketTypeChecksum(); Network::GetInstance()->SendPacket(namepacket, true); mainmenu->createServerWindow_Button->setVisible(false); mainmenu->joinServerWindow_Button->setVisible(false); mainmenu->Clientlist->setVisible(true); mainmenu->Ipadresinput->setVisible(false); mainmenu->Namelabel->setVisible(false); // TODO check merge Both?? mainmenu->waitinglabel = env->addStaticText(L"Waiting for host to start the game",rect<s32>(position2di(300,165),dimension2di(200,25)),false,true,mainmenu->mainMenuWindow); mainmenu->Nameinput->setVisible(false); mainmenu->quit_button->setVisible(true); mainmenu->waitinglabel->setVisible(true); } } return true; case 2: // Create namewchar = (wchar_t*)mainmenu->Nameinput->getText(); playername = (char*)malloc(wcslen(namewchar)+ 1); wcstombs(playername, namewchar, wcslen(namewchar)); playername[wcslen(namewchar)] = 0; if(*playername == ' ' || *playername == NULL){ mainmenu->messagebox = this->contextGame->guiEnv->addMessageBox(L"Message",L"Fill in a name",true,1,mainmenu->mainMenuWindow); mainmenu->messagebox->setDraggable(false); return false; }else{ Network::GetInstance()->InitializeServer(); mainmenu->createServerWindow_Button->setVisible(false); mainmenu->joinServerWindow_Button->setVisible(false); mainmenu->Ipadresinput->setVisible(false); mainmenu->Namelabel->setVisible(false); mainmenu->Nameinput->setVisible(false); mainmenu->start_button->setVisible(true); mainmenu->startStatic_button->setVisible(true); mainmenu->quit_button->setVisible(true); mainmenu->Clientlist->setVisible(true); newplayer = new Player(); newplayer->Name = namewchar; newplayer->Team = 1; mainmenu->playerlist.push_back(newplayer); return true; } case 3: // Start mainmenu->StartGame(); Network::GetInstance()->SendServerPacket(packet, true); return true; case 4: // Start Test Map mainmenu->StartTestGame(); Network::GetInstance()->SendServerPacket(packet, true); return true; case 5: // Quit if(!Network::GetInstance()->IsServer()) { Network::GetInstance()->SendPacket(quitpacket, true); } else { hostquitpacket << L"The host got disconnected"; Network::GetInstance()->SendServerPacket(hostquitpacket, true); } mainmenu->playerlist.clear(); Network::GetInstance()->DeInitialize(); mainmenu->BackToMainMenu(); return true; default: return false; } break; } } return false; }