Skocz do zawartości

Niedziałający kod


m97

Rekomendowane odpowiedzi

Witam, uprzedzam, że będzie dużo kodu.

Obiekt piasek:

ev destroy

GML
if(Pokoj = 0){

if(place_meeting(x,y-10,oPiasek)){

with(collision_point(x,y-10,oPiasek,1,1)) spadanie_piasku();

}

if(place_meeting(x,y+32,ziemia)){

with(collision_point(x,y+32,ziemia,1,1)) zmienianie_ziemi();

}

if(place_meeting(x+3,y-10,oKaktus)){

with(collision_point(x+3,y-10,oKaktus,1,1)) niszczenie_kaktusa();

}

effect_create_below(ef_smoke,x+16,y+16,1,c_yellow)

a = 0

sound_play(klik)

while(a < 40){

if(plecak[a,0] = false){

plecak[a,0] = true

plecak[a,1] = pPiasek

plecak[a,2] = true

plecak[a,3] = 32

plecak[a,4] = 1

plecak[a,5] = 1

a = 0

exit

}

if(plecak[a,1] = pPiasek){

if(plecak[a,4] < plecak[a,3]){

plecak[a,4] += 1

exit

}

}

a += 1

}

a = 0

}

 

ev_left_button

GML
var a;

var b;

var c;

if(Pokoj = 0){

if not(place_meeting(x,y,bloczek_niszczony)){

nazwa_nisczonego_bloczka = oPiasek

/*if(plecak[zaznaczona,5] = 3){

 

}*/

/*else{*/

czas_wydobywania = 0.85

/*}*/

instance_create(x,y,bloczek_niszczony)

}

}

 

obiekt bloczek_niszczony:

ev create

GML
image_speed = 10/(czas_wydobywania*room_speed)

sprite_index = animacja_niszczenia

ev animation_end

GML
instance_destroy();

with(collision_point(x,y,nazwa_nisczonego_bloczka,1,1))instance_destroy();

Jeśli niszczę piasek nad którym jest kilka piasków do do plecaka dodaje mi się za dużo piasków. Nie umiem znaleźć tutaj błędu.

Odnośnik do komentarza
Udostępnij na innych stronach

Plecak to dwuwymiarowa tablica inventory. Obiekt bloczek niszczony jest nakładany na obiekt piasku podczas niszczenia. Podpowiem, że ta gra to sandbox, podobny do minecrafta.

Odnośnie plecaka:

GML
plecak [i,0] = false//pusty

plecak [i,1] = pusty//sprite przedmiotu

plecak [i,2] = false//czy stackowalny

plecak [i,3] = 1//liczba stackowalnych przedmiotow

plecak [i,4] = 0//liczba przedmiotow w kratce

plecak [i,5] = 0//rodzaj

plecak [i,8] = 0//żywotność

plecak [i,9] = 0//maksymalna żywotność</span></span></span>

 

GML
if(place_meeting(x,y-10,oPiasek)){

with(collision_point(x,y-10,oPiasek,1,1)) spadanie_piasku();

}

if(place_meeting(x,y+32,ziemia)){

with(collision_point(x,y+32,ziemia,1,1)) zmienianie_ziemi();

}

if(place_meeting(x+3,y-10,oKaktus)){

with(collision_point(x+3,y-10,oKaktus,1,1)) niszczenie_kaktusa();

}

To służy do wysyłania wiadomości innym obiektom. Podpowiem, że po zniszczeniu dodaje się kilka piasków i mocno spadają fps.

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ę...