Pravidla Ucet
Nepřihlášen

Článek

Menu

GML - Instances
Napsal: NicharCZ
Přidáno: 19.07. 2010

Tentokrát si přestavíme funkce, které mají na starosti práci s instancemi (instance_...)

Práce s instances


Tyto funkce pracují s instancema, což jsou kopie prototypu objektu, které jsou zastoupeny ve hře.

Tak, sem s nima:


instance_copy(performevent)
• Vytvoří kopii instance, argument je true nebo false, zda chcete, aby se u kopie vykonal create event
• Minimálně využívaná funkce

instance_change(obj,perf)
• Změní instanci na jinou (obj)
• perf Opět true nebo false, jestli chcete, aby se vykonal create a destroy event.

instance_count
• Vrací číslo určující právě existujících počet instancí v aktuálním roomu

instance_create(x,y,obj)
• Vytvoří instanci obj na určitých souřadnicích (x,y)
• Nepostradatelná funkce

instance_destroy()
• Zničí instanci
• Také velmi nepostradatelná funkce

instance_exists(obj)
• Podmínka, jestliže instance daného objektu existuje

instance_find(obj,n)
• Identifikuje instanci obj
• n je číslo objektu hledané instance

instance_furthest(x,y,obj)
• Vrací instanci objektu obj, která je nejdále bodu x,y

instance_id[0...n-1]
• ID instance n
• Příklad:
for (i=0; i<=instance_count; i+=1)
{
iii = instance_id;
if (instance_exists(iii))
}


instance_nearest(x,y,obj)
• Podobné jako instance_furthers
• Vrací instanci objektu obj, která je nejblíže bodu x,y

instance_number(obj)
• Vrací číslo, určující počet instancí objektu obj

instance_place (x,y,obj)
• Vrací instanci objektu obj, pouze pokud se nachází na určitém místě x,y

instance_position (x,y,obj)
• Vyhledá instanci objektu obj na určitém místě x,y

instance_position (x,y,obj)
• Vyhledá instanci objektu obj na určitém místě x,y

Menší optimaliace aneb instance_de/activate

O optimalizaci tu jistě řeš ještě bude. Jednoduchou, leč účinnou optimalizaci vám nastíním.



Vytvořte si objekt obj_controll nebo použijte už jiný vytvořený objekt. A hodíte tento; skript:
instance_deactivate_all(1)
instance_activate_region(view_xview[0]-argument0, view_yview[0]-argument0, argument1+argument0*2, argument2+argument0*2, 1);

• argument0 // Rezerva, zajistí vám dokonalou optimalizaci, doporučuji kolem 100
• argument1 // šířka viewu
• argument2 // výška viewu

Co, co znamená?


instance_deactivate_all(notme)
• Zastaví veškerou činost, včetně vykreslování (deativuje) a zmenší nároky na hru
• notme zvolte na 1 (podmínka, pokud není deaktivováno)

instance_deactivate_object(obj)
• Deaktivuje pouze určitý objekt

instance_deactivate_region(left,top,width,height,inside,notme)
• Deaktivuje pouze určitou oblast
• Nastavíte si velikost oblasti a inside, 1 vevnitř, 0 mimo určenou oblast Úplně stejně funguje aktivace

instance_activate_all(notme)
• Pro aktivaci všech instancí/objektů

instance_activate_object(obj)
• Pro aktivaci určitého objektu

instance_deactivate_region(left,top,width,height,inside,notme)
• Pro aktivaci určité oblasti

To je myslím vše. Níže pište komentáře, jak kladně, tak záporně hodnotící, co bych měl zlepši, nejasnosti, chyby, tipy apod.

Ostatní díly seriálu:
[19.07. 2010] - GML - Images
[19.07. 2010] - Draw actions
Klíčová slova: instance activate deactivate destroy exists count number create furthest change find nearest number place position count id
 

Komentáře:

Přidáno: 30.05. 2011

Zajímavý ale myslím si že to využijí hlavně začátečníci ale stejně jsem o několika druzích nevěděl.

Dodrá práce :-)

Trvalý odkaz

Velkej Chytrák
Copyright (c) 2001-2010