Zastavení javascriptu
Mám kód a po kliknutí na klávesu X se změní obrázky. Problém je že když kliknu několikrát na klávesu X vždy se změní znova. Jak to udělat aby se změnili jednou po zmáčknutí X a vícekrát ne. Děkuji za každou radu (Prostě když kliknu třeba 5x na klávesu X, tak aby se počítalo pouze 1 kliknutí a vícekrát to nešlo).
var texture1 : Texture2D;
var texture2 : Texture2D;
function Update() {
if (Input.GetKey(KeyCode.X))
{
RenderSometing();
}
}
function RenderSometing() {
yield WaitForSeconds(9);
renderer.material.mainTexture = texture1;
yield WaitForSeconds(9);
renderer.material.mainTexture = texture2;
}
Nastavíš si nějakou bool proměnnou a pak ji kontroluješ.
Aha, a nešlo by něco napsat do tohoto scriptu, aby se to vícekrát neprovedlo? Nevím třeba něco jako if scriptStart = repeatFalse, nebo něco tak.
No to co jsem psal, jsi měl právě dopsat do toho scriptu.
Omlouvám se, ale nemůžu nic najít, nemůžeš mě prosím ještě poradit?
Děkuji to funguje dobře, můžeš mi to prosím ještě ukázat na tomto? To mi nejde, taky aby se spustilo pouze 1x naráz.
PS. Jakou knížku si mám koupit, abych to uměl jako ty? Javascript? Actionscript?
Tady to uděláš úplně stejně...
Já Actionscript neumím vůbec a v Javascriptu taky nijak nevynikám, ale tohle jsou naprosto základní věci.
Udělal jsem to takto, ale nejde to:
Píše to chybu expecting :, found '='.
Přijde mi, že jenom lepíš kusy kódu, bez toho aby jsi alespoň trochu tušil, co vlastně děláš. Nechceš si nejdřív projít nějaké tutoriály na webu?
Paráda, díky moc. Jsi hodnej.
Můžu se ještě na něco zeptat? Opravdu poslední dotaz. Nešlo by to udělat aby se to provedlo jednou za 30 vteřin? Ně to takto není moc platné. Prostě když zmáčknu X tak aby se nedalo dalších 30 vteřin zmáčknout. Šlo by to prosím?
Protože ono když zmáčknu X, tak už ho potom nemůžu zmáčknout, tak aby to zase za 30 vteřin šlo.
Dík, ale píše to: Unknown identifier: 'setTimeout'.
Hu... co to je
Teď to píše:
Unknown identifier: 'window'.
No toto.
To samé : Unknown identifier: 'window'.
Tak to window dej pryč i s tou tečkou zatím.
Odstranil jsem window i s tou tečkou a píše to : Unknown identifier: 'setTimeout'.
pisem ti ze kecas. Nechces sem dat cely zdrojak? Spustas to v com? prehliadaci z roku 1985?
To není do prohlížeče , je to v programu StencylWorks (to je program na tvorbu her).
to ked takymto sposobom chces vytvorit hru, tak to ani do penzie nestihnes.
No ty totiž máš sice v nadpise Javascript, ale jedná se o trochu odlišný unity javascript.
Jo máš pravdu. Tento script mi to načte, ale když zmáčknu klávesu třeba každou vteřinu, tak se to spouští znova každou vteřinu. Nespustí se to jednou za třicet vteřin.
InvokeRepeating("povolKlavesu", 30, 30);
Inac to InvokeRepeating neni vobec dobre pre teba, ptz to potom bude spustat furt dookola po 30sekundach aj t.j. nezmysel.
Nastuduj si vsetky funkcie http://docs.unity3d.com/Documentation/ScriptRefere nce/MonoBehaviour.InvokeRepeating.html lavy stlpec a potom budes moct v tom aj nieco programovat. (alebo najdi si nejaku referenciu pre ten tvoj program, ja neviem ci ten link je to co pouzivas)
Díky moc, funguje to. Nedělám nic velkého, jenom tak skouším udělat jednoduchou hru. Ono to asi stejně ve Free verzi moc nepude, ale dík.
BTW. normalny clovek by dal
alreadyUpdated = false;
na koniec funkcie RenderSometing, a nerobil tam ziadne Invoke nezmysly.