Cau lidi shanim nekoho kdo by prelozil 15tutorialu o programovani jednalo by se o IRRLICHT engine http://irrlicht.sourceforge.net/tutorials.html bylo by to zadarmo (jen pro dobry pocit a zverejneni jmena u prekladu) udelal bych nato web kde by tyto prelozene trutase byli pokud se tu nekdo najde kdo by mi chtel pomoci (nemusi byt jen jeden )?:pche:? tak at se mi ozve bud to sem nebo na mail : tomas.pajank@centrum.cz nebo ICQ : 214147180 jeste vsem jednou dekuji za pripadnou pomoc?:pc:?
Fórum › Inzerce
Preklad z AJ do CJ PLS
Výška 1
Výuka 1: HelloWorld
Tento Tutorial ukazuje jak vztyčit IDE pro použití Irrlicht Engine a jak psát jednoduché HelloWorld program s tím. Program ukáže jak použít základy VideoDriver, GUIEnvironment a SceneManager.
Výsledek tohoto příkladu bude vypadat toto:
Nastavení IDE
Použít motor, my budeme muset zahrnout hlavičkový soubor <irrlicht.h>, která může být nalezený v Irrlicht Engine SDK adresáři zahrnout. Nechat kompilátor najde tuto hlavičku registrovat, adresář kde to je umístěné by měl být specifikovaný kdesi. Toto je různé pro každou IDE a kompilátor. Já vysvětlím jak abys to jsem udělal v Microsoft Visual Studio C++ 6.0 a .S?:
? Jestli vy užíváte verzi 6.0, vybere Menu Extrasy - > volby.Vyberte adresáře tabulátor, a vyberte ' zahrňte ' položku v combo boxu. Přidejte zahrňte adresář Irrlicht Engine složky k seznamu adresář. Teď kompilátor najde Irrlicht.h hlavičkový soubor. My také potřebujeme umístění irrlicht.lib být uvedený, tak vybrat ' ' tabulátor knihoven a přidat libVisualStudio adresář.
Jestli vaše IDE je Visual Studio .NET, vyberte nástroje - > volby. Vyberte Projects vstup a potom vybrat VC++ adresáře.Vybrat ' předváděcí adresáře pro začlenění soubory ' v combo boxu, a zahrnout adresář Irrlicht Engine složky k seznamu adresářů tak kompilátor najde Irrlicht.h hlavičkový soubor. My také potřebujeme irrlicht.lib být nalezený, tak vybraný předváděcí adresáře pro knihovní fondy ' a přidají libVisualStudio adresář.
Nechejte začátek!
Poté co my vztyčili IDE, kompilátor bude vědět kde najít Irrlicht Engine hlavičku soubory tak my můžeme zahrnout to nyní do našeho kódu.
#include <irrlicht.h>
V Irrlicht Engine, všechno může být nalezené v prostorách jmenu ' irr ' . Tak jestli chcete užívat třídu motoru, budete muset psát irr:: před jménem třídy. Například, použít IrrlichtDevice, napište: irr::IrrlichtDevice. Pro vyhnout se muset dát irr:: před jména každé třídy, my řekneme kompilátoru že my užíváme ty prostory jmen.
using namespace irr;
Tam jsou 5 náhradnické- prostory jmeny v Irrlicht Engine. Podívejte se na ně: vy můžete číst detailní popis nich v dokumentaci kliknutím na špičkovou položku v menu ' Namespace seznam ' . Pro držet tento příklad jednoduchý, my nechceme muset specifikovat jmenné mezery, z toho důvodu:
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
Aby mohl užívat Irrlicht.DLL soubor, my potřebujeme spojit s Irrlicht.lib. My jsme mohli nastavit tento možnosti v projektových nastaveních, ale ulehčit, že my užíváme direktivu programu koment??:
#pragma comment(lib, "Irrlicht.lib")
Teď hlavní metoda: držet tento příklad jednoduchý my užíváme neplatné hlavní(), která může být použité na nějakou platformu. Ač tak nebo onak, na Windows platformy, my jsme mohli také užívat WinMain metodu jestli my bychom chtěli zbavit se okna konzoly které nahoru při zavinění programu s hlavní().
int main()
{
Nejdůležitější funkce motoru je ' createDevice ' funkce. Irrlicht Device, která je kořenný objekt pro dělání všeho s motorem, může být vytvořený s tím. createDevice() m? 7 parametry:
? deviceType: Typ za??zen?. Toto může být aktuální Null zařízení, Software zařízení, DirectX8, DirectX9, nebo OpenGL. V tomto příkladu my užíváme EDT_SOFTWARE, ale, vyzkoušet důkladně jim, možné, že bys mohl chtít měnit to EDT_NULL, EDT_DIRECTX8 nebo EDT_OPENGL.
? windowSize: Velikost okenního nebo plného obrazovkového módu být vytvořené. V tomto příkladu my užíváme 512x384.
? kousky: Množství počtů bitů na obrazové bod kdy v plném rozsahu obrazovkový mód. Toto by mělo být 16 nebo 32. Tento parametr je ignorovaný při běhu v okenním módu.
? fullscreen: Specifikuje jestli my chceme zařízení běžet v plném obrazovkovém módu nebo ne.
? stencilbuffer: Specifikuje jestli my chceme použít buffer šablony pro kresbu stínů.
? vsync: Specifikuje jestli my chceme mít vsync umožněný. Toto je jen užitečné v plném obrazovkovém módu.
? eventReceiver: Námitka proti přijmout události. My nechceme použít tento parametr zde, a nastaví to 0.
IrrlichtDevice *device =
createDevice(EDT_SOFTWARE, dimension2d<s32>(512, 384), 16,
false, false, false, 0);
Teď my nastavili titul okna nějakému hezkému textu.Všimněte si, že tam je ' L ' před řetězem: Irrlicht Engine užívá široké znakové řetězce při zobrazování textu.
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
Teď my skladujeme ručičku k video řidiči, SceneManager, a grafické u?ivatelské rozhraní prostředí tak, že my ne vždy nemusíme psát zařízení- >getVideoDriver(), zařízení- >getSceneManager(), a zařízení- >getGUIEnvironment().
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
My přidáme ahoj světové do okna používáný GUI prostředí. Text je umístěný v pozici (10,10) tak vrchol levý roh a (200,22) jak spodní pravý roh.
guienv->addStaticText(L"Hello World! This is the Irrlicht Software engine!",
rect<int>(10,10,200,22), true);
Pro displej něco zajímavé, nabíjíme Quake 2 model a displej to. Musíme jen dostat Mesh ze Scene Managera s getMesh() a SceneNode displej oko s addAnimatedMeshSceneNode(). Namísto nakládání Quake2 souboru (.md2), to je tak? možná naložit Mayové cílové soubor (.obj), kompletní Quake3 mapa (.bsp), nebo Milshape soubor (.ms3d).
Mimochodem, to chladné Quake 2 model volal Sydney.md2 byl vymodelovaný od Briana Collins.
IANIMATEDMESH* oko = smgr- >getMesh("../../prostředky/Sydney.md2");
IANIMATEDMESHSCENENODE* uzel = smgr- >addAnimatedMeshSceneNode( oko );
Pro udělat oko dívat se trochu hezké, my měníme jeho materiální trochu: my vyřadíme osvětlení protože my nemáme dynamické světlo v zde a oko by byl totální černé. Pak my nastavili oko rámu tak, že animace je namazaná mezi rámy 0 a 310. Pak, nakonec, my použijeme strukturu k oku. Bez toho oko by byl taženo používáné jen pevné barvy.
jestli (uzel)
{
uzel- >setMaterialFlag(EMF_LIGHTING, nepravda);
uzel- >setFrameLoop(0, 310);
uzel- >setMaterialTexture( 0, ?idi?- >getTexture("../../prostředky/Sydney.bmp") );
}
Pro dívat se na oko, my umístíme kameru do 3d prostoru v pozici (0, 10, -40). Kamera vypadá tam odtud (0,5,0).
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
Ok. Teď, když my vztyčili scénu, nechejme kreslete všechno: my zařízení za chvíli() oko dokud zařízení nechce běžet více. Toto by byl kdy uživatel zavírá okno nebo tiskne ALT+F4 ve Windows.
while(device->run())
{
Všechno musí být tažené mezi beginScene() a endScene() voláním. BeginScene čistí obrazovka s barvou a také buffer hloubky, jestli požadovaná. Pak my nechali Scene Managera a GUI prostředí kreslí jejich obsah. S endScene() volat, všechno je přítomná na obrazovce.
river->beginScene(true, true, SColor(0,200,200,200));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
Poté co my jsme ukončené, musíme vymazat Irrlicht Device vytvořené dříve s createDevice().S Irrlicht Engine, měl bys vymazat všechny objekty vy jste vytvořili s metodou nebo funkce který s ' vytvořit ' . Objekt je zrušený jednoduše voláním - >sn??it(). Podívej se na dokumentace pro více informací.
device->drop();
return 0;
}
To je to. Sestavte a běžte.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Překlad A na 1 — založil Petr Zbořil
Překlad na P4 — založil 16bit
Překlad z Delphi — založil neo_
Moderátoři diskuze