Skocz do zawartości

RTS ciag dalszy


Rekomendowane odpowiedzi

Witam! Otóż mam takie dwa problemy...

Pierwszy:

Mam wiele obiektów (gra strategiczna) jako budynki. Jak kliknę w jeden z nich to ten budynek ma klik=1, a pozostałe budynki mają klik=0. I w draw mam "if klik=1 draw_text..." co oznacza że jak budynek jest wybrany wyświetla jego opis. No i tu mam problem. Mam dwa takie same budynki. Mają takie same opisy jednak oba mają obiekty ładujące, np. w jednym się ładuje jednostka a w drugiej nie. I jak klikam taki budynek, to w obu klik=1. Jak to zmienić? Chciałbym zrobić abym jak kliknął w budynek1 on ma klik=1 a inne budynek1 (takie same obiekty) miały klik=0. Jak to zrobić?

No i mam jeszcze drugi problem..

Otóż:

Mam obiekt który ma w step:

GMLx=mouse_x

y=mouse_y

I jak left released myszką to zamienia się w jakiś tam obiekt.

No i jak klikam w niego to się nic nie dzieje!

Dla porównania mam drugi, taki sam obiekt jednak z innym spritem i jak w niego kliknę to działa. O co chodzi?

 

Proszę o pomoc, pozdrawiam :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze zła nazwa tematu, masz chwile na zmianę zanim odnotuje to w Twoim warnologu.

 

1:

obiekt1 -> mouse_pressed -> (gml): klik = true;

jeżeli wywołujesz kod z tego właśnie obiektu to on odwoła się tylko i wyłącznie do siebie

 

2:

czyli rozumiem, że obiekt porusza się 'za myszką'?

jak znam życie, to pewnie ten obiekt nie ma ustawionego sprita. Nie mówię tu o draw_sprite, tylko typowo przypisaniu sprita/maski obiektowi (bądź ewentualnym sprite_index/mask_index = sprite_hero). Obiektowi bez przypisanego sprita/maski nie będą sprawdzane żadne eventy kliknięcia myszki bądz kolizji, w tym także place_free itd.

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze zła nazwa tematu, masz chwile na zmianę zanim odnotuje to w Twoim warnologu.

 

1:

obiekt1 -> mouse_pressed -> (gml): klik = true;

jeżeli wywołujesz kod z tego właśnie obiektu to on odwoła się tylko i wyłącznie do siebie

Nie za bardzo zrozumiałem :P A co do twojego zrozumienia to chodzi mi o to żeby jak kliknę o_kuznia to inne o_kuznie miały klik=0 a ta wybrana klik=1. A jak tu zrobić że np. Mam dwie kuźnie i klikam z jednej do drugiej? W jednej musi klik być 0 a w drugiej 1....

2:

czyli rozumiem, że obiekt porusza się 'za myszką'?

jak znam życie, to pewnie ten obiekt nie ma ustawionego sprita. Nie mówię tu o draw_sprite, tylko typowo przypisaniu sprita/maski obiektowi (bądź ewentualnym sprite_index/mask_index = sprite_hero). Obiektowi bez przypisanego sprita/maski nie będą sprawdzane żadne eventy kliknięcia myszki bądz kolizji, w tym także place_free itd.

To obiekt mający sprite i on ma image_alpha=0.6 i image_speed=0. To chodzi za myszką i ma za zadanie wybranie miejsca dla budowy budynku. Jak kliknę to sie zamienia w animację budowy. No i mam taki sam obiekt, jak już wpsomniałem o_zbrojownia i ona jest tak samo zbudowana i działa jak w nią kliknę. Tego nie rozumiem...

Odnośnik do komentarza
Udostępnij na innych stronach

1.

GML
if(mouse_check_button_pressed(mb_left))

{

if(!klik)//gdy klik rowna sie 0

{

o_kuznia.klik=false;//wszystkim kuzniom przypisz klik na 0

klik=true;//klik kliknietej kuzni ma wartosc 1

}

else//w przeciwnym wypadku

{

klik=false;

}

}

 

2. Może któraś z zmiennych przyjmuje złą wartość na początku i jakiś if nie jest spełniony.

Odnośnik do komentarza
Udostępnij na innych stronach

1.

GMLif(mouse_check_button_pressed(mb_left))

{

if(!klik)//gdy klik rowna sie 0

{

o_kuznia.klik=false;//wszystkim kuzniom przypisz klik na 0

klik=true;//klik kliknietej kuzni ma wartosc 1

}

else//w przeciwnym wypadku

{

klik=false;

}

}

 

2. Może któraś z zmiennych przyjmuje złą wartość na początku i jakiś if nie jest spełniony.

Co do pierwszego pytania to dzięki :P

A co do drugiego to.. hmm...

Jak kliknę '6' to mam if iron>250 instance_create......

I tworze właśnie ten budynek który jest tam gdzie myszka i jak na niego kliknę nadal chodzi za myszką a nie powinienem jak na ten drugi obiekt przystało... W left released nie ma żadnego if.

Aha, dodałbym jeszcze że jak trzęsę myszką (łaże nią gdzie kolwiek i kliknę to działa.)

Odnośnik do komentarza
Udostępnij na innych stronach

Do drugiego. Ale nie jestem pewien czy o to Ci chodziło.

GML (create)
zbudowany=false;

GML (step)
if(!zbudowany)//czy dany obiekt jest zbudowany

{

x=mouse_x;

y=mouse_y;

}

GML (step)
if(mouse_check_button_released(mb_left)&&!zbudowany)

zbudowany=true;

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