IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: neviditelné globální proměnné, respektive globální pole - global.variable[x,y]

Aktivity
Avatar
husarik.marek:30.7.2014 18:49

Omlouvám se, že s dotazem na globální proměnné otravuji pořád dokola, ale vždy narazím na nový problém, kdy něco nefunguje.

Vytvořil jsem hru, kde se pozadí vykresluje na základě pole - příklad:

                                            ////Travnatá plocha
for (y=0; y<=23; y+=1)                      //24 řad
    for (x=0; x<=31; x+=1)                  //1 řádek trávy
    global.pozadi[x,y]=4

Problém spočívá v tom, že jeden objekt je schopen s tímto polem normálně pracovat jako s globálními proměnnými - příklad fungujícího eventu Draw jednoho objektu:

switch global.pozadi[x,y]
        {
        case 1:             ///1 = water - vykresluje meandry vody
        {
        {if global.pozadi[x,y-1]!=1 && global.pozadi[x-1,y]!=1 && global.pozadi[x+1,y]!=1 && global.pozadi[x,y+1]=1
            draw_sprite (s_water_1,1,x*32,y*32);}
atd...

V dalším objektu ovšem obdobný kód v eventu Creation nefunguje vůbec - příklad:

if global.pozadi[x,y]=1
    {
    x=axey*32;
    y=axey*32;
    }
else
    {
    x=axey*32;
    y=0;
    }

Chybová hláška oblíbené "unknown variable or array out of bounds".

Zkoušel jsem pole inicializovat v creation kódu dané místnosti, ale ani to nepomohlo.

Nemáte tušení, kde může být zakopaný pes?

 
Odpovědět
30.7.2014 18:49
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na husarik.marek
TomBen:30.7.2014 23:07

Nepoužívej x a y jako indexy v poli.

Nahoru Odpovědět
30.7.2014 23:07
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.