m97 Opublikowano 26 Listopada 2011 Udostępnij Opublikowano 26 Listopada 2011 Dlaczego ten kod nie działa: GML if(place_meeting(x,y+1,ziemia)){ with(collision_point(x,y-1,ziemia,true,true))zmienianie_ziemi(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 26 Listopada 2011 Udostępnij Opublikowano 26 Listopada 2011 1. w place_meeting jest y+1, a w collison y-1 2. sprubój 2 ostatnie argumenty na false. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 26 Listopada 2011 Autor Udostępnij Opublikowano 26 Listopada 2011 Zmieniłem, skrypt nadal nie działa. Oto kod po zmianie: GML if(place_meeting(x,y+1,ziemia)){ with(collision_point(x,y+1,ziemia,false,false))zmienianie_ziemi(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 26 Listopada 2011 Udostępnij Opublikowano 26 Listopada 2011 zacznij od tego, co on ma właściwie robić? if(place_meeting(x,y+1,ziemia)){ with(place_meeting(x,y+1,ziemia))zmienianie_ziemi(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 26 Listopada 2011 Autor Udostępnij Opublikowano 26 Listopada 2011 Ma zmieniać sprite_index ziemi, która jest pod niszczoną. Kod w skrypcie: GML sprite_index = sZiemiaZTrawa; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 26 Listopada 2011 Udostępnij Opublikowano 26 Listopada 2011 to może var o; o=place_meeting(x,y+1,ziemia) if o o.sprite_index=sziemiaztrawa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 26 Listopada 2011 Autor Udostępnij Opublikowano 26 Listopada 2011 Nie działa. Sprite_index zmienia się bohaterowi, który nie stoi pod ziemią. O dziwo taki kod działa: GML if(place_meeting(x,y-1,oPiasek)){ with(collision_point(x,y-1,oPiasek,1,1)) spadanie_piasku(); } To samo dzieje się z ziemią jeśli zamiast plusa dam minus. Oto cały kod w wywołujący się podczas kliknięcia na obiekt ziemia lewym przyciskiem myszy: GML var o; o=place_meeting(x,y+1,ziemia) o.sprite_index=sZiemiaZTrawa if(place_meeting(x,y-1,oPiasek)){ with(collision_point(x,y-1,oPiasek,1,1)) spadanie_piasku(); } if(Pokoj = 0){ instance_destroy(); effect_create_below(ef_smoke,x+16,y+16,1,c_maroon) a = 0 while(a < 40){ if(plecak[a,0] = false){ plecak[a,0] = true plecak[a,1] = pZiemia plecak[a,2] = true plecak[a,3] = 32 plecak[a,4] = 1 plecak[a,5] = 1 a = 0 exit } if(plecak[a,1] = pZiemia){ if(plecak[a,4] < plecak[a,3]){ plecak[a,4] += 1 exit } } a += 1 } a = 0 } Ziemia to kwadrat o boku 32. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 27 Listopada 2011 Udostępnij Opublikowano 27 Listopada 2011 Zapewne w collision_point y ma złą wartość, musisz pamiętać ze liczysz od orginu. Jeśli jest wycentrowany to musisz odjąć jeszcze 16 px Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 27 Listopada 2011 Autor Udostępnij Opublikowano 27 Listopada 2011 Ziemia nie jest wycentrowana tak jak inne obiekty w mojej grze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 27 Listopada 2011 Udostępnij Opublikowano 27 Listopada 2011 Podaj kod skryptu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 27 Listopada 2011 Autor Udostępnij Opublikowano 27 Listopada 2011 Oto informacje o obiekcie ziemia: GML Information about object: ziemia Sprite: sZiemia Solid: true Visible: true Depth: 0 Persistent: false Parent: Mask: Create Event: execute code: if(place_free(x,y-1)){ sprite_index = sZiemiaZTrawa } Step Event: execute code: if((dzien >108)&(dzien<209)){ if not (distance_to_object(pochodnia)<64){ sprite_index = tlo2 } } if(dzien = 218){ dzien = 0 } Mouse Event for Left Pressed: execute code: var a var b var c execute code: if(place_meeting(x,y+16,ziemia)){ with(collision_point(x,y+16,ziemia,1,1)) zmienianie_ziemi();//nie działa } if(place_meeting(x,y-1,oPiasek)){ with(collision_point(x,y-1,oPiasek,1,1)) spadanie_piasku();//działa } if(Pokoj = 0){ instance_destroy(); effect_create_below(ef_smoke,x+16,y+16,1,c_maroon) a = 0 while(a < 40){ if(plecak[a,0] = false){ plecak[a,0] = true plecak[a,1] = pZiemia plecak[a,2] = true plecak[a,3] = 32 plecak[a,4] = 1 plecak[a,5] = 1 a = 0 exit } if(plecak[a,1] = pZiemia){ if(plecak[a,4] < plecak[a,3]){ plecak[a,4] += 1 exit } } a += 1 } a = 0 } Kod w skrypcie: GML sprite_index = sZiemiaZTrawa; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 27 Listopada 2011 Udostępnij Opublikowano 27 Listopada 2011 if(place_meeting(x,y+17,ziemia)){ with(collision_point(x,y+17,ziemia,1,1)) zmienianie_ziemi(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 27 Listopada 2011 Autor Udostępnij Opublikowano 27 Listopada 2011 Dałem y+32 i działa. Dziękuję wszystkim za pomoc. 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ę