Skocz do zawartości

Problem z logiką/kodem


Rekomendowane odpowiedzi

Witam. W mojej grze chciałem zrobić obrót np. miecza. Użyłem funkcji draw_sprite_ext i wszystko działa ale mam 2 problemy.

1. Pod sprite chciałem podstawić zmienną która jak to zmienna będzie się zmieniać ale problemem jest że jeśli wpisze w polu sprite: global.bron a przy tworzeniu gry global.bron = s_bron to nie działa!!!

GML
Unknown variable bron

2. A 2 problem na który jest ciężko znaleźć mi rozwiązanie to jak zrobić żeby po kontakcie z obrazkiem działa się akcja. Użycie obiektu praktycznie nie wchodzi w grę chyba że to jest jedyne rozwiązanie lub do każdego obrazka trzeba będzie tworzyć nowy kod!

Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Pod sprite chciałem podstawić zmienną która jak to zmienna będzie się zmieniać ale problemem jest że jeśli wpisze w polu sprite: global.bron a przy tworzeniu gry global.bron = s_bron to nie działa!!!

Nic nie rozumiem. Jeśli chcesz zmienić kodem sprite'a to przypisujesz wartość do wbudowanej zmiennej sprite_index.

 

2. A 2 problem na który jest ciężko znaleźć mi rozwiązanie to jak zrobić żeby po kontakcie z obrazkiem działa się akcja. Użycie obiektu praktycznie nie wchodzi w grę chyba że to jest jedyne rozwiązanie lub do każdego obrazka trzeba będzie tworzyć nowy kod!

Powiedz czemu nie wchodzi w grę to ci wymyślę optymalne rozwiązanie.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Mam taki kod

GML
draw_sprite_ext(s_bron,0,

x + lengthdir_x(13,dir-90+(sinus*1.2)) + lengthdir_x(21,dir+(sinus*2.2)),

y + lengthdir_y(13,dir-90+(sinus*1.2)) + lengthdir_y(21,dir+(sinus*2.2)),

1,1,dir+40+(sinus*3.2),c_white,1);

Skrypt by KubaGM

I chciałem zamiast s_bron wstawić zmienną globalną która będzie odpowiadała za inne rysunki tzn: mam global.bron = 0 to w tym kodzie chciałem żeby mi napisał nazwę obrazka czyli s_bron a jak global.bron = 1 to podstawia s_bron1

2. Mam zrobiony opcją sprite machanie jak wyżej ale potrzebuje żeby po kolizji zadawały się obrażenia a nie wchodzi w grę bo tam mi się przynajmniej wydaje jest więcej roboty a dzięki przykładowi użytkownika KubaGM już mam zrobione. Ale jak nie ma innej opcju to trudno. Już rozumiesz?

Odnośnik do komentarza
Udostępnij na innych stronach

GML
draw_sprite_ext(global.bron,0,

x + lengthdir_x(13,dir-90+(sinus*1.2)) + lengthdir_x(21,dir+(sinus*2.2)),

y + lengthdir_y(13,dir-90+(sinus*1.2)) + lengthdir_y(21,dir+(sinus*2.2)),

1,1,dir+40+(sinus*3.2),c_white,1);

Zrób tak. I teraz zamiast podstawiać pod global.bron jakieś liczby jak 0 czy 1 po prostu podstawiaj sprity.

global.bron=s_bron albo global.bron=s_bron1 itp.

Odnośnik do komentarza
Udostępnij na innych stronach

Hehe ja się dziwie czemu robię źle. Nie ustawiłem kontrolera w roomie :jezor: . Za dotychczasową pomoc dzięki.

Ale pozostaje jeszcze drugie pytanie na które nie mogę wciąż znaleźć odpowiedzi. Może spróbuję wytłumaczyć to inaczej. Jak pokazałem kod to wyraźnie widać że z spritem (obrazkiem) nie można ustawić kolizji. Myślałem że ta funkcja poniżej pomoże ale nie wiem jak jej użyć 1 raz widzę takie argumenty.

GML
sprite_collision_mask(ind,sepmasks,bboxmode,bblefy,bbright,bbtop,bbbotom,kind,tolerance)
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ę...