Wizard Opublikowano 26 Lipca 2007 Udostępnij Opublikowano 26 Lipca 2007 Kolejny problemik.... nie wiem jak zrobić skrypt, dzięki któremu, gdy postać stanie na jakimś tilesie i zmieni się jego pozycja o x-16, a gdy zejdzie wraca do normy. Kombinowałem na wiele sposobów, ale nadal jak takie "coś" wykonać. Proszę o pomoc. ~Wizard Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 26 Lipca 2007 Udostępnij Opublikowano 26 Lipca 2007 a można normalnie? Jaśniej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 26 Lipca 2007 Udostępnij Opublikowano 26 Lipca 2007 Kolejny problemik.... nie wiem jak zrobić skrypt, dzięki któremu, gdy postać stanie na jakimś tilesie to zmieni się jego pozycja o x-16, a gdy zejdzie to wraca do normy. Kombinowałem na wiele sposobów, ale nadal jak takie "coś" wykonać. Proszę o pomoc. ~Wizard O to chodzi ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wizard Opublikowano 26 Lipca 2007 Autor Udostępnij Opublikowano 26 Lipca 2007 Chodzi o to, aby posatać, gdy stanie w jakimś miejscu, wtedy zmienia się jej położenie x (-16), a kiedy przejdzie za to miejsce, to wtedy wraca do położenia x z przed wejścia na to miejsce. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 26 Lipca 2007 Udostępnij Opublikowano 26 Lipca 2007 pozycja x automatycznie sie zmienia kiedy przesówasz obiekt bo zeby go przesunąć to musisz coś do tego x dodać. Coś bez sensu tłumaczysz, napisz to normalnie, moze np napisz jaki efekt chcesz osiągnąć, po co ci to? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dziadekkleofas Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 Chodzi o to, aby posatać, gdy stanie w jakimś miejscu, wtedy zmienia się jej położenie x (-16), a kiedy przejdzie za to miejsce, to wtedy wraca do położenia x z przed wejścia na to miejsce. No to: x -= 16 A gdy opuści obiekt: x += 16 Zadowolony? Zresztą, nie wiemy po co ci to i w ogóle jak się ma ta pozycja do całego planu gry (czy to widać z góry, czy z boku itp.). A może po prostu chodzi ci o trampolinę? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wizard Opublikowano 27 Lipca 2007 Autor Udostępnij Opublikowano 27 Lipca 2007 To ma wyglądać mniejwięcej tak: A gdy player przesunie się na pień: Ma nie poprostu przejść jakby go nie było, tylko przesunąć swoją pozycję o 16px w górę (-16), dzięki czemu będzie wyglądało jakby stał na pieńku, a gdy z niego zejdzie, to wraca do normy. Problem w tym że to jest tile, ale mogę na to nałożyć niewidzialny obiekt.... Już rozumiecie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 To ustaw obiekty które przesuną go w górę. Zrób sobie jakieś z i rysuj obiekt na x, y - z. Proste jak drut. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Adster Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 A nie wystarczy po prostu przesunąć rysowanego sprita o -16 y do góry? :) Już masz efekt. Robisz tylko ten niewidzialny obiekt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wizard Opublikowano 27 Lipca 2007 Autor Udostępnij Opublikowano 27 Lipca 2007 Coś takiego: if (objPlayer.x = x) && (objPlayer.y = y) { objPlayer.z -= 16; } else { objPlayer.z = objPlayer.x; } i w objPlayer zmienną z ustawić...? @up ale to by mi został na -16 ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 jak nie stoi to chyba z=0 :P EDIT: Adsterowi chodziło o RYSOWANIE a nie przeniesienie pozycji :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Adster Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 @up ale to by mi został na -16 ;p Nie, robisz zmienną, która po kolizji z tym niewidzialnym obiektem zmienia się na -16, a gdy do kolizji nie dochodzi, wtedy przyjmuje wartość 0. Wszędzie tam, gdzie rysujesz sprity (draw_sprite np.) w argumencie y piszesz: y+zmienna EDIT: Zauważ, że w ten sposób możesz łatwo robić wysokości, jak np: schody. Wystarczy, że będziesz zmieniał tą zmienną na taką wartość, jaka jest do podniesienia potrzebna. :) Zresztą to jest dość podobne do tego Tymonowego, chyba nawet w praktyce identyczne. ;d Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wizard Opublikowano 27 Lipca 2007 Autor Udostępnij Opublikowano 27 Lipca 2007 Poza tym osie mi się pokręciły :P oczywiście chodzi o y (przepraszam za zamieszanie, ale nie ma ludzi nieomylnych :P) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Lipca 2007 Udostępnij Opublikowano 27 Lipca 2007 http://www.gmclan.org/up152_11_z.html Bo wy nigdy mu tego nie wytłumaczycie. :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wizard Opublikowano 27 Lipca 2007 Autor Udostępnij Opublikowano 27 Lipca 2007 Wielkie dzięki :D (chyba) sobie już poradzę :) EDIT: hmmm.... mam problem - postać zatrzymuje się przy kolizji z obiektem, zamiast wejść na niego, pomimo że skopiowałem cały skrypt... Używam systemu płynnego ruchu po kratkach Pietera6. objPlayer Create: xx = x; yy = y; z = 0; entered = true; move_speed = 3; image_single=0; image_speed=0; Step: switch (keyboard_key) { case vk_up: if entered { yy -= 32; entered = false; sprite_index=sPlayerWu; image_single=-1; image_speed=0.3; } break; case vk_down: if entered { yy += 32; entered = false; sprite_index=sPlayer1Wd; image_single=-1; image_speed=0.3; } break; case vk_left: if entered { xx -= 32; entered = false; sprite_index=sPlayer1Wl; image_single=-1; image_speed=0.3; } break; case vk_right: if entered { xx += 32; entered = false; sprite_index=sPlayerWr; image_single=-1; image_speed=0.3; } break; } if place_free(xx,yy) { if mp_linear_step(xx,yy,4,false) { entered = true; if (!keyboard_check(vk_up) && !keyboard_check(vk_down) && !keyboard_check(vk_left) && !keyboard_check(vk_right)) { image_single=0; image_speed=0; } } } else { xx = x; yy = y; } Begin Step: z = 0; Collision with objRamp: z = 16; Co jest źle? 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ę