blender3d.cz
http://blender3d.cz/forum/

Globalni pole
http://blender3d.cz/forum/viewtopic.php?f=11&t=6738
Stránka 11

Autor:  Pitel [ úte dub 28, 2009 5:02 pm ]
Předmět příspěvku:  Globalni pole

Jak mam vytvorit pole, ke kteremu by mohly pristupovat vsechny Python skripty ve scene?

Celkove mi nak unika jake vztahy mezi sebou maji ruzne skripty v BGE, nemate o tom nejaky pekny clanek?

Autor:  Ash [ stř dub 29, 2009 9:24 am ]
Předmět příspěvku: 

Objekty vytvorené v module GameLogic sú dostupné pre všetky skripty v BGE.
Príklad: 1. script zaregistruje svojho vlastnika do globálneho zoznamu
Kód:
# pridanie objektu do globalneho zoznamu
if not hasattr(GameLogic, 'objs'):
  GameLogic.objs = []
GameLogic.objs.append(GameLogic.getCurrentController().getOwner())


2. skript posunie všetky objekty v zozname o 1.0 v smere X
Kód:
# posun objektov
for obj in GameLogic.objs:
  pos = obj.getPosition()
  pos[0] += 1.0
  obj.setPosition(pos)


Skripty v BGE nemajú medzi sebou žiadne vzťahy, sú úplne oddelené. Spoločný pre všetky skripty je len modul GameLogic, jeho funkcie a objekty.

Autor:  Pitel [ stř dub 29, 2009 1:44 pm ]
Předmět příspěvku: 

Diky moc, necekal jsem ze to bude az takhle trivialni 8)!
Ptal jsem se na to i na Blender Artists foru, kde jsem ale nedostal odpoved. Nakonec jsem si tam odpovedel sam, a dostal jsem zajimavou reakci:

Od Blenderu 2.49 dojde pri zmene sceny ke smazani vsech atributu GameLogic krome globalDict (datovy typ dictionary). Takze pokud je potreba aby promenne prezily zmenu sceny, je nutne je naladovat do toho slovniku.

http://blenderartists.org/forum/showpost.php?p=1368385&postcount=1033

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/