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

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

Avatar
husarik.marek:

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
Redaktor
Avatar
Odpovídá na husarik.marek
TomBen:

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.