27. července 2015

GML: Výběr objektů tažením

GML: Výběr objektů tažením

Do své Code Garage jsem dnes přidal vzorek kódu, který když člověk skutečně potřebuje, nikdy se mu do toho nechce. Proto se tomu každý ve svých programech vyhýbá jako muslim psímu exkrementu. :-)
Jde o výběr objektů tažením. Ve Windows běžná součást GUI, v Game Makeru totál opruz.

Základem je jediný objekt pojmenovaný fádně drag_selector. V jeho Create Eventu se dá nastavit, který typ objektů se má vybírat. ( pokud jakýkoliv, tak se použije all ) a taky lze omezit funkčnosr tažení na určitou oblast. ( např. aby se nevybíraly součásti GUI ).

Features:
-všesměrové tažení
-omezení oblasti
-omezení objektu výběru
-změna kurzoru
-kreslení rámečku tažením
-realtime změny výběru ( pokud jde o velké počty objektů, doporučuji tuto funkci odmazat jako první )

Použití ve vlastních hrách by mělo být bez potíží i pro úplné začátečníky. Prostě zkopírujeme objekt drag_selector do svého projektu a v Create Eventu nastavíme typ objektu, který má vybírat.Objekty takto vybrané získají proměnnou selected ( true - vybráno, false -nevybráno ). Pak lze jakoukoli akci provádět pomocí if selected = = true { nějaká_činnost }.

Pro objekty v pohybu se vybírá ty, které jsou aktuálně v obdélníku. Tzn. po puštění myši zůstanou vybrány i když nejsou v oblasti. Lze si to zkusit v SelectionDragMotion.exe.







Žádné komentáře:

Okomentovat

Komentář vypovídá většinou o autorovi víc, než by byl jinak ochoten sdělit.