26 grudnia 2009 Tutorial 1: Okno



Ten tutorial pokazuje jak w prosty sposób stworzyć zwykłe pojedyncze okno, które będzie początkiem do pisania kolejnych programów. Taki najprostrzy pierwszy program.

Kod poniżej wystarczy przekleić do pliku i skompilować, nalezy wcześniej oczywiście pamietam o obrym skonfigurowaniu kompilatora i całego środowiska

         
#include <irrlicht.h>
// musimy oczywiście dołaczyć biblioteke irrliht.
using namespace irr;
using namespace core;
using namespace io;
using namespace scene;
using namespace video;
//aby ułatwić a głównie skrócić pisanie, używamy przestrzeni nazw, tutej wypisuje
// wszytkie używane w tej wersji silnika.

#ifdef _MSC_VER
#pragma comment(lib, "Irrlicht.lib")
#endif
//By używać pliku Irrlicht.DLL, musimy połaczyć z Irrlicht.lib. 
//Możemy ustawić tą opcję w ustawieniach projektu, ale żeby to ułatwić, 
//używamy pragma comment lib dla VisualStudio.


int main()//zaczynamy główny program
{
	IrrlichtDevice *device =
		createDevice(EDT_OPENGL, dimension2d(640, 480),16,false,false,false,0);
//najważniejsa funcja silnika, występuje w każdym programie i posiada, 7 parametrów:
// - typ urządzenia mamy do wyboru EDT_NULL, EDT_SOFTWARE, EDT_BURNINGSVIDEO, 
//EDT_DIRECT3D8, EDT_DIRECT3D9 i ostatni EDT_OPENGL 
// który jest najszęściej przezemnie używany (sami dowiedzie się dlaczego)
// - (const) wielkośc okna
// - liczba bitów na piksel, tylko w trybie pełnoekranowym (16 lub 32)
// - (bool) tryb pełnoekranowy
// - (bool) bufor szablonowy (przyda się w przyszłości)
// - (bool) synchronizacja pionowa (przyda sie w rpzyszłości przy opcjach pełnoekranowych)
// - bezpośrednie tłumaczenie odbieracz zdażeń, uniwersalne urądzenie do obsługi 
//błedów, klawiatury, myszy, róznych zdażeń z GUI i wiele innych

	if (device == 0)
		return 1; // sprawdzamy czy urządzenie zostało utworzone

	IVideoDriver* driver = device->getVideoDriver();
	//pobieramy wkaźnik do VideoDriver, skraca to pisanie programu w przyszłości
	// nie musimy ciągle pisać device->getVideoDriver()

	device->setWindowCaption(L"Program testowy");//nagłówek okna
	
	while(device->run())//tworzymy głóną pętle programu w której uruchamiamy nasze urządzenie
	{
		driver->beginScene(true, true, SColor(255,100,100,100),0,0);
		//funcja beginScene posiada 5 parametrów:
		// - (bool) czyszczenie backBuffera
		// - (bool) czyszczenie z buffera
		// - color jaki ma byc uzyty do czyszczenia bufora
		// - uchwyt do innego okna (nie używany w tym programie)
		// - wskaźnik określający źrodłowy obszar który zostanie przedstawiony
		
		// jesli byśmy chcieli coś narysowac w tym oknie wpisywalibyśmy to tutej
		
		driver->endScene();//kończymy scene

	}
	device->drop();//każdy obiekt utowrzony za pomocą funcji create, musi zostac usuniety.
	return 0;
}

   



PiotrSOG