sprite_get_texture i backgrund_get_texture tak się nie używa tzn. w drawie czy stepie bo to nieoptymalne nontoper convertować.
wszystkie textury wczytaj jednorazowo do zmiennych globalnych. Niech robi to tylko jeden obiekt ładujący wszystkie zasoby.
Create:
GML
globalvar gTex;
gTex[0,0] = sprite_get_texture(dab,0);
gTex[0,1] = sprite_get_texture(dab2,0);
// jakaś inna texturka
gTex[1,0] = sprite_get_texture(trawa,0);
gTex[1,1] = sprite_get_texture(trawa2,0);
// itd</span></span>
Dla ułatwienia sobie jeszcze roboty z zapamiętywaniem indexów możesz wykorzystać customowe stałe ALT+N chyba. Wtedy:
GML
globalvar gTex;
gTex[c_dab,0] = sprite_get_texture(dab,0);
gTex[c_dab,1] = sprite_get_texture(dab2,0);
// jakaś inna texturka
gTex[c_trawa,0] = sprite_get_texture(trawa,0);
gTex[c_trawa,1] = sprite_get_texture(trawa2,0);
// itd</span></span>
Draw:
GML
if ( point_distance(player.x,player.y,objekt.x,objekt.y) < 100 )
d3d_draw_block(x1, y1, z1, x2, y2, z2, gTex[c_dab, 1], hrepeat, vrepeat);
else
d3d_draw_block(x1, y1, z1, x2, y2, z2, gTex[c_dab, 0], hrepeat, vrepeat);