Skocz do zawartości

Ruszanie myszką


kt1117

Rekomendowane odpowiedzi

Czy jest możliwość wykrycia ruchu myszką po określonym kształcie? Chodzi o to że robię grę o czarowniku i najpierw wpisujemy nazwę czaru ,a potem ruszamy myszką w określony sposób np. Jak zrobię myszką kółko to się stanie to ,a jak kwadrat to to.

Odnośnik do komentarza
Udostępnij na innych stronach

można by było zrobić tak:

-robisz obiekt co ma maske (np: twój kwadrat, o liniach na tyle grubych, aby sie można było wyrobić)

-i dwa o masce takiej małej kropki -> O

-

GML
/* create / o_czar (kontroler) */

start=false;

on_lane=false

end=false

 

GML
/* mouse -> mouse enter / w o_start(ma on maske kropki) */

o_czar.start=true

GML
/* mouse -> mouse enter / w o_kwadrat (tym z kwadratową maską) */

o_czar.on_lane=true

 

/* mouse -> mouse leave */

o_czar.on lane=false

o_czar.start=false

o_czar.end=false

 

GML
/* mouse -> mouse enter / w o_stop(tu również maska kropki) */

o_czar.end=true

 

GML
/* step / o_czar */

if start and on_lane and end

{

// to, że czar się udał

}

 

w ten sposób, nie ważne w którą stronę kwadratu porusza się gracz, zda, jeśli zacznie z jednego końca i nie wychodząc za linie dojdzie na drugi koniec.

 

jak chcesz mieć w jedną strone tylko - to w o_stop w mouse -> mouse_enter daj:

GML
if o_czar.on_lane and o_czar.start

{

o_czar.end=true

}

i da się przejść tyko z jednego końca na drugi.

 

 

P.S: pamiętaj, żeby figura nie była łamaną zamknięta ;) jak chcesz krzyżować, to daj checkpointy po drodze

 

Edit:

jak się pogubisz to mów, wtedy ci jutero przykładzik zrobię.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam w którymś czasopiśmie artykuł o czymś podobnym, polegało to na tym, że było sprawdzane w którą stronę ostatnio ruszyła się myszka i zapisanie kilku podstawowych kierunków, np ruch w górę to było 1, na skos w górę i w lewo to 2 a w lewo to 3 itd, więc ruch góra,lewo,prawo-dół,góra zapisywany był 1361. Oczywiście była tolerancja chyba 15stopni by nie było konieczności precyzyjności. Nie wiem czy w GameMakerze da się to zrobić lecz z pewnością da się w C++ i dodać w jakiejś bibliotece. Niestety nie obsługuje to ruchów nie składających się z linii prostych.

Odnośnik do komentarza
Udostępnij na innych stronach

nie patrzałem na kod mentosa, ale ja bym zrobił tak, że sie kliknie i wtedy o_original robi równiutko tą figure, gracz tego obiektu nie widzi, i musi z pamięci myszką pojechać, i pod koniec wykonania figury przez o_original, się mierzy średnią odległość kursora od o_original i proporcjonalnie do tego siłę ataku magi xd

 

e: ale wtedy też gracz musi uwzględnić prędkość ; / lepszego pomysłu nie mam, chyba że gracz by ten obiekt widział, ale za to szybko by się poruszał

 

e2: poczekaj troszkę, to ci przykład zrobię, chyba że krak już to robi i będzie oczywhiskas lepszy ;d

Odnośnik do komentarza
Udostępnij na innych stronach

mój skromny przykład: https://gmclan.org/up6716_12_examplemagic.html

 

należy podążać zielonym kursorem za czerwonym wskaźnikiem

 

edit:

 

debug version: https://gmclan.org/up6716_12_9b582e9220.html

 

 

e2:

krak zrobi i oczywhiskas będzie lepszy O_o|o_O ?! ?!

bo użytkownik o nicku crackkk-gm czytał ten temat

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ę...