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: ovliv  (Read 6721 times)

0 Members and 1 Guest are viewing this topic.

jar121

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 18
    • View Profile
ovliv
« on: November 10, 2005, 04:56:14 PM »

Čau znova,
Potřebuji poradit s trochu rozsáhlejším problémem. Může mi kdokoli jakkoli poradit jak je možné vytvořeným spritem reprezentující např. tlačítko, jehož použitím se sám přehraje (animace stisknutí) a v místnosti se rožne  světlo - vymění  pozadí scény, a to i v jiných scénách,které s ní souvisí?
A podobně, po použití takového to tlačítka se aktivuje jiný sprite s podobnou funkcí - třeba se otevřou dveře (animovaným spritem) a zprovozní se region pro vstup do další scény?
Můžete uvést konkrétní příkaz, budu moc vděčný a nespěchám.
 Dekuju!!!
 Jakmile se překopnu přes podobné základy, ukážu všem na čem přecujem. Zdarec!
Logged

hanser

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 216
  • Life is yet simple - over and over...
    • View Profile
    • First Reality developers studio
Re: ovliv
« Reply #1 on: November 10, 2005, 08:05:30 PM »

Mno...trochu zalezi na tom, jak mas resene ovladani, ale v podstate by mel stacit takovyto obecny postup:

Po stisknuti urciteho "jistice" se v nekolika mistnostech rozsviti svetlo
Potrebujes:
pozadi sceny - zhasnuto a jistic je vypnuty
pozadi sceny - rozsviceno a jistic je zapnuty
animace jistice z polohy off do on

Na scene v miste, kde je tlacitko vytvoris region, ktery bude interaktivni. Na stejne misto das i animovany sprite, ktery nebude aktivni, ani interaktivni (sprite musi byt loop). K poslednimu snimku animace prirad akci (treba "zapni"). Nyni prirad k regionu skript do ktereho das nejspis tohle:

Code: [Select]
on "Take"
{
  var anim = Scene.GetNode("nazev_animace"); //nactes do promenne entitu s animaci
  this.Active = false; //vypnes region
  anim.Active = true; //zapnes animaci
}

Nyni ve !SceneEditu! priradis skript i k animaci, kde bude asi tohle:
Code: [Select]
on "zapni"
{
  var pozadi = Scene.GetNode("background"); //nactes do promenne entitu pozadi
  this.Active = false; //vypnes animaci
  pozadi.SetSprite("cesta k rozsvicenemu pozadi"); //zmenis obrazek na pozadi
  svetlo = true; //tohle musi byt globalni promenna //zmenis hodnotu promenne na true - sviti se
}

Vsechny dalsi sceny, kde se bude menit svetlo pak udelej ve sceneeditu primarne pro tmu a do sceneinit dej hned nekam na zacatek:

Code: [Select]
if (svetlo == true) {
  //sem napis vsechny entity, ktery se musej zmenit, kdyz se rozsviti. Ke kazde enite ziskas pristup pomoci [i]promenna = Scene.GetNode("nazev_entity");[/i] Pokud budes chtit
  //entitu udelat viditelnou (a prekryt tak jine pozadi), tak zadej prikaz [i]promenna.Active = true;[/i]. Ovsem vzhledem k rozsahu zmen, bych skoro doporucoval tyto sceny
  //udelat uplne zvlast. Pak bys podminku o testovani svetla dal pred kazde Game.ChangeScene (bud je tam nebo svetlo).
}

Podobnym zpusobem muzes zapinat, ci vypinat i jine prvky, jako treba dalsi animace, atd...

Snad jsem ti pomohl...treba jsem te spatne pochopil.
Logged
Dobri umelci kopiruji, ti nejlepsi kradou.
- mj. Steve Jobs & Bill Gates

killer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 22
    • View Profile
ovliv
« Reply #2 on: June 28, 2006, 06:01:36 PM »

Nazdar všichni
Chtěl bych se zeptat jak mam udělat to,když mam 2scény (v jedný tlačítko a v druhý zavřený dveře) tak aby mě to tlačítko po jeho stisknutí otevřelo dveře.Napadlo mě že bych to měl dělat přes Sprite ale právě nevim jak ???
Logged

PoselSmrti

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 9
    • View Profile
Re: ovliv
« Reply #3 on: June 28, 2006, 09:30:06 PM »

Nazdar všichni
Chtěl bych se zeptat jak mam udělat to,když mam 2scény (v jedný tlačítko a v druhý zavřený dveře) tak aby mě to tlačítko po jeho stisknutí otevřelo dveře.Napadlo mě že bych to měl dělat přes Sprite ale právě nevim jak ???

Ak mas dve sceny, vytvor si jednu globalnui premennu, umiestni ich do obidvoch scriptov, a testuj podmienku.

Vo scripte pre tlacitko napis nieco taketo:
Code: [Select]
global StisknuteTlacitko; // vytvorime si globalnu premennu¨
...
on "LeftClick"
{
 // nejaky kod
 StisknuteTlacitko=true;
}
A potom vo scene_init. script tvojej druhej sceny napis nieco taketo:

Code: [Select]
global StisknuteTlacitko;
 
// nejaky kod
if(StisknuteTlacitko==true)
{
// nahras pozadie s otvorenými dverami
}


Snad som TI nejako pomohol, a snad si to pochopil :).
« Last Edit: June 28, 2006, 09:38:11 PM by PoselSmrti »
Logged

killer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 22
    • View Profile
ovliv
« Reply #4 on: June 30, 2006, 10:53:01 AM »

Díky za radu
ale chtěl bych se ještě zeptat jak mam udělat to,když mam v tý jedný místnosti vypínač a chtěl bych s tim vypínačem zapnot motor (neaktivní sprite) v druhý místnosti.??
Logged

hanser

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 216
  • Life is yet simple - over and over...
    • View Profile
    • First Reality developers studio
Re: ovliv
« Reply #5 on: June 30, 2006, 11:09:05 AM »

ale chtěl bych se ještě zeptat jak mam udělat to,když mam v tý jedný místnosti vypínač a chtěl bych s tim vypínačem zapnot motor (neaktivní sprite) v druhý místnosti.??

Úplně stejným způsobem - globální proměnná a podmínka ;)
Logged
Dobri umelci kopiruji, ti nejlepsi kradou.
- mj. Steve Jobs & Bill Gates

metamorphium

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 12
  • Offline Offline
  • Gender: Male
  • Posts: 1511
  • Vampires!
    • View Profile
    • CBE  software s.r.o.
Re: ovliv
« Reply #6 on: June 30, 2006, 02:07:55 PM »

cely koncept spociva v tom, ze ve scene_init.scriptu te sceny s motorem otestujes jestli je motor aktivni nebo ne a podle toho jej zapnes.
Proto je jedno ve ktere mistnosti se vypinac zapne. Tohle je jeden z klicovych aspektu.
Logged
J.U.L.I.A. Enhanced Edition, Vampires!, J.U.L.I.A., J.U.L.I.A. Untold, Ghost in the Sheet

killer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 22
    • View Profile
ovliv
« Reply #7 on: June 30, 2006, 05:05:08 PM »

ja pravě nějak nevim co přesně napsat v tom scene_init.scriptu
protože když tam zadám v tý druhý sceně s tim motorem tohle:

global motor;
if(motor==true)
{
  var Entmotor = Scene.GetNode("motor");
  var EntmotorRegion = Scene.GetNode("motor_region");

   Entmotor.Active = true;
   EntmotorRegion.Active = false;

  global StateRoom;
  StateRoom.poklopOpen = true;
}

tak se nic nestane.Samozřejmě v tý předchozí scéně už zadám tu proměnou "motor". ??? ???
Logged

metamorphium

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 12
  • Offline Offline
  • Gender: Male
  • Posts: 1511
  • Vampires!
    • View Profile
    • CBE  software s.r.o.
Re: ovliv
« Reply #8 on: June 30, 2006, 05:31:09 PM »

Tohle by v principu mělo fungovat. První, co si zjisti -
dej do toho bloku Game.Msg("Opravdu se spoustim!");

Tak jednoduše zjistíš, zda se ten kus kodu opravdu provádí.
Pak se na to podíváme dál.

Může to být také špatně nastavenou entitou ve scene editu, ale napřed se
podíváme, jestli se Ti do toho bloku dostane.

A taky se podivej, co hlasi wme.log. Pokud je chyba zanesena tam, da se snadno odladit.

Logged
J.U.L.I.A. Enhanced Edition, Vampires!, J.U.L.I.A., J.U.L.I.A. Untold, Ghost in the Sheet
 

Page created in 0.043 seconds with 18 queries.