Please login or register.

Login with username, password and session length
Advanced search  

News:

Forum rules - please read before posting, it can save you a lot of time.

Author Topic: dynamické vytváření objektů  (Read 4782 times)

0 Members and 1 Guest are viewing this topic.

Siky

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 41
    • View Profile
dynamické vytváření objektů
« on: September 06, 2006, 04:43:12 PM »

měl bych několik otázek:
1) Jak mám dynamicky vytvořit sprite (entity)? (Chci na scénu vložit několik desítek objektů z for cyklu.)
Jak je to pak z dealokací pamětí - musím někde objekty zrušit nebo je aplikace po ukončení sama uvolní?

2) Jak se dá takový sprite (entity) duplikovat (kopírovat) ?

3) U objektu entity potřebuji rozměry, ale existuje jen vlastnost Height. Proč není i Width? Jak se to dá jinak zjistit?

díky za tipy
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: dynamické vytváření objektů
« Reply #1 on: September 06, 2006, 05:25:50 PM »

1) Jak mám dynamicky vytvořit sprite (entity)? (Chci na scénu vložit několik desítek objektů z for cyklu.)
Jak je to pak z dealokací pamětí - musím někde objekty zrušit nebo je aplikace po ukončení sama uvolní?
Budto Game.CreateEntity() nebo Scene.CreateEntity(). Pricemz ty entity jsou zniceny, kdyz je znicen ten, kdo je vytvoril. V prvnim pripade jsou v pameti do konce hry, v druhem pripade dokud se nezmeni scena. Taky je lue explicitne odmazat pomoci Game.UnloadObject() a Scene.UnloadObject().

2) Jak se dá takový sprite (entity) duplikovat (kopírovat) ?
Automaticky nijak.

3) U objektu entity potřebuji rozměry, ale existuje jen vlastnost Height. Proč není i Width? Jak se to dá jinak zjistit?
V tuhle chvili nijak. Potiz je v tom, ze ten rozmer se muze menit snimek od snimku, cili by se jedine musel pocitat nejaky "bounding box", zastresujici vsechny snimky animace. Krom toho se rozmer muze menit podle aktualniho meritka entity.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

Siky

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 41
    • View Profile
Re: dynamické vytváření objektů
« Reply #2 on: September 06, 2006, 11:27:54 PM »

Když si takhle vytvořím několik spritů ....
Code: [Select]
var i = 0;
var en;
var jmeno;
for(i=0; i<50; i=i+1)
{
  jmeno = "ent" + i;
  en = Game.CreateEntity(jmeno);
  en.SetSprite("sprites/neco.sprite");
}

... jak mám pak jednotlivé sprity v dalším cyklu procházet (chci např. u některých měnit souřadnice, viditelnost atd.)? Mohl bys prosím napsat konkrétní kód?
A jak dynamicky přiřadit ke každému spritu script? (chci aby všechny sprity reagovali na stejné události)


díky za pomoc

PS: škoda že nejde použít operátor inkrementace: i++
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: dynamické vytváření objektů
« Reply #3 on: September 07, 2006, 11:46:07 AM »

Musis si je pri vytvareni nekam ukladat, do nejakeho pole.
Code: [Select]
var PoleEntit;

for(i=0; i<50; i=i+1)
{
  jmeno = "ent" + i;
  en = Game.CreateEntity(jmeno);
  en.SetSprite("sprites/neco.sprite");
  PoleEntit[i] = en;
}

A dynamicke prirazeni skriptu se udela takhle:

Code: [Select]
en.AttachScript("cesta\soubor.script");
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

Siky

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 41
    • View Profile
Re: dynamické vytváření objektů
« Reply #4 on: September 07, 2006, 08:20:58 PM »

Můžu se ještě zeptat proč nefunguje následující skript?
Code: [Select]
var str1 = new String();
var arr1 = new Array();
str1 = file.ReadLine();  //  file je samozrejme zadefinovan

arr1 = str1.Split("=");   // TADY TO HODI: Call to undefined method 'Split'. Ignored.

Vyzkousel jsem, že funguje když napíšu místo prvního řádku:
Code: [Select]
var str1 = new String(file.ReadLine());
ALE PROČ? Když mám objekt vytvořený operátorem new a pak do něho vložím hodnotu, tak proč s tím nemůžu pak pracovat?

dík za radu
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: dynamické vytváření objektů
« Reply #5 on: September 07, 2006, 09:03:13 PM »

Protoze WME rozlisuje "hole" stringy, a objekty typu String. A ReadLine vraci holy string..
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

Siky

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 41
    • View Profile
DINAMICKÝ SPRIT
« Reply #6 on: September 20, 2006, 05:46:03 PM »

Jak mám vytvořid dinamicky sprit do kterého chci určitou bitmapu, kterou budu v průběhu hry budu měnit?

Proč tohle nefunguje? (pořád chyba na AddFrame)

Code: [Select]
sp = Game.CreateEntity("jmeno");
sp.SetSprite("cesta/karta.sprite");
sp.AttachScript("scripts/karta.script");
sp.AddFrame("cesta/karta.bmp");



Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: dynamické vytváření objektů
« Reply #7 on: September 20, 2006, 09:00:55 PM »

Entita nerovna se sprite. Entita je nejaky objekt ve scene, ktery ma spoustu vlastnosti, a jednou z nich je animace, kterou ma vykreslovat (tj. sprite). AddFrame() je metoda animace, ne entity. Pokud chces manipulovat primo s animaci, musis si o ni nejdrive rict:

var Sprite = sp.GetSpriteObject();
Sprite.AddFrame("bla bla");
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave
 

Page created in 0.092 seconds with 23 queries.