AlanW Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 Mam kilka problemów z moją grą. Szukałem na forum ale nie znalazłem dokładnie tego co mnie interesuje.. :( 1. Mam w grze obiekt1, który występuje w niej wielokrotnie. Gdy go atakuje i skończy się jego hp ma zniknąć 1, a znikają wszystkie... Widziałem już temat z podobnym problemem którym jest jak się okazało - walka. Myślę że u mnie też tak jest - obrażenia dostają wszyscy przeciwnicy, a nie jeden. Więc co zrobić by to ,, health -= 10'' odnosiło się tylko do jednej sztuki tego obiektu? 2. Używam opcji draw do wyświetlania doświadczenia (draw_text(10,24,"Doświadczenie:"+string(global.exp)); ). Co zrobić by ten napis zawsze był w rogu ekranu (przemieszczał się wraz z postacią)? 3.if distance_to_object (object0) < 200 {move_towards_point(object0.x,object0.y,2)} <- co zrobić by obiekt wykonujący tą akcję omijał obiekty solid gdy idzie za object0 tak jak to robi klocek ,,step Avoiding"? 4.Zrobiłem tak, że gdy nacisnę LPM na obiek1 to objekt0 porusza się w jego stronę (step Avoiding) ale gdy nacisnę drugi raz to porusza się szybciej!! Co zrobić by się tak nie działo (3 kliki- nadal ta sama prędkość) ? Do tego też gdy kliknę myszą + wcisnę klawisz ruchu również jest szybciej niż oddzielnie.. 5. Jak zrobić by: gdy object1 dotyka object2 + nacisnę LPM na object2 to wykonana zostanie akcja (health-=10 dla ob.2)? Proszę o w miarę jasne odpowiedzi, bo z GML korzystam od wczoraj... :rolleyes: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 1. health to zmienna globalna i nie odniesiesz się do jednego obiektu. Zrób sobie swoją np. "hp". 2. draw_text(10+view_xview[0],24+view_yview[0],"Doświadczenie:"+string(global.exp)); 3. mp_potential_step 4. pokaż jak to zrobiłeś 5. w object 2 : kolizja z object1 : if mouse_check_button(mb_left) { object2.hp-=10; } jak już wcześniej mówiłem nie używaj HEALTH dla potworków a najlepiej w ogóle. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kamciog Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 4. Może masz ustawioną opcję realtive (dodaje do poprzedniej wartości). Jeśli tak to wyłącz ją :P edit: możesz też mieć speed+= ileś tam. Jeśli tak to zmień to na speed= ileś tam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 Mam kilka problemów z moją grą. Szukałem na forum ale nie znalazłem dokładnie tego co mnie interesuje.. :( 1. Mam w grze obiekt1, który występuje w niej wielokrotnie. Gdy go atakuje i skończy się jego hp ma zniknąć 1, a znikają wszystkie... Widziałem już temat z podobnym problemem którym jest jak się okazało - walka. Myślę że u mnie też tak jest - obrażenia dostają wszyscy przeciwnicy, a nie jeden. Więc co zrobić by to ,, health -= 10'' odnosiło się tylko do jednej sztuki tego obiektu? To zapewne mój temat :) Zrobiłem tak, że dosteje obrażenia przeciwnik, tylko w określonej odległości od zasiegu broni: GML if (distance_to_object (obj_hero)) < zasieg_broni //akcja 2. Używam opcji draw do wyświetlania doświadczenia (draw_text(10,24,"Doświadczenie:"+string(global.exp)); ). Co zrobić by ten napis zawsze był w rogu ekranu (przemieszczał się wraz z postacią)? GML draw_text(10+view_xview[0],24+view_yview[0],"Doświadczenie:"+string(global.exp)) 3.if distance_to_object (object0) < 200 {move_towards_point(object0.x,object0.y,2)} <- co zrobić by obiekt wykonujący tą akcję omijał obiekty solid gdy idzie za object0 tak jak to robi klocek ,,step Avoiding"? GML if (distance_to_object (object0) < 200) mp_potential_step(obiekt.x,obiekt.y,speed,true); 5. Jak zrobić by: gdy object1 dotyka object2 + nacisnę LPM na object2 to wykonana zostanie akcja (health-=10 dla ob.2)? W kolizji obiektu 1 z obiekt 2: GML if (mouse_check_button_pressed(mb_left)) with (object2) health -= 10 Nie wiem w czym może tkwić problem w 4 pytaniu :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 with (object2) health -= 10 Sirluki czytałeś mego posta ? health to zmienna globalna. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AlanW Opublikowano 26 Sierpnia 2008 Autor Udostępnij Opublikowano 26 Sierpnia 2008 Wielkie dzięki - myślę że powinno już działać :lol: (teraz akurat nie mogę tego sprawdzić ale jak wrócę na pewno odpisze ja poszło :) ). (masz rację Sirluki - chodziło o twój temat ;) ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AlanW Opublikowano 26 Sierpnia 2008 Autor Udostępnij Opublikowano 26 Sierpnia 2008 Dobra wszystko sprawdzone i (prawie) wszystko jest ok (pkt. 4 już mi nie potrzebny ale nie była to opcja relative) - mam mały problem z pkt. 1 bo nie mogę go przetestować gdyż: jak będzie wyglądał kod ,że gdy hp object2 będzie równe 0 to się on zniszczy(usunie)? I jeszcze jak będzie wyglądało zastąpienie w pkt.5 LPM na Ctrl? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 że gdy hp object2 będzie równe 0 to się on zniszczy(usunie)? w stepie obiektu2 daj: GML if health<=0 instance_destroy() I jeszcze jak będzie wyglądało zastąpienie w pkt.5 LPM na Ctrl? GML if keyboard_check(vk_control) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AlanW Opublikowano 26 Sierpnia 2008 Autor Udostępnij Opublikowano 26 Sierpnia 2008 ok dzięki tu już wszystko gra ale wracam do mojego pkt.1- nadal znikają wszystkie.. :unsure: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 po pierwsze zmień health na np. hp wszystko zależy od tego, jak masz ustawiony atak. Jeżeli w kolizji jest akcja to odejmowanie życia będzie wyglądać tak: GML other.hp-=10 Jeżeli inaczej (np. w step) to musisz sprawdzić, który obiekt znajduje się najbliżej: GML najblizszy=instance_nearest(x,y,object2) najblizszy.hp-=10 sposobów na utratę życia jest tak dużo, jak sposobów na atakowanie, więc jak podasz kod na atak, to będzie najlepiej i najszybciej ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AlanW Opublikowano 26 Sierpnia 2008 Autor Udostępnij Opublikowano 26 Sierpnia 2008 Dałem to pierwsze i jest ok ale chciałem jeszcze żeby atak wykonywał się po kolizji i wciśnięciu ctrl. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 26 Sierpnia 2008 Udostępnij Opublikowano 26 Sierpnia 2008 GML if place_meeting(x,y,cos) && keyboard_check(vk_control) //atak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AlanW Opublikowano 27 Sierpnia 2008 Autor Udostępnij Opublikowano 27 Sierpnia 2008 Ok, dzięki już jest tak jak chciałem. Ale jeszcze 2 malutkie pytanka :rolleyes: 1. Da się zrobić tak w tym kodzie > if distance_to_object (object0) < 200 {mp_potential_step(object0.x,object0.y,2,object8)} < by ten obiekt w drodze do object0 omijał tylko object8? (ten [object8] na końcu chyba nic nie zmienia poza tym że bez niego gra się nie uruchamia - nadal omija wszystkie...) 2. global.szybkosc+=1 < (to jest wpisane w collision objektu) chce żeby dodawał to tylko raz (w czasie kolizji) 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ę