/* Name Game::initialise Syntax Game::initialise() Brief Initialises the modules used by the game */ void Game::initialise() { // Initialise the IwGx drawing module IwGxInit(); // Initialise Iw2D drawing module Iw2DInit(); // Initialise IwResManager resource manager IwResManagerInit(); int32 result = dzArchiveAttach("ConstructsResources-gles1.dz"); if (result == S3E_RESULT_ERROR) { int banana = 40; } // Create Input input_ = Input::instance(); input_->initialise(); // Set initial state for the game currentState_ = new TitleState; // ;PlayState TitleState currentState_->initialise(); }
int main() { IwGxInit(); IwGxSetColClear(0, 0, 0xff, 0xff); IwResManagerInit(); Iw2DInit(); setupTextures(); registerInput(); const int textWidth = s3eDebugGetInt(S3E_DEBUG_FONT_SIZE_WIDTH); const int textHeight = s3eDebugGetInt(S3E_DEBUG_FONT_SIZE_HEIGHT); const int width = s3eSurfaceGetInt(S3E_SURFACE_WIDTH); const int height = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT); sprintf(g_debugButtonEvent, "ButtonEvent:"); sprintf(g_debugKeyEvent, "KeyEvent:"); sprintf(g_debugMotionEvent, "MotionEvent:"); sprintf(g_debugTouchEvent, "TouchEvent:"); sprintf(g_debugTouchMotionEvent, "TouchMotionEvent:"); while (!s3eDeviceCheckQuitRequest()) { render(); // Yield until unyield is called or a quit request is recieved s3eDeviceYield(S3E_DEVICE_YIELD_FOREVER); } destroyTextures(); Iw2DTerminate(); IwResManagerTerminate(); IwGxTerminate(); return 0; }
void Brixpath::init() { //Init system stuff Iw2DInit(); IwResManagerInit(); IwGxFontInit(); //read resources IwGetResManager()->LoadGroup("brixpath.group"); _backgroundImage = Iw2DCreateImageResource("3px"); // Initialize evil classes g_Input.Init(); g_ColorManager.initialize(); g_FontManager.initialize(); g_GameStateManager.initialize(); //Load leveles g_LevelsManager.initializeFromFile("test.json"); _gameStateData.gameLevel = 0; _gameStateData.currentScene = MAIN_MENU_SCENE; _gameStateData.switchToScene = MAIN_MENU_SCENE; //levels should be initialize only after Iw2d and similar stuff is initialized; _sceneManager = new ScenesManager(&_gameStateData); _scene = _sceneManager->getActiveScene(); //and start drawing scene _scene->capture(); };
int main() { Iw2DInit(); CIw2DImage* g_AirplayLogo = Iw2DCreateImage("largeAirplayLogo.bmp"); while (1) { int64 start = s3eTimerGetMs(); if (s3eDeviceCheckQuitRequest()) break; // Clear the screen Iw2DSurfaceClear(0xffffffff); CIwSVec2 topLeft = CIwSVec2((int16)(Iw2DGetSurfaceWidth() / 2 - g_AirplayLogo->GetWidth() / 2), (int16)(Iw2DGetSurfaceHeight() / 2 - g_AirplayLogo->GetHeight() / 2)); CIwSVec2 size = CIwSVec2((int16)g_AirplayLogo->GetWidth(), (int16)g_AirplayLogo->GetHeight()); Iw2DDrawImage(g_AirplayLogo, topLeft, size); Iw2DSurfaceShow(); // Attempt frame rate while ((s3eTimerGetMs() - start) < MS_PER_FRAME) { int32 yield = (int32) (MS_PER_FRAME - (s3eTimerGetMs() - start)); if (yield<0) break; s3eDeviceYield(yield); } } delete g_AirplayLogo; Iw2DTerminate(); return 0; }
int main() { Iw2DInit(); TweenTest* tests = new TweenTest(); while (!s3eDeviceCheckQuitRequest()) { tests->Update(FRAME_TIME); Iw2DSurfaceClear(0xff000000); //tests->Render(); Iw2DSurfaceShow(); s3eDeviceYield(0); } delete tests; Iw2DTerminate(); return 0; }
int main() { IwGxInit(); Iw2DInit(); AppWarp::Client* WarpClientRef; AppWarp::Client::initialize("b29f4030aba3b2bc7002c4eae6815a4130c862c386e43ae2a0a092b27de1c5af","bf45f27e826039754f8dda659166d59ffb7b9dce830ac51d6e6b576ae4b26f7e"); WarpClientRef = AppWarp::Client::getInstance(); MenuScreen *menu = new MenuScreen; GameScreen *game = new GameScreen(WarpClientRef); Game *gm = new Game; gm->AddScene("game",game); gm->AddScene("menu",menu); menu->game = game; menu->app = gm; Listener listener(WarpClientRef,game); WarpClientRef->setConnectionRequestListener(&listener); WarpClientRef->setRoomRequestListener(&listener); WarpClientRef->setNotificationListener(&listener); s3ePointerRegister(S3E_POINTER_BUTTON_EVENT,(s3eCallback)HandleSingleTouchButtonCB,gm); while(!s3eDeviceCheckQuitRequest()) { s3eKeyboardUpdate(); if(s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN) break; WarpClientRef->update(); s3ePointerUpdate(); IwGxClear(IW_GX_COLOUR_BUFFER_F | IW_GX_DEPTH_BUFFER_F); IwGxPrintSetScale(2); IwGxPrintString(0,0,game->msg.c_str()); gm->Move(); gm->Render(); Iw2DSurfaceShow(); s3eDeviceYield(); } s3ePointerUnRegister(S3E_POINTER_BUTTON_EVENT,(s3eCallback)HandleSingleTouchButtonCB); gm->CleanUp(); delete menu; delete game; delete gm; WarpClientRef->terminate(); Iw2DTerminate(); IwGxTerminate(); }
// "main" is the S3E entry point int main() { Iw2DInit(); IwUtilInit(); // create game object pGame = new CGame; int currentUpdate = GetUpdateFrame(); int nextUpdate = currentUpdate; s3ePointerUpdate(); // to exit correctly, applications should poll for quit requests while(!s3eDeviceCheckQuitRequest()) { // run logic at a fixed frame rate (defined by UPS) // block until the next frame (don't render unless at // least one update has occurred) while(!s3eDeviceCheckQuitRequest()) { nextUpdate = GetUpdateFrame(); if( nextUpdate != currentUpdate ) break; s3eDeviceYield(1); } // execute update steps int frames = nextUpdate - currentUpdate; frames = MIN(MAX_UPDATES, frames); while(frames--) { pGame->Update(nextUpdate - currentUpdate); } currentUpdate = nextUpdate; // render the results pGame->Render(); // if an application uses polling input the application // must call update once per frame s3ePointerUpdate(); s3eKeyboardUpdate(); // S3E applications should yield frequently s3eDeviceYield(); } // clear up game object delete pGame; Ground::DestroyGround(); IwUtilTerminate(); Iw2DTerminate(); return 0; }
int main() { //s3eInetAddress addr; //memset(&addr, 0, sizeof(addr)); //s3eInetLookup("localhost", &addr, NULL, NULL); //addr.m_Port = s3eInetHtons(81); //s3eSocket* pSock = s3eSocketCreate(S3E_SOCKET_UDP, 0); //char szData[20000]; //for (int i=0; i <20000;++i) //{ // szData[i] = i; //} //while (true) //{ // int sent = s3eSocketSendTo(pSock, szData, 20000, 0, &addr); // s3eDeviceYield(0); //} s3eLocationStart(); //IwGx can be initialised in a number of different configurations to help the linker eliminate unused code. //For the examples we link in all of IwGx's possible functionality. //You can see the code size reduce if you remove any of the IwGxInit calls following IwGxInit_Base. //Note that, for demonstration purposes, some examples call IwGxInit() themselves - this will link in the //standard renderer and the GL renderer, so on those examples these features cannot be excluded from the build. //IwGxInit_Base(); //IwGxInit_GLRender(); IwGxInit(); Iw2DInit(); IwUIInit(); //Instantiate the view and controller singletons. //IwUI will not instantiate these itself, since they can be subclassed to add functionality. new CIwUIView; CIwUIController2* pController = new CIwUIController2; IwDebugTraceLinePrintf("Creating Game Object"); FireflyGameEngine* pGameEngine = new FireflyGameEngine; IwDebugTraceLinePrintf("Entering Main"); int result = GameMain(pGameEngine); delete pGameEngine; Iw2DTerminate(); delete IwGetUIView(); delete pController; IwUITerminate(); IwGxTerminate(); s3eLocationStop(); return result; }
void N2F::Iw3D::Iw2DHelper::Init() { Iw2DInit(); IwGxInit(); IwGxFontInit(); IwGxLightingOn(); IwGxSetColClear(0, 0, 0, 0xff); return; }
//----------------------------------------------------------------------------- // Main global function //----------------------------------------------------------------------------- int main() { #ifdef EXAMPLE_DEBUG_ONLY // Test for Debug only examples #ifndef IW_DEBUG DisplayMessage("This example is designed to run from a Debug build. Please build the example in Debug mode and run it again."); return 0; #endif #endif Iw2DInit(); // Example main loop ExampleInit(); // Set screen clear colour while (1) { s3eDeviceYield(0); s3eKeyboardUpdate(); s3ePointerUpdate(); int64 start = s3eTimerGetMs(); bool result = ExampleUpdate(); if ( (result == false) || (s3eKeyboardGetState(s3eKeyEsc) & S3E_KEY_STATE_DOWN) || (s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN) || (s3eDeviceCheckQuitRequest()) ) break; // Clear the screen Iw2DSurfaceClear(0xffffffff); RenderSoftkeys(); ExampleRender(); // Attempt frame rate while ((s3eTimerGetMs() - start) < MS_PER_FRAME) { int32 yield = (int32) (MS_PER_FRAME - (s3eTimerGetMs() - start)); if (yield<0) break; s3eDeviceYield(yield); } } ExampleShutDown(); Iw2DTerminate(); return 0; }
int main() { // Initialise the 2D graphics system Iw2DInit(); // Set up input systems g_pInput = new Input(); // Create an image from a PNG file CIw2DImage* image = Iw2DCreateImage("textures/letter_A.png"); CIwFVec2 image_position = CIwFVec2::g_Zero; // Loop forever, until the user or the OS performs some action to quit the app while (!s3eDeviceCheckQuitRequest()) { // Update input system g_pInput->Update(); // Clear the drawing surface Iw2DSurfaceClear(0xff000000); // Draw an image CIwFVec2 sz = CIwFVec2(50, 50); Iw2DDrawImage(image, image_position, sz); // Check for user tapping screen if (!g_pInput->m_Touched && g_pInput->m_PrevTouched) { // Move image to touched position image_position.x = (float)g_pInput->m_X - 25; image_position.y = (float)g_pInput->m_Y - 25; // Reset input g_pInput->Reset(); } // Show the drawing surface Iw2DSurfaceShow(); // Yield to the OS s3eDeviceYield(0); } // Clean-up delete image; delete g_pInput; Iw2DTerminate(); return 0; }
//----------------------------------------------------------------------------- // Main global function //----------------------------------------------------------------------------- int main() { IwGxInit(); Iw2DInit(); //SplashInit(); //SplashRender(); srand(time(NULL)); g_Input.Init(); LifeStatusInit(); FontInit(); //MenuInit(); FondoInit(); BaconInit(); MusicInit("./textures/musicOn.jpg"); while (menuB) { menuB = false; menu(); } spriteManager->removeSprite(corazon); delete corazon; for (int i=0; i<10; i++) { spriteManager->removeSprite(garras[i]); delete garras[i]; spriteManager->removeSprite(tnts[i]); delete tnts[i]; } for (int i=0; i<20; i++) { spriteManager->removeSprite(miniCoins[i]); delete miniCoins[i]; } delete tank; spriteManager->removeSprite(maxiCoin); delete maxiCoin; delete chuletas; g_Input.Release(); FondoShutDown(); BaconShutDown(); FontShutDown(); SplashShutDown(); LifeStatusShutDown(); IwGxFontTerminate(); IwGxTerminate(); Iw2DTerminate(); s3eDeviceExit(); return 0; }
//----------------------------------------------------------------------------- void ExampleInit() { Iw2DInit(); Iw2DSetColour(0xffffffff); g_Image = Iw2DCreateImage("Image.png"); // g_accumulator = 0.0f; g_prevTime = s3eTimerGetMs(); // create a box2d world if( !(g_world = new b2World(g_gravity)) ) { /*error*/ } // add a boundary at the edge of the screen b2BodyDef bodyDef; bodyDef.type = b2_staticBody; bodyDef.position.Set(0, 0); b2Body* boundaryBody = g_world->CreateBody(&bodyDef); const float hw = (float)Iw2DGetSurfaceWidth() * 0.5f / 8; const float hh = (float)Iw2DGetSurfaceHeight() * 0.5f / 8; b2Vec2 list[] = { b2Vec2(-hw, -hh), b2Vec2(hw, -hh), b2Vec2(hw, hh), b2Vec2(-hw, hh) }; const int numVerts = sizeof(list) / sizeof(b2Vec2); b2ChainShape loopShape; loopShape.CreateLoop(list, numVerts); boundaryBody->CreateFixture(&loopShape, 0.0f); // add a dynamic body // b2BodyDef bodyDef; bodyDef.type = b2_dynamicBody; bodyDef.position.Set(0, 0); g_body = g_world->CreateBody(&bodyDef); g_body->SetLinearDamping(0.1f); b2PolygonShape polygonShape; polygonShape.SetAsBox(0.5f * (8/2), 0.5f * (8/2)); b2FixtureDef fd; fd.shape = &polygonShape; fd.friction = 0.5f; fd.density = 10.0f; fd.restitution = 0.5f; g_body->CreateFixture(&fd); g_body->SetAngularVelocity(2.15f); // set the dynamic object initially spinning, so that it bounces more interestingly on the 'ground' }
// Main entry point for the application int main() { // Initialise Iw2D Iw2DInit(); // Get surface width and height int surface_width = Iw2DGetSurfaceWidth(); int surface_height = Iw2DGetSurfaceHeight(); // Rotation angle of rectangle float angle = 0; // Wait for a quit request from the host OS while (!s3eDeviceCheckQuitRequest()) { // Clear background to blue Iw2DSurfaceClear(0xff8080); // Set up a transform CIwFMat2D mat; mat.SetRot(angle); mat.ScaleRot(2.0f); mat.SetTrans(CIwFVec2((float)surface_width / 2, (float)surface_height / 2)); Iw2DSetTransformMatrix(mat); angle += 0.01f; // Render filled rectangle Iw2DSetColour(0xff00ffff); Iw2DFillRect(CIwFVec2(-50.0f, -100.0f), CIwFVec2(100.0f, 200.0f)); // Render filled arc Iw2DSetColour(0xffff00ff); Iw2DFillArc(CIwFVec2(0, 0), CIwFVec2(100.0f, 100.0f), 0, 1.8 * PI); // Flip the surface buffer to screen Iw2DSurfaceShow(); // Sleep to allow the OS to process events etc. s3eDeviceYield(0); } // Shut down Iw2D Iw2DTerminate(); return 0; }
void GameInit() { Iw2DInit(); grass = Iw2DCreateImage("0.png"); three = Iw2DCreateImage("1.png"); man = Iw2DCreateImage("2.png"); for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { Map[i][j]=0; } } Map[0][0]=2; Map[3][0]=1; Map[3][2]=1; Map[5][1]=1; }
int main() { Iw2DInit(); game = new Game(); game->Initialize(); game->NewGame(); int currentUpdate = GetUpdateFrame(); int nextUpdate = currentUpdate; s3ePointerRegister(S3E_POINTER_BUTTON_EVENT, (s3eCallback) MouseEventCallback, NULL); while(!s3eDeviceCheckQuitRequest()) { while(!s3eDeviceCheckQuitRequest()) { nextUpdate = GetUpdateFrame(); if( nextUpdate != currentUpdate ) break; s3eDeviceYield(1); } // execute update steps int frames = nextUpdate - currentUpdate; frames = MIN(MAX_UPDATES, frames); while(frames--) { game->Update(); } Iw2DSurfaceClear(0xffffffff); game->Render(); Iw2DSurfaceShow(); s3ePointerUpdate(); s3eKeyboardUpdate(); s3eDeviceYield(); } delete game; Iw2DTerminate(); return 0; }
// Main entry point for the application int main() { AppDelegate* app = new AppDelegate; cocos2d::CCApplication::sharedApplication()->Run(); Iw2DInit(); while (!s3eDeviceCheckQuitRequest()) { Iw2DSurfaceClear(0xff000000); // Show the drawing surface Iw2DSurfaceShow(); // Yield to the OS s3eDeviceYield(0); } Iw2DTerminate(); delete app; return 0; }
// Main entry point for the application int main() { //Initialise graphics system(s) Iw2DInit(); //Create resources g_pResources = new Resources(); //Create scene manager g_pSceneManager = new SceneManager(); // Set up input systems g_Input = new Input(); //Init the main menu MainMenu* main_menu = new MainMenu(); main_menu->SetName("mainmenu"); main_menu->Init(); g_pSceneManager->Add(main_menu); // Init the field Field* field = new Field(); field->SetName("field"); // Creates random puzzle Puzzle *p = new Puzzle(7, 7, 7); p->generateRandom(1); field->Init(p); g_pSceneManager->Add(field); //Init the howToPlay HowToPlay* howToPlay = new HowToPlay(); howToPlay->SetName("howtoplay"); howToPlay->Init(); g_pSceneManager->Add(howToPlay); // Switch to the main menu g_pSceneManager->SwitchTo(main_menu); // Initialize variables for Frame Rate control uint64 frame_start_time = 0; int yield = 0; // Loop forever, until the user or the OS performs some action to quit the app while (!s3eDeviceCheckQuitRequest()) { // Record start time of frame. frame_start_time = s3eTimerGetMs(); //Update the input systems g_Input->Update(); //Update scene manager g_pSceneManager->Update(FRAME_TIME); // Clear screen Iw2DSurfaceClear(0xff000000); //Render scene manager g_pSceneManager->Render(); // Show the drawing surface Iw2DSurfaceShow(); // Calculate time to sleep for having a fixed frame rate. yield = (int)(FRAME_TIME_MS - (s3eTimerGetMs() - frame_start_time)); if (yield < 0) yield = 0; // Sleep to allow the OS to process events etc. s3eDeviceYield(yield); } //Terminate modules being used delete g_Input; delete g_pSceneManager; delete g_pResources; Iw2DTerminate(); // Return return 0; }
int main() { Iw2DInit(); image1 = Iw2DCreateImage("image1.png"); image2 = Iw2DCreateImage("image2.png"); while (!s3eDeviceCheckQuitRequest()) { // Transition #1 // Fade in from black Iw2DSurfaceClear(0xff000000); Transitions2D::CaptureStartScreen(); DrawOnRed(); Transitions2D::CaptureEndScreen(); Transitions2D::Fade(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #2 // Cross fade from red image to blue image DrawOnRed(); Transitions2D::CaptureStartScreen(); DrawOnBlue(); Transitions2D::CaptureEndScreen(); Transitions2D::Fade(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #3 // Slide left DrawOnBlue(); Transitions2D::CaptureStartScreen(); DrawOnRed(); Transitions2D::CaptureEndScreen(); Transitions2D::SlideLeft(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #4 // Slide right DrawOnRed(); Transitions2D::CaptureStartScreen(); DrawOnBlue(); Transitions2D::CaptureEndScreen(); Transitions2D::SlideRight(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #5 // Slide up DrawOnBlue(); Transitions2D::CaptureStartScreen(); DrawOnRed(); Transitions2D::CaptureEndScreen(); Transitions2D::SlideUp(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #6 // Slide down DrawOnRed(); Transitions2D::CaptureStartScreen(); DrawOnBlue(); Transitions2D::CaptureEndScreen(); Transitions2D::SlideDown(); s3eDeviceYield(1000); if (s3eDeviceCheckQuitRequest()) break; // Transition #7 // Fade out to black DrawOnBlue(); Transitions2D::CaptureStartScreen(); Iw2DSurfaceClear(0xff000000); Transitions2D::CaptureEndScreen(); Transitions2D::Fade(); s3eDeviceYield(1000); } delete image1; delete image2; Iw2DTerminate(); }
Game::Game() { quit = false; Iw2DInit(); }
int main(){ //Init the 2D gfx system Iw2DInit(); Input * g_pInput = new Input(); ResourceManager * g_ResManager = new ResourceManager(); Physics * g_Physics = new Physics(*g_ResManager); Animator * g_Animator = new Animator(*g_ResManager); SpaceShip * spaceship = new SpaceShip(100, 100, -PI/2); Enemy * enemy = new Enemy(400, 100, 0); spaceship->name = "spaceship"; g_ResManager->addEntity(*spaceship); g_ResManager->addEntity(*enemy); int16 counter = 0; int16 speed = 5; //Loop forever, until OS interupt while(!s3eDeviceCheckQuitRequest()){ //Clear the drawing surface Iw2DSurfaceClear(0xff222222); g_pInput->update(); spaceship->vec.x = 0; spaceship->vec.y = 0; if(g_pInput->isKeyDown(s3eKeyRight)){ spaceship->vec.x += speed; } if(g_pInput->isKeyDown(s3eKeyLeft)){ spaceship->vec.x -= speed; } if(g_pInput->isKeyDown(s3eKeyUp)){ spaceship->vec.y -= speed; } if(g_pInput->isKeyDown(s3eKeyDown)){ spaceship->vec.y += speed; } if(g_pInput->isKeyDown(s3eKeySpace)){ if(++counter % 2 == 0){ Bullet * bullet = new Bullet(spaceship->pos.x +spaceship->size.x + 15, spaceship->pos.y + 0.5*spaceship->size.y - 2, -PI/2); bullet->vec.x = 8; bullet->name = "bullet"; g_ResManager->addEntity(*bullet); } } g_Physics->update(); g_Animator->update(); //Show drawing surface Iw2DSurfaceShow(); //Yield to the OS s3eDeviceYield(0); } delete g_ResManager; delete g_pInput; delete g_Physics; delete g_Animator; Iw2DTerminate(); return 0; }
void Initialize() { //Initialise graphics system(s) IwGxInit(); Iw2DInit(); }
int main(int argc, char* argv[]) { g_pointerdown = false; FillDefaultLocalScores(); // Initialisation of Airplay Studio modules Iw2DInit(); // Initialise support for rendering with the standard SW renderer IwGxLightingOff(); IwResManagerInit(); Load(); int16 sw = (int16)Iw2DGetSurfaceWidth(); int16 sh = (int16)Iw2DGetSurfaceHeight(); PAL_InitData_t palInitData; SC_Error_t retCode = SC_Client_New(&g_client, &palInitData, SC_TEST_GAME_ID, SC_TEST_GAME_SECRET, "AIW"); if (retCode != SC_OK) s3eDebugAssertShow(S3E_MESSAGE_CONTINUE_STOP, "Failed to create SC_Client"); IwGetResManager()->LoadGroup("fonts.group"); LoadGlobalImages(); LoadMainControls(); game = new CGame(); mainmenu = new CMainMenu(); profile = new CProfile(); scores = new CScores(); mainmenu->Load(); game->Load(); profile->Load(); scores->Load(); CBaseScene *curscene = (CBaseScene *)mainmenu; g_curSceneType = stMainMenu; uint32 timer = (uint32)s3eTimerGetMs(); g_AccelerometerEnabled = (s3eAccelerometerStart() == S3E_RESULT_SUCCESS); while(curscene) { s3eDeviceYield(0); //// Check for user quit if (s3eDeviceCheckQuitRequest()) break; int delta = uint32(s3eTimerGetMs()) - timer; timer += delta; // Make sure the delta-time value is safe if (delta < 0) delta = 0; if (delta > 100) delta = 100; if (g_AccelerometerEnabled) { if (!g_waiting) { if (g_errorDialog->Get_Visible()) { if (UpdatePointer() == petDown) CloseErrorDlg(); else g_errorDialog->Update(delta); } else { switch (UpdatePointer()) { case petNone: break; case petDown: curscene->PointerDown(g_pointerx, g_pointery); break; case petUp: curscene->PointerUp(g_pointerx, g_pointery); break; case petMove: curscene->PointerMove(g_pointerx, g_pointery); break; } curscene->Update(delta); } } curscene->Render(); if (g_waiting) { Iw2DSetColour(0xeeffffff); Iw2DFillRect(CIwSVec2(0, 0), CIwSVec2(sw, sh)); Iw2DSetColour(0xff000000); Iw2DSetFont(g_font); Iw2DDrawString(g_waitcaption, CIwSVec2(0, 0), CIwSVec2(sw, sh), IW_2D_FONT_ALIGN_CENTRE, IW_2D_FONT_ALIGN_CENTRE); } if (g_errorDialog->Get_Visible()) { g_errorDialog->Render(); } } Iw2DSurfaceShow(); switch (g_curSceneType) { case stNone: curscene = 0; break; case stMainMenu: { if (curscene != (CBaseScene *)mainmenu) { curscene = (CBaseScene *)mainmenu; curscene->Show(); } } break; case stGame: { if (curscene != (CBaseScene *)game) { curscene = (CBaseScene *)game; curscene->Show(); } }break; case stProfile: { if (curscene != (CBaseScene *)profile) { curscene = (CBaseScene *)profile; curscene->Show(); } }break; case stScores: { if (curscene != (CBaseScene *)scores) { curscene = (CBaseScene *)scores; curscene->Show(); } }break; } } Save(); delete game; delete mainmenu; delete profile; delete scores; SC_Client_Release(g_client); UnloadGlobalImages(); UnloadMainControls(); if (g_AccelerometerEnabled) s3eAccelerometerStop(); // Terminate system modules IwResManagerTerminate(); Iw2DTerminate(); return 0; }
int main() { // Initialise the 2D graphics system Iw2DInit(); // Create an image from a PNG file CIw2DImage* image = Iw2DCreateImage("textures/Tiles.png"); //Avatar bits AnimationData testData; testData.animationName = "Up"; testData.animationPosition = 0; testData.frameHeight = 64; testData.frameWidth = 32; testData.numberOfFrames = 4; AnimationData testData2; testData2.animationName = "Right"; testData2.animationPosition = 64; testData2.frameHeight = 64; testData2.frameWidth = 32; testData2.numberOfFrames = 4; Animation* animation = new Animation("textures/AvatarTest.png",testData); Animation* animation2 = new Animation("textures/AvatarTest.png",testData2); s3eFile* file = s3eFileOpen("tilemaps/tilemapdemo.json", "rb"); int len = s3eFileGetSize(file); char* rawTileJSON = new char[len]; if (file != NULL) { if (s3eFileRead(rawTileJSON, len, 1, file) != 1) { s3eFileGetError(); s3eDebugOutputString(s3eFileGetErrorString()); } s3eFileClose(file); } else { s3eFileGetError(); s3eDebugOutputString(s3eFileGetErrorString()); } cJSON *root = cJSON_Parse(rawTileJSON); int gridHeight = cJSON_GetObjectItem(root,"height")->valueint; int gridWidth = cJSON_GetObjectItem(root,"width")->valueint; int tileWidth = cJSON_GetObjectItem(root,"tileheight")->valueint; int tileHeight = cJSON_GetObjectItem(root,"tilewidth")->valueint; cJSON *layers = cJSON_GetObjectItem(root,"layers"); cJSON *tileData; int i; for (i = 0; i<cJSON_GetArraySize(layers); i++) { cJSON *layer = cJSON_GetArrayItem(layers,i); tileData = cJSON_GetObjectItem(layer,"data"); } // Loop forever, until the user or the OS performs some action to quit the app while (!s3eDeviceCheckQuitRequest()) { // Clear the drawing surface Iw2DSurfaceClear(0xff000000); int x,y,tileIndex,tileType; for( y = 0; y < gridHeight; y++) { for(x = 0; x < gridWidth; x++) { tileIndex = (y * gridWidth) + x; tileType = cJSON_GetArrayItem(tileData,tileIndex)->valueint -1; // Draw an image Iw2DDrawImageRegion(image, CIwFVec2(x*tileWidth,y*tileHeight),CIwFVec2(tileWidth,tileHeight),CIwFVec2(tileType*tileWidth,0),CIwFVec2(tileWidth,tileHeight)); } } animation->render(50,50); animation2->render(150,200); // Show the drawing surface Iw2DSurfaceShow(); // Yield to the OS s3eDeviceYield(0); } cJSON_Delete(root); // Clean-up delete rawTileJSON; delete image; delete animation; delete animation2; Iw2DTerminate(); return 0; }
int main() { IwGxInit(); IwGraphicsInit(); IwAnimInit(); Iw2DInit(); IwTrace(GHOST_HUNTER, ("Ghost Realm booting...")); IwTrace(GHOST_HUNTER, ("Audio channels: %d", s3eAudioGetInt(S3E_AUDIO_NUM_CHANNELS))); // Set screen clear colour IwGxSetColClear(0x0, 0x0, 0x0, 0xff); Splash* splash = new Splash(); s3eDeviceYield(20); { // Init game CameraViewPreInit(); MapControllerInit(); MapModelInit(); MapViewInit(); CameraControllerInit(); CameraModelInit(); CameraViewInit(); } delete splash; getGameState()->setGameMode(MAP_MODE); while (1) { s3eDeviceYield(0); int start = clock(); Audio::GetInstance().Update(); if (getGameState()->getGameMode() == CAMERA_MODE) { CameraControllerUpdate(); CameraModelUpdate(); CameraViewUpdate(); } else if (getGameState()->getGameMode() == MAP_MODE) { MapControllerUpdate(); MapModelUpdate(); MapViewUpdate(); } // Cap FPS int yield; do { yield = FRAME_DURATION - (clock() - start); if (yield > 0) { s3eDeviceYield(yield); } } while (yield > 0); } CameraControllerTerm(); CameraModelTerm(); CameraViewTerm(); MapControllerTerm(); MapModelTerm(); MapViewTerm(); delete getGameState(); Iw2DTerminate(); IwAnimTerminate(); IwGraphicsTerminate(); IwGxTerminate(); return 0; }