Skocz do zawartości

Zmienianie pozycji


Wizard

Rekomendowane odpowiedzi

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

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

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

To ma wyglądać mniejwięcej tak:

87636490iy4.jpg

 

A gdy player przesunie się na pień:

49072341gz4.jpg

 

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

 

59046471gj4.jpg

 

Już rozumiecie?

Odnośnik do komentarza
Udostępnij na innych stronach

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

@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

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

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