Skocz do zawartości

Gdy odległość równa się ileśtam wtedy coś


Rekomendowane odpowiedzi

  • Filar Społeczności

Witam!

 

Biorę się za optymalizację w swojej grze i jak zwykle padam. Otóż mam na przykład w jakimś obiekcie

GML
tex = sprite_get_texture(dab,0);

i gdy zbliżymy się na jakąś odległość wtedy

GML
tex = sprite_get_texture(dab2,0);

a gdy oddalimy się wtedy znów

GML
tex = sprite_get_texture(dab,0);

 

jakieś pomysły? Z pagórka dzięki

Odnośnik do komentarza
Udostępnij na innych stronach

Co to do jasnej cholery ma być? Widzisz w swoim poście jakiekolwiek dobrze sformułowane pytanie? Strzelam że chodzi Ci o zwykłe:

GML
if(point_distance(player.x,player.y,objekt.x,objekt.y)<100)

{tex = sprite_get_texture(dab2,0);}

else

{tex = sprite_get_texture(dab,0);}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Co to do jasnej cholery ma być? Widzisz w swoim poście jakiekolwiek dobrze sformułowane pytanie? Strzelam że chodzi Ci o zwykłe:GMLif(point_distance(player.x,player.y,objekt.x,objekt.y)<100)

{tex = sprite_get_texture(dab2,0);}

else

{tex = sprite_get_texture(dab,0);}

no tak, sorka, z pośpiechu zawsze wychodzą mi takie dyrdymały ;D

wszystko pięknie działa, dzięki :)

Odnośnik do komentarza
Udostępnij na innych stronach

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);

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...