m97 Opublikowano 19 Marca 2012 Udostępnij Opublikowano 19 Marca 2012 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Marca 2012 Administratorzy Udostępnij Opublikowano 19 Marca 2012 oho... w sumie to nie wiadomo co się w tym kodzie dzieje, czym są te tablice itd. Za mało zmiennych Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 19 Marca 2012 Autor Udostępnij Opublikowano 19 Marca 2012 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę