Dobrý den,
v poslední době dělám ve volném čase raycaster, něco na styl renderovacího enginu wolfensteina 3d.
V C++ teprve začínám a tak je možné že mi tu uniká nějaká úplně jednoduchá věc.
Herní mapa je uložena do 2 rozměrného arraye int Map[20][20], potom jsou nějaké výpočty paprsků atd.,
ovšem důležitá je část, kdy porovnávám, jestli se na nějakém místě v mapě nachází nebo nenachází zeď.
Program jede asi na 85 FPS, což je na něco tak jednoduchého příliš málo. Když jsem zpustil profiler, zjistil jsem, že nejvíce program zpomaluje tato část kódu:
if (Map[CheckY][CheckX] != 0)
{
break;
}
Což vlastně ukončí porovnávací cyklus, protože jsem v mapě našel místo s jinou hodnotou než 0, takže paprsek trefil zeď. Jenom nechápu, proč právě tato část programu běží tak pomalu. Je sice pravda, že tento proces kontroly místa v mapě běží vícekrát něž je nutno, protože jsem ho ještě plně nedodělal, ovšem není to jediná věc která běží vícekrát než je nutno. A přesto jen ona dělá takové potíže.
Nevíte tedy někdo co bych měl dělat?