46
Technické fórum / Re: Jak docílit toho, aby se zvuk neopakoval?
« on: March 15, 2010, 04:43:25 PM »Ještě by mě zajímala jedna věc.. Jak je to u entit..
Každý objekt vo WME ma svoj vlastný skript. Pokiaľ máš vo scéne entitu, priraď tejto entite skript. Keď chceš, aby sa zvuk prehral iba raz, musíš to vyriešiť cez podmienku. Alebo potom je možnosť spraviť to bez podmienky a to tak, že tomuto objektu odoberieš skript. To by som volil v prípade, že v tom skripte už nebude napísané nič iné, len príkaz na prehratie zvuku. Ďalšia možnosť je vypnúť interaktivitu kurzoru s dverami. Vtedy nemusíš dávať žiadnu podmienku, záleží len na Tebe, ako to potrebuješ .
Skript s podmienkou bude vyzerať takto:
#include "scripts\base.inc"
global dvere = true;
on "LeftClick"
{
if(dvere)
{
this.PlaySound("SoundName);
dvere = false;
}
Globálná premenná je použitá preto, ak by si opustil scénu a znova by si sa do nej vrátil, aby keď si už raz klikol na tie dvere, aby sa ten dabing už nikdy neprehral. V opačnom prípade nahradíš global za var.
Quote
Nebo by mě zajímalo jak udělat, když na ty dveře kliknu tak aby se přehrávalo víc zvuků po sobě.. Kliž kliknu po druhé další zvuk,po třetí další zvuk atd.. Mít prostě víc hlášek o těch dveřích.. (tam nejdu.., je to stejně zamčené.., nepotřebuji tam chodit atd..)
// skript, ktorý priradiš dverám
#include "scripts\base.inc"
on "LeftClick"
{
this.PlayRandomSound();
}
method PlayRandomSound()
{
Game.Interactive = false;
var rand = Random(1,5);
switch(rand)
{
case "1":
this.PlaySound("tam nejdu.waw");
break;
case "2":
this.PlaySound("je to stejně zamčene.wav");
break;
case "3":
this.PlaySound("nepotřebuji tam chodit atd.wav");
break;
}
Game.Interactive = true;
}