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;
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
//-----------------------------------------------------------------------------
void ExampleShutDown()
{
	if(g_Image)		{	delete g_Image;			g_Image = NULL;		}
	if(g_world)		{	delete g_world;			g_world = NULL;		}

	Iw2DTerminate();
}
Ejemplo n.º 5
0
/*
	Name		Game::deinitialise
	Syntax		Game::deinitialise()
	Brief		Releases any resources used by the game
*/
void Game::deinitialise()
{
	if (currentState_)
	{
		currentState_->deinitialise();
		delete currentState_;
		currentState_ = NULL;
	}

	if (input_)
	{
		input_->deinitialise();
		delete input_;
		input_ = NULL;
	}

	dzArchiveDetach();

	// shut down the IwResManager resource manager
	IwResManagerTerminate();

	// Shut down the Iw2D drawing module
	Iw2DTerminate();
	
	// Shut down the IwGx drawing module
    IwGxTerminate();
	
}
Ejemplo n.º 6
0
void N2F::Iw3D::Iw2DHelper::Clean()
{
	IwGxFontTerminate();
	Iw2DTerminate();
	IwGxTerminate();

	return;
}
Ejemplo n.º 7
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();
}
Ejemplo n.º 8
0
void Brixpath::clean()
{
    delete _backgroundImage;
    
    // Shut down the IwGx drawing module
    IwGxFontTerminate();
    IwResManagerTerminate();
    Iw2DTerminate();
};
Ejemplo n.º 9
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;
}
Ejemplo n.º 10
0
// "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;
}
Ejemplo n.º 11
0
//-----------------------------------------------------------------------------
// 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;
}
Ejemplo n.º 12
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;
}
Ejemplo n.º 13
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;
}
Ejemplo n.º 14
0
// 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;
}
Ejemplo n.º 15
0
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;
}
Ejemplo n.º 16
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;
}
Ejemplo n.º 17
0
void Game::mainLoop()
{
    // initialize
    deltaTime = 0;

    // TODO: create a config file and move these there
    const uint64 TARGET_FRAME_MS = 16;
    const uint64 MAX_FRAME_MS = 100;

    // init assets
    AssetFactory::getInstance().init();

		//init resource manager
#ifdef IW_BUILD_RESOURCES
	IwGetResManager()->AddHandler(new CIwResHandlerWAV);
#endif

#ifdef _DEBUG
	IwGetResManager()->LoadGroup("TestLevel.group");
#endif

    // create level
    //LevelManager::getInstance().pushLevel(new MainMenu(this));
    LevelManager::getInstance().pushLevel(new TestLevel());
    LevelManager::getInstance().getActiveLevel()->initialize();

    // init input
    Input::getInstance();
	
	//Init sound and resmanager
	//IwGxInit();
	//Iw2DInit();
	//Iw2DSetAlphaMode(IW_2D_ALPHA_HALF);
	IwSoundInit();
	IwResManagerInit();


	IwGetResManager()->LoadGroup("TestLevel.group");

    // loop
    while( !quit )
    {
        //s3eDeviceYield(0); // S3E applications should yield frequently
        uint64 time = s3eTimerGetMs();

		if ( s3eDeviceCheckQuitRequest() ) {
			quit = true;
		}

		IwGetSoundManager()->Update();
		update();
		render();

        deltaTime = s3eTimerGetMs() - time;
        int yield = 0;

        if (deltaTime < TARGET_FRAME_MS) {
            yield = TARGET_FRAME_MS - deltaTime;
            deltaTime = TARGET_FRAME_MS;
        } else if (deltaTime > MAX_FRAME_MS) {
            deltaTime = MAX_FRAME_MS;
        }

        s3eDeviceYield(yield);
    }

    // clean up
    Input::getInstance().unregister();

	IwSoundTerminate();
	IwResManagerTerminate();
	Iw2DTerminate();
}
Ejemplo n.º 18
0
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;
}
void Terminate()
{
	Iw2DTerminate();
    IwGxTerminate();
}
Ejemplo n.º 20
0
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;
    
    
}
Ejemplo n.º 21
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;
}
Ejemplo n.º 22
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;
}
Ejemplo n.º 23
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;
}
Ejemplo n.º 24
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();
}