Skocz do zawartości

Zaznaczenie obiektu 1 obiektem 2


Gość

Rekomendowane odpowiedzi

Jak w temacie.. co mam zrobić, że po najechaniu obiektem 2 na 1 i naciśnięciu klawisza ENTER lub Z obiekt 1 zostanie zaznaczony. Jeśli nie sprecyzowałem wystarczająco to upomnijcie mnie.. z góry dzięki ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Albo w step:

GML (STEP)
if (place_meeting(x, y, obj1))

{

if (keyboard_check_pressed(vk_enter) or keyboard_check_pressed(ord("Z")))

{

// zaznaczenie

}

}

 

Poprawka ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Już prawie ok.. ale zmienia mi się grafika object 2.. i do tego skacze parę pól w tył :/

 

GML
if (place_meeting(x, y, hero))

{

if (keyboard_check_pressed(vk_enter) or keyboard_check_pressed(ord("Z")))

{

object_exists(hero)

sprite_index = sprite11;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Kod mam w object 2(wskaźniku), a "skacze" chodzi mi o to, że jak najadę na object 1 i nacisnę enter/z to zmienia się grafika object 2 i ten sam obiekt przesuwa się natychmiast parę kratek w tył.

 

@EDIT

Może to być spowodowane przez źle ustawione Origin w sprite.. ale nawet tego nie umiem dobrze nastawić, bo grafika i tak ustawia się inaczej. Jeśli ktoś chce, to mogę wrzucić projekt.

Odnośnik do komentarza
Udostępnij na innych stronach

Chcesz zamienić graficzkę obj 1, gdy obj 2 najedzie na niego i klikniesz jakiś klawisz. Kod wrzuciłeś do obj 2. To pierwszy błąd. Kod który napisałeś odnosi się do obiektu 2. Obj 2 sam sobie zamienia sprite. Jeżeli chcesz aby kod ten był w obj 2, to musisz potem odwoływać się do obj 1 (np za pomocą with(obj 1), albo za pomocą id) Zastanawiam się po co użyłeś object_exists(hero). Chyba, że hero może zniknąć z mapy. A co do skoku w tył. Możliwe, że w innej części kodu (niezwiązanej z tą akcją) masz fragment, który powoduje przesunięcie obj 2. Albo to co napisałeś. Wina leży w źle dobranym origin. Najlepiej jest jak wszystkie grafiki obiektu mają jednakowe rozmiary i wycentrowany origin.

Odnośnik do komentarza
Udostępnij na innych stronach

Gra jest w stylu izometrycznym, wszystkie sprity są takiego samego rozmiaru(dla jednej postaci, wskaźnik ma już inne rozmiary). object_exists(hero) użyłem, gdyż myślałem, że tym odwołam się właśnie do tego obiektu. Skacze na 100% przez origins, bo nie mam żadnego kodu, który może przesuwać mi wskaźnik. Wrzuciłem kod do obiektu 1, najeżdżam obiektem 2, klikam enter... i nic. Czy muszę ustawić jakąś zmienną dla place_meeting x,y?

Odnośnik do komentarza
Udostępnij na innych stronach

Wpisując samo x i y odwołujesz się do położenia obj. Chyba, że jest w with (obj_jakis){ o tutaj }. Wtedy to x i y dotyczy obj_jakis, mimo, że kod napisany jest w innym obj. Jako ostatni argument wpisujesz obiekt, z którym obj 1 mając kolizję wykonuje akcję.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if place_meeting(x,y,hero) //jesli wskaznik koliduje z hero

{

if keyboard_check_pressed(vk_enter) or keyboard_check_pressed(ord('Z'))

//jesli wcisnieto enter lub 'Z'

{

with (hero) sprite_index=sprite1 //w hero zmien sprite na jakistam

//i costam jeszcze mozna dodac

}

}

W step wskaźnika.

https://gmclan.org/up5908_12_blablabla.html

 

666 postów :*

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