Proč porovnávání elementu z arraye trvá tak dlouho? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Proč porovnávání elementu z arraye trvá tak dlouho? – C / C++ – Fórum – Programujte.comProč porovnávání elementu z arraye trvá tak dlouho? – C / C++ – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Dave_F
~ Anonymní uživatel
2 příspěvky
24. 1. 2021   #1
-
0
-

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? 

Nahlásit jako SPAM
IP: 62.245.112.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý