Wintermute Engine Forum

Czech forum => Technické fórum => Topic started by: !Errorcode! on May 27, 2008, 09:02:53 AM

Title: Menší problém....
Post by: !Errorcode! on May 27, 2008, 09:02:53 AM
Dostal som sa do situácie kedy už neviem čo mám s tým robiť, takže:
V scéne 1 zoberiem objekt ,,kamen". Ale POZOR! Môžem ho zobrať aj nemusím! Prejdem na scénu 2 je to scéna s rovnakým pozadím, len niečo iné..no to je jedno. Ten objekt tam stále môže byť aj keď som ho už zobral.

Teda pýtam sa ako mám spraviť aby objekt ,,kamen" ked raz zoberiem už sa v druhej scéne nemôže ukázať, alebo keď ho nezoberiem v scéne 1, v scéne 2 ho môžem zobrať??

(Scéna 1 a scéna 2 sú prakticky rovnaké scény, len o detail iné.)

Díky!
Title: + ešte maličkost
Post by: !Errorcode! on May 27, 2008, 09:05:44 AM
Ako dám aby keď prejdem na scénu 3 nehrala hudba ktorá hrala normálne ale prehrala sa druhá hudba a len 1 krát? Pritom aby scéna trvala len 5 sekúnd a vrátila sa predošlá téma.  :)
Title: Re: Menší problém....
Post by: Net on May 27, 2008, 11:36:22 AM
No ten kámen bych udělal pomocí globálních proměnný. Pak už stačí jenom kontrolovat a kámen při spuštění scény skrýt nebo naopak zobrazit.
Title: Re: Menší problém....
Post by: !Errorcode! on May 27, 2008, 11:40:34 AM
A ako s tou globálnou premennou? Neviem to až tak dobre  :)...Nie som ešte v tomto taký pokročilý  :)
Title: Menší problém....
Post by: !Errorcode! on May 27, 2008, 07:29:13 PM
Skúšal som to všelijako...nefunguje... ???  Môžte poradiť čo najskôr?? Díky!!!!
Title: Menší problém!!!
Post by: !Errorcode! on May 29, 2008, 06:18:51 PM
Taktiež by sa mi hodila jedna vec a to je tá, že ako dám aby po kliknutí na objekt sa zmenilo pozadie v scéne??? Pretože pomocou príkazu Game.ChangeBackground to nejde...asi to nie je dobrý príkaz  :)
Title: Re: Menší problém....
Post by: metamorphium on May 29, 2008, 06:40:57 PM
když už to chceš dělat takhle tak:

var e = Scene.GetNode("background");
e.SetSprite("nejakej soubor");

ale lepsi je IMO mit node s novym pozadim s Active = false (ve scene.editu) a pak nastavit Active = true pro ten node. Výhoda je to, že máš ten obrázek v cache takže se tam objeví hned.
Title: Re: Menší problém....
Post by: !Errorcode! on May 29, 2008, 06:59:16 PM
Díky moc!!! Presne toto som potreboval!!!!  ::thumbup ::thumbup
Title: ++ Menší problém....
Post by: !Errorcode! on May 30, 2008, 11:42:47 AM
Ešte pýtal som sa predtým Ako dám aby keď prejdem na scénu 3 nehrala hudba ktorá hrala normálne ale prehrala sa druhá hudba a len 1 krát? Pritom aby scéna trvala len 3 sekundy a vrátila sa predošlá obrazovka.   :)
Title: Re: Menší problém....
Post by: Mnemonic on May 30, 2008, 11:55:13 AM
Code: WME Script
  1. Game.PlayMusic("druha.ogg", false);
  2. Sleep(3000);
  3.  

do scene_init.script
Title: Re: Menší problém....
Post by: !Errorcode! on May 30, 2008, 06:00:38 PM
Ono to nefunguje  ??? ??? Ani nehrá hudba a dokonca aj scéna trvá donekonečna  ???.. Čo s tým?
Title: Re: Menší problém....
Post by: Iranicus on May 31, 2008, 11:43:18 AM
Ono to nefunguje  ??? ??? Ani nehrá hudba a dokonca aj scéna trvá donekonečna  ???.. Čo s tým?

Pozeral si sa do blogu? Bolo tam niečo? Ak nie, mozeš sem prihodiť svoj zdroják + archív s konktrétnými scénami?
Title: Re: Menší problém....
Post by: !Errorcode! on May 31, 2008, 01:08:57 PM
V logu nebolo nič, správne prebehlo zapakovanie. tu je súbor scene_init tej scény v ktorej sa to má udiať:
Code: [Select]
#include "scripts\base.inc"





Game.PlayMusic("scenes/kos/hudba/kos.ogg", false);
Sleep(3000);
Game.ChangeScene(Game.PrevSceneFilename);
Title: Re: Menší problém....
Post by: Iranicus on May 31, 2008, 01:29:14 PM
Hm, zdroják vyzerá byť správne:).

Tak dobre, ideme na tou inou cestou. Do tvojho scene_init.script pridaj tento kod:

scene_init.script
Code: [Select]
if(Game.PlayMusic("scenes/kos/hudba/kos.ogg", false, 0) == true)
{
  Sleep(5000);
  Game.LOG("Music is playing!");
}
else
{
  Sleep(5000);
  Game.LOG("Some error has occured while the the music is playing!");
}

Skúšal som volať funkciu aj s tretím parametrom, avšak ten možeš vypustiť. Hlavne sa pozri do logu, či sa podarilo tú hudbu nahrať do pamati. Ak tam bude, ďalší dovod, prečo nemusí hrať, je ten, že máš volume zvuku nastavené na úplne minimálnu hodnotu. Treba to eventuálne preskúšať.

Prepokladám, že hru skúšaš priamo v ProjectMan, že? Tak máš teda zapnutý debug mode, a preto si skontroluj, ktorá scéna je tam nastavená! Ak púštaš priamo scénu, na ktorej máš ten script uvedený hore, logicky ti engine scénu nezamení, pretože predtým nebola žiadna predošlá scéna.

Vyskúšaj to, a napíš, k čomu si dospel.
Title: Menší problém....
Post by: !Errorcode! on May 31, 2008, 08:16:32 PM
No...nejde to... ??? ???. Začínam byť už zúfalý  ;D ;D. Lebo robím to už naostro do hry, ktorá je celá hotová len táto maličkosť nie je   :-\. Nejde ani hudba druhá a ani scéna sa nevráti na predošlú. Skúšam to priamo v Project man.

PS: Čo si tým myslel ktorá scéna je nastavená v debugmode??  :)
Title: Re: Menší problém....
Post by: Iranicus on May 31, 2008, 09:45:37 PM
No...nejde to... ??? ???. Začínam byť už zúfalý  ;D ;D. Lebo robím to už naostro do hry, ktorá je celá hotová len táto maličkosť nie je   :-\. Nejde ani hudba druhá a ani scéna sa nevráti na predošlú. Skúšam to priamo v Project man.

A skúšal si tam dať napr. nejaký iný zvuk? Alebo si skúšal, či to robí aj na nejakej inej scéne? Treba zistiť, či je to globálny problém, alebo to robí iba na tej konkrétnej scéne. Díval si sa do logu?

Quote
PS: Čo si tým myslel ktorá scéna je nastavená v debugmode??  :)

Ak skúšaš túto kontrétnu scénu, kde máš ten kod, ktorý Ti napísal Mnemonic, tak, že spuštíš hru,a hneď si na tej scéne, fungovať ti to nemože, pretože predtým nebola žiadna iná scéna, ktorá by naplnila globálnu premennú Game.PrevSceneFileName

Nemohol by si kdesi uploadnúť tvoj projekt?

Title: Menší problém....
Post by: !Errorcode! on June 01, 2008, 02:38:26 PM
No..nefunguje ani Mnemonicov kód ani tvoj  ???...Myslím že by to bolo nadlho, ale rišením by som chcel teda - dostanem sa na dotyčnú scénu, prehrá sa druhý zvuk ale nemusí sa teda scéna o pár sekúnd vrátiť, ale kliknutím na miesto hocikde v scéne...v tej scéne sa s ničím nemanipuluje je to len niečo ako ,,intro"... To s tým Game.PrevSceneFileName, to viem neskúšam to priamo z tej scény - akosi hovoril nemalo by sa to kam vrátiť  :)
Title: Re: Menší problém....
Post by: Mnemonic on June 02, 2008, 09:14:56 AM
Kdyz to nefunguje, musis trochu improvizovat a hledat. V tom kodu, co posilal Inaricus, to do logu zapise budto "Music is playing!" nebo "Some error has occured while the the music is playing!". Co to do logu zapsalo tobe? Pokud nic, tak se ten tvuj skript vubec nespousti a musis zjistit proc.
Title: Re: Menší problém....
Post by: Stanley on June 02, 2008, 07:21:39 PM
Přesně, tento kód musí fungovat. Máš propojený se scénou "scene_init.script" ve kterém je tento kód ? Defaultně je propojený, ale jestli si například nevytvořil nový "scene_ini.script" a to někde jinde (ke kterému nemáš cestu ve scene editoru dané scény).  ;)
Title: Re: Menší problém....
Post by: !Errorcode! on June 08, 2008, 01:18:08 PM
No...už som to vyriešil  ;D. Som urobil jednoducho to, že vytvoril som prázdnu entitu - objekt na tej scéne a dal do nej kód...Teraz ho tu ale nemám po ruke  :)...