示例#1
0
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	auto General_Scene = make_shared<MX::Scene>();
	
	
	draw1 = shared_ptr<MX::Draw>(new MX::Draw);
	shared_ptr<MX::Spriter> spriter(new MX::Spriter(draw1));
	
	if (!draw1->Initialize())
		return -1;


	if (!draw1->ChangeView(1280, 800, true))
		return -1;


	if (!spriter->Init())
		return -1;
	
	bool bs = MX::Sound::Initialize();


	initGame(draw1,spriter,&(*General_Scene));

	
	/*
	shared_ptr<MX::Image> image(new MX::Image), image2(new MX::Image), image3(new MX::Ima0ge);
	image->Load(*draw1, L"images\\plansza_1_layer1.png");
	image2->Load(*draw1, L"images\\plansza_1_layer2.png");
	image3->Load(*draw1, L"images\\interface_main.png");
	*/


	/*
	menu1Music.LoadStream(L"music\\menu.mp3");
	menu2Music.LoadStream(L"music\\menu2.mp3");
	game1Music.LoadStream(L"music\\game.mp3");
	winMusic.LoadStream(L"music\\win.mp3");
	menu1Music.Play();*/

	
	SoundBank::Initialize();
	
	shared_ptr<MX::Liner> liner = shared_ptr<MX::Liner>(MX::Liner::Create(draw1));
	liner->SetAntialias(true);
	liner->SetWidth(1.2f);

	MX::ActorSprite::spriter = spriter.get();
	MX::World::Initialize();
	srand(MX::World::GetTick());


	//InitializeDemo(draw1,spriter, General_Scene.get());
	//InitializeGame(draw1,spriter, General_Scene.get());
	InitializeTitle(draw1,spriter, General_Scene.get());


/*
	auto part = make_shared<MX::ParticleGenerator<MX::SimpleParticleCreator, MX::SimpleParticleDispatcher<3,10>>>(General_Scene);
	part->creator.SetAnimation(MX::CreateAnimationFromFile(L"images\\serce1.png"));
	part->x = 200;
	part->y = 200;

	shared_ptr<MX::Command> com = MX::q(wait(1000), die());
	part->OnDo.connect(com);
	General_Scene->AddActor(part);*/






	while (MX::Window::Loop())
	{
		if (MX::World::Key[VK_ESCAPE])
			PostQuitMessage(0);

		MX::World::ElapseTime();
		if (draw1->IsDeviceReset())
		{

	
			draw1->Clear(0xFF000000);
			if (draw1->Begin())
			{
			
				if (spriter->Begin(D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_DEPTH_FRONTTOBACK))
				{
					General_Scene->Draw();
					spriter->ResetTransform();
					spriter->End();
				}

				draw1->End();
			}

			draw1->Present();
		}
		else draw1->Reset();
		//Sleep(1);
		
	};

	MX::Sound::Deinitialize();
	return 0;
}