Skocz do zawartości

cross

Użytkownicy
  • Postów

    3
  • Dołączył

  • Ostatnia wizyta

Informacje

  • Użytkownik GameMaker Studio 2
    Tak
  • Użytkownik GameMaker Studio
    Nie
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Tak

Osiągnięcia cross

Chicken

Chicken (1/13)

0

Reputacja

  1. Dziękuję za pomoc. Zmieniłem tylko to: with(instance_nearest(mouse_x, mouse_y, oMonster){ // Musiałem tego użyć, żeby poruszał się objekt, którego klikam if(mouse_check_button_pressed(vk_left) && oControl.monster==noone && collision_ponit(mouse_x, mouse_y, oMonster, true, false)){ animuj = true; oControl.monster = id } } na to: with(instance_nearest(mouse_x, mouse_y, oMonster){ // Musiałem tego użyć, żeby poruszał się objekt, którego klikam if(mouse_check_button_pressed(vk_left) && collision_ponit(mouse_x, mouse_y, oMonster, true, false)){ oControl.monster = noone; oControl.monster = id; } } Bo wcześniej nie zatrzymywało i nie uruchamiało instancji po drugim kliknięciu myszki - po prostu tylko raz przypisywało zmiennej oControl.monster wartość ID i przy następnym kliknięciu warunek if nie mógł być spełniony (oControl.monster==noone), bo nigdzie poza eventem Create nie jest ta zmienna ponownie ustawiana na noone. Ale to już drobna modyfikacja, ważne że mnie naprowadziłeś
  2. Witam, mam mały problem z instancjami. Mianowicie tworzę prostą gierkę, w krórej skryp losuje i tworzy przeciwników /// FUNKCJA createMonster(x, y, hp) var xx = argument0 var yy = argument1; var hp = argument2; newMonster = instance_create_layer(xx, yy, "Arena", oMonster); // oMonster to objekt, w którym przechowuje wszystkich przeciwników (130) newMonster.image_index = irandom_range(0, 130); // losowanie spośród 130 przeciwników newMonster.hp = hp; /// oMonster - STEP with(instance_nearest(mouse_x, mouse_y, oMonster){ // Musiałem tego użyć, żeby poruszał się objekt, którego klikam if(mouse_check_button_pressed(vk_left) && collision_ponit(mouse_x, mouse_y, oMonster, true, false)){ animuj = true; } } /// oMonster - DRAW if(animuj){ y += swith; // na starcie swith=1 if(y >= 110){ swith = -1; } else if(y <= 100){ swith = 1; } } no i teraz w oMonster mam, że jak kliknę na niego myszką, to zaczyna sie pętla która "animuje", zmienia położenie góra->dół->góra i chcę, aby po kliknięciu kolejnego przeciwnika (oMonster), ten poprzedni przestał się poruszać. EDIT: Pisałem z pamięci, także jeśli znajdzie się w kodzie jakaś literówka, to nieważne - kod w GMS2 działa, tylko brakuje mi pomysłu (albo pora taka) jak zrobić to o czym pisałem. Możliwe, że jak jutro na spokojnie usiądę, to znajdzie się rozwiązanie, ale fajnie by było, aby ktoś się tutaj udzielił - lepiej mieć kilka rozwiązań niż żadnego
  3. Hej jak w prosty sposób zrobić tak, żeby za każdym kliknięciem myszki zmienna zwiększała sie o 1, ale tylko do 10 i następne kliknięcie będzie zmniejszało zmienną o 1 aż do zera. Gdy będzie zero, to znowu będzie zwiększana i tak w koło. Chodzi mi o to, czy jest jakaś funkcja od tego, coś jak funkcja clamp(x, 0, 10); która zwraca liczbę z przedziału od 0 do 10, nawet jak dalej będziemy zwiększać X. Tylko mi potrzeba jeszcze żeby robiła się pętla zwrotna. EDIT: for() while() odpada, bo pętla wstrzymuje kod, aż do jej zakończenia, a nie o to mi chodzi. y += add; if(y == 10){ add = -1; } else if(y == 0){ add = 1; } chodzi o takie coś, ale skrócone :/
×
×
  • Dodaj nową pozycję...