Skocz do zawartości

candy

Użytkownicy
  • Postów

    491
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez candy

  1. Tworzysz nowy sprite i wczytujesz grafikę. Następnie klikasz Edit sprite=>File=>Create from strip. Ustawiasz parametry i masz porozdzielane na mniejsze sprity.
  2. Nie chodzi Ci o to? Tutaj E: Już poprawiłem link.
  3. Ale u Ciebie zawsze niszczy obiekt znacznik, niezależnie co with all powyżej zrobi.
  4. GML b=true;//zmienna pomocnicza with object1//sprawdzaj każdy object1 if(biegnie==false)//jeżeli biegnie jest false znacznik.b=false;//to zmienna pomocnicza b w wyznaczniku jest false with object2//sprawdzaj każdy object2 if(biegnie==false)//jeżeli biegnie jest false znacznik.b=false;//to zmienna pomocnicza b w wyznaczniku jest false . . . with objectN//sprawdzaj każdy objectN if(biegnie==false)//jeżeli biegnie jest false znacznik.b=false;//to zmienna pomocnicza b w wyznaczniku jest false if(b)//jeżeli b jest prawda instance_destroy()//niszcz obiekt znacznik</span></span> Kiedy wszystkie obiekty mają biegnie=true, zmienna pomocnicza b nie zmienia swojej wartości i obiekt jest niszczony. Sprawdzasz tylko te obiekty, w których jest zmienna biegnie.
  5. GML if(punkty==ile_potrzeba_aby_przejść) { room_goto_next() } Sprawdzaj ten warunek za każdym razem jak dodajesz punkty.
  6. Kodzik: GML if(mouse_check_button_pressed(mb_left)) { //akcja }
  7. GML if (zmienna==1) { sprite_index=sprite1; a.hp-=5; a=false; speed=0; } Może o to chodzi. EDIT: Zauważ że masz if(distance_to_object(object1) <=15), a dalej sprawdzasz warunek if(collision_circle(x,y,10,object( 1 albo 0 nie pamietam ),1,0)&&!a). W pierwszym sprawdzasz czy object1 jest w odległości mniejszej bądź równej 15 px, w drugim od 10 px. Jeżeli pierwszy jest prawdą, to wcale nie znaczy, że drugi if także. Dla przykładu załóżmy, że object1 jest w odległości 13px. Warunek pierwszy jest spełniony natomiast drugi nie. Object1 jest za daleko o 3 px, co powoduje, że zmienna a nadal jest false i GM nie odwołuje się do żadnego objectu. Natomiast zmienna=1 i dalsza część kodu jest wykonywana. Przepuszczam, że chciałeś zrobić coś takiego, że gdy object0 jest w odległości 15 px od object1, to go atakuje. Zmienia mu się sprite i odejmuje się object1 5 hp: GML if(distance_to_object(object1)<=15) { if(sprite_index!=sprite1) { a=collision_circle(x,y,15,object( 1 albo 0 nie pamietam ),1,0); a.hp-=5; speed=0; sprite_index=sprite1; } } else { image_index=sprite0; direction=0; speed=2; } Jeszcze musisz dodać kod na zamianę sprita po ataku.
  8. Ja się nie bawię edytorem w GM, tylko wrzucam do painta i szybko przerabiam. A co do tego, że kolo odlatuje to nie mam pojęcia. Może gdzieś masz coś z kodem.
  9. Muszę Cię zasmucić, nic na tym nie widać.
  10. W create napisz: GML max_missile=5; actual_missile_number=max_missile;
  11. Jeżeli masz tylko 6 spritów, to można je szybka przerobić chociażby w paintcie.
  12. GML (create object1) b=false;//zmienna przechowująca id object2, który stworzył object1</span> GML (event tworzenia object1 w object2) a=instance_create(x,y,object1);//zapamiętuje id stworzonego object1 a.b=id;//w stworzonym object1 zapisz pod b id object2 (tego co go stworzył)</span> GML (step object1) x=b.x;//śledź x y=b.y;//śledź y object2</span>
  13. A usunąłeś wcześniej object gracz?
  14. Menu do poprawki. Postać mi się blokuje przy ścianie, gdy mam wciśnięte naraz strzałkę do góry i którąś w bok. Myślę, że jak chcesz chcesz zrobić grę dla czterech graczy, to musisz dać sterowanie na padzie choć na jednego playera. W przeciwnym razie będzie za duże zagęszczenie palców na klawie.
  15. Oto kodzik, resztę eventów możesz usunąć. GML (step czarny) if(!place_meeting(x+20,y,object0)&&!place_meeting(x+2,y,object1)) x+=2; GML (spacja bialy) instance_destroy() Zakładam, że czarne kwadraty mają się poruszać tylko po linii prostej. E: Ustaw jeszcze origin spritów na środek.
  16. zdefiniuj zmienną w create. Np text=false;
  17. candy

    Wheels John

    Zmień to tło, wali po oczach.
  18. GML (create) a=false;//zapamiętuje id obj_2 z którym obj_1 ma kolizję // false oznacza, że nie ma z żadnym kolizji</span> GML (step obj1) if(collision_circle(x,y,10,obj_2,1,0)&&!a)//jeśli obj_2 jest w promieniu 10 px od obj_1 i a jest 0 { a=collision_circle(x,y,10,obj_2,1,0);//zapamiętaj pod zmienną a id obj_2, który ma kolizję z obj_1 // reszta kodu } GML (tam gdzie masz kod na koniec ataku w obj1) a.hp-=5;//odejmij obj_2, który ma id=a, 5 hp a=fasle;//żeby znów można było wykonać animacje ataku</span> Wartość promienia w drugim coliision_circle() musi być co najmniej równa wartości promienia w pierwszym collision_circle(). W przeciwnym razie wyskoczą Ci błędy, ponieważ warunek if() będzie spełniony a kod a=collision_circle(x,y,10,obj_2,1,0); nie będzie wykonany, gdyż obj_1, nie będzie miał kolizji z obj_2. Inaczej mówiąc GM nie wie z którym obj_2 koliduje obj_1.
  19. Wrzuć kod do obiektu z którym hero ma mieć kolizje. GML (create) licz=true;//sprawdza czy mieliśmy kolizje z hero</span> GML (step) if(place_meeting(x,y,hero))//jeżeli mamy kolizje z hero { if(licz)//i licz jest true (czyli po raz pierwszy) { hero.zmienna+=1;//dodaj zmienną w hero licz=false;//zmien liczna false (kolejna kolizja z hero nie będzie sprawdzana) } } else//jeżeli nie mamy kolizji z hero licz=true;//pozwalamy na kolejne sprawdzanie kolizji.</span>
  20. GML message_position (view_xview+352,view_yview+ 496) Powinno działać.
  21. GML (create) licz=false;//liczy czas po jakim można jeszcze użyć bonus (poślizg) bonus=false;// czy używamy poślizg czy nie stop_klawisz=false;// GML (step) if(keyboard_check_pressed(klawisz)&&!bonus&&!stop_klawisz&&(ewentualnie reszta Twoich założeń))//jeżeli klikamy w klawisz i bonus==0 i stop_klawisz==0... { if(!licz)//... i jeżeli klikamy po raz pierwszy licz=1;//..zacznij liczyć else if(licz<=3)//...jak po raz drugi i mieścimy się w określonym czasie... bonus=true;//... rób dodatkowy bajer } GML (step) if(licz<3)//jeżeli licz jest mniejsze od 3 { licz+=1;//dodaj do licz 1(gdy licz==4, cała funkcja nie będzie już wykonywana) if(licz==3)//jeżeli licz==3 { stop_klawisz=true;//zablokuj możliwość ponownego wywoływania akcji poprzez klikanie w klawisz if(bonus)//jeżeli dwa razy klikaliśmy w klawisz { //akcje na bonus } else//... a jeżeli raz { //akcje bez bonusa } } Po zakończeniu z każdej akcji (po wykonaniu zakrętu), musisz wyzerować zmienne licz, bonus oraz stop_klawisz.
  22. Wstaw jakieś warunki: GML (draw) if(rysuj) { draw_text... } A jak chcesz wyłączyć hud zmień rusnaj na false. Edit: oczywiście rysuj na false, a nie rusnaj :)
  23. GML (create) visible=false; GML (step) if(distance_to_object(jakiś_tam)<[jakaś_wartość]) visible=true; else visible=false;
×
×
  • Dodaj nową pozycję...