Hi,
ich möchte später eine 2D Map rendern mit Spalten * Zeilen und Höhe (Tiefe).
Ich habe also eine Struktur im Speicher die mir genau diese Map, erstmal ohne die Tiefe, darstellt.
Der Plan ist nun später einfach über die Map zu laufen und einzelne Elemente davon zu rendern nämlich genau die, welche gerade auch zu sehen sind.
Nun dachte ich probier erstmal ein bischen, also habe ich mir eine *.bmp Datei erstellt 16x16 Pixel, und in meine OnRender-Methode folgendes eingebaut.
Code:
/************************************************************************/
/* public OnRender */
/************************************************************************/
void CApp::OnRender()
{
driverValue->beginScene(true, true, irr::video::SColor(0,120,102,136));
for(int x = 0; x < 10; x++) // waagerechte
{
for(int y = 0; y < 10; y++) // senkrechte
{
driverValue->draw2DImage(this->testTexture,
irr::core::position2d<irr::s32>(x*16, y*16),
irr::core::rect<irr::s32>(0,0, 10*16, 10*16), 0,
irr::video::SColor(255,255,255,255),
true);
}
}
driverValue->endScene();
}
Das klappt auch soweit, allerdings betragen meine FPS jetzt nur noch 42 statt 289, wenn ich dieses hier nicht render.
Wenn ich statt der Schleifen folgendes mache:
Code:
/************************************************************************/
/* public OnRender */
/************************************************************************/
void CApp::OnRender()
{
driverValue->beginScene(true, true, irr::video::SColor(0,120,102,136));
driverValue->draw2DImage(this->testTexture,
irr::core::position2d<irr::s32>(0, 0),
irr::core::rect<irr::s32>(0,0, 10*16, 10*16), 0,
irr::video::SColor(255,255,255,255),
true);
driverValue->endScene();
}
Dann wird im Grunde das gleiche gerendert, allerdings viel schneller 228 FPS statt 42. Was mir im Grunde klar ist, da ich nur einen Aufruf habe, statt 10x10 Funktionsaufrufen.
Aber meine Map wird später ja nicht aus den gleichen Elementen bestehen, die ich mal eben so rendern kann.
Wo hab ich also meinen Denkfehler?
Ich hoffe das Problem ist deutlich geworden.
