SirSyriusz Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 Hej, Jestem nowy i robie swoją pierwszą grę... Nie będzie to Supreme Commander :P ale chwilowo zamierzam napisać prosty Total Annihilation TD. Same budynki, wieże itp, nie ma problemów za bardzo (z wyjątkiem oprawy graficznej...) ale nie moge wpaść na to co zrobić by budować tzn. mam ikonkę która będzie odpowiedzialna za to aby w miejscu gdzie wyznacze stworzyć budynek, ale nie wiem jak wyznaczyc miejsce gdzie ma być zbudowany, chwilowo buduje mi je obok ikony... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 Po prostu użyj mouse_x i mouse_y, które odpowiadają za pozycję x i y myszy. Tak więc kod instance_create(mouse_x,mouse_y,obiekt); stworzy dany obiekt w miejscu, gdzie akurat znajduje się wskaźnik myszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SirSyriusz Opublikowano 12 Lutego 2008 Autor Udostępnij Opublikowano 12 Lutego 2008 Po prostu użyj mouse_x i mouse_y, które odpowiadają za pozycję x i y myszy. Tak więc kodinstance_create(mouse_x,mouse_y,obiekt); stworzy dany obiekt w miejscu, gdzie akurat znajduje się wskaźnik myszy. Właśnie to zrobiłem... wskaźnik myszy znajduje się w tej chwili w pozycji obiektu który inicjuje tą czynność, więc jest tam gdzie ten obiekt... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 jesli chcesz to wysrodkowac czy poprawic pozycje mozesz zrobic tak: GML instance_create(mouse_x-20,mouse_y-20,obiekt); zamien te 20 na taka wartosc ktora ci odpowiada. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 Skoro tak zrobiłeś to wszystko powinno działać, więc w czym problem? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SirSyriusz Opublikowano 12 Lutego 2008 Autor Udostępnij Opublikowano 12 Lutego 2008 Ale to daje mi tylko tyle że będzie to o 20 pixeli przesunięte a ja chce wybrac sobie to miejsce. PS. wie ktoś jak zrobić aby napis tworzony z draw był zawsze na wierzchu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 PS. wie ktoś jak zrobić aby napis tworzony z draw był zawsze na wierzchu? Depth obiektu który rysuje,kolejność rysowania? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SirSyriusz Opublikowano 12 Lutego 2008 Autor Udostępnij Opublikowano 12 Lutego 2008 Hmm wpadłem na pomysł aby ten przycisk odpowiedzialny za budowanie wierzyczki tworzył obj_buduj który ma w step: GML x = mouse_x; y = mouse_y; view_object[0] = id; i gdy sie nacisnie lpm wtedy dopiero buduje ten budynek/wierzyczkę na pozycji myszki. Ale są dwa problemy: 1szy to taki że nie stwarza tego przy lpm a drugi jak nie musieć tworzyć następne obiekty dla karzdego budynku/wierzyczki tylko żeby tworzył ten sam obiekt w zależności co się nacisneło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PRT Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 GML //przy kliknięciu na ikonkę dajesz ze np: buduj=1 //(globalnie lub lokalnie) // i tworzysz obiekt budynek instance_create(mouse_x,mouse_y,domek) // w stepie budynku dajesz if buduj=1 { x=mouse_x y=mouse_y } // w obiekcie budynek w evencie global mouse left released (lub dowolny przycisk ale globalny) // globalny ażeby móc wybrać miejsc gdziekolwiek buduj=0 // dzięki temu budynek stanie w miejscu // musisz dopasować to do swojej gry, i pamiętać o kolizjach tzn. żeby nie budować budynku na budynek itd. //może ten system nie jest najlepszy;) ale na pewno naprowadzi cię na dobry tok myślenia. A co do napisu na wierzchu to tak jak Yoda napisał. Jeśli coś jest rysowane na końcu(jako ostatnie w drawie) to jest na wierzchu. Także jest tak że jeśli obiekt ma depth(głębokość) mniejszą to jest wyżej więc i jego draw jest wyżej ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SirSyriusz Opublikowano 12 Lutego 2008 Autor Udostępnij Opublikowano 12 Lutego 2008 W sumie to sobie już poradziłem... Zrobilem jednego buga i tyle. Ale nadal pozostaje mi pytanie czy moim sposobem potrzebuje tworzyc następny obiekt dla każdego budynku?? Nie da sie zrobić jakiegoś skryptu który bedzie reagował na nacisnięty ostatni guzik/ikonkę? i tworzył odpowiedni budynek? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 Nie da sie zrobić jakiegoś skryptu który bedzie reagował na nacisnięty ostatni guzik/ikonkę? i tworzył odpowiedni budynek? Da się. Zmienne wystarczą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 mozesz dac w create tego obiektu ktory buduje zmienna GML budynek = 0; i np. iknonkom budynkow w menu czy jak ty to masz dac ze jak na niego klikniesz to to zmienna zmienia sie na inna cyferke np. wtedy gdy budujesz program powinien sprawdzac ta zmienna i tworzyc odpowiedni budynek GML if budynek = 1 { instance_create(x,y,baraki)} if budynek = 2 { instance_create(x,y,zbrojownia)} if budynek = 3 { instance_create(x,y,wiezyczka)} mozesz tez to zrobic na switch'ach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 12 Lutego 2008 Udostępnij Opublikowano 12 Lutego 2008 GML //CREATE jakiegos obiektu kontrolującego global.type = -1; //BUTTON danego budynku global.type = obiekt_zamek; //czy jaki tam obiekt chcesz //STAWIANIE BUDYNKOW instance_create( x,y, global.type ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SirSyriusz Opublikowano 12 Lutego 2008 Autor Udostępnij Opublikowano 12 Lutego 2008 GML //CREATE jakiegos obiektu kontrolującego global.type = -1; //BUTTON danego budynku global.type = obiekt_zamek; //czy jaki tam obiekt chcesz //STAWIANIE BUDYNKOW instance_create( x,y, global.type ); No tak, proste i genialne thx. 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ę