Skocz do zawartości

[Java Script] Timery


Markuz

Rekomendowane odpowiedzi

Witam, ostatnio próbowałem zrobić symulator walki w JS:

<html>
<head>
<script type="text/javascript">
var i=1;
var zycie1=100;
var zycie2=100;
var sila1=7;
var sila2=5;
var ruch=2;

function set(wartosc,id) {
document.getElementById(id).innerHTML=wartosc;
}

function reset() {
timer=setTimeout("starttimer()",500);
}

function starttimer()
{


if(ruch==2) {
if(zycie1>=sila2) {
zycie1=zycie1-sila2;
set("<b>Gracz 1:</b> "+zycie1+"/100","life1");
set("Gracz 2 odjol graczowi pierwszemu "+sila2+" punktow zycia !","info");
ruch=1;
reset();
} else {
set("Gracz 2 wygral!","info");
}
}

if(ruch==1) {
if(zycie2>=sila1) {
zycie2-=sila1;
set("<b>Gracz 2:</b> "+zycie2+"/100","life2");
set("Gracz 1 odjol graczowi drugiemu "+sila1+" punktow zycia !","info");
ruch=2;
reset();
} else {
set("Gracz 1 wygral!","info");
}
}


}

function stoptimer()
{
clearTimeout(timer);
}

</script>
</head>

<body onload='starttimer()'>
<div id='life1'><b>Gracz 1:</b> 100/100</div>
<div id='life2'><b>Gracz 2:</b> 100/100</div>
<div id='info'>- Raporty z walki</div>
</html>

 

Według mnie powinno to działać następująco:

- Pierwszy ruch to ruch gracza 2

- Pisze że gracz 2 odejmuje życie graczowi 1

- Potem powinno być odwrotnie

- Itd. do momentu "śmierci" jednego z nich

 

A jak jest? :

- Gracz 2 ma pierwszy ruch (OK)

- Pisze że gracz 2 odejmuje życie graczowi 1 (Pisze że pierwszy pomija tamten ruch)

- Potem powinno być odwrotnie (nie jest odwrotnie, tzn. zycie sie odejmuje ok, ale nie daje komp o tym info)

- Zycie odejmuje się bardzo szybko, nie zwracając uwagi na timer ..

 

Co jest nie tak? Prosze o pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

Nic nie dało, to jest ta sama funkcja co setTimeout() chyba albo działa na podobnej zasadzie.

 

<html>
<head>
<script type="text/javascript">
var i=1;
var zycie1=100;
var zycie2=100;
var sila1=7;
var sila2=5;
var ruch=2;
var win=0;

function set(wartosc,id) {
document.getElementById(id).innerHTML=wartosc;
}

function stoptimer()
{
clearTimeout(timer);
}

function starttimer()
{

if(win==0) {

if(ruch==2) {
if(zycie1>=sila2) {
zycie1=zycie1-sila2;
set("<b>Gracz 1:</b> "+zycie1+"/100","life1");
set("Gracz 2 odjol graczowi pierwszemu "+sila2+" punktow zycia !","info");
} else {
set("Gracz 2 wygral!","info");
if(win==0) {
win=2;
}
}
}

if(ruch==1) {
if(zycie2>=sila1) {
zycie2-=sila1;
set("<b>Gracz 2:</b> "+zycie2+"/100","life2");
set("Gracz 1 odjol graczowi drugiemu "+sila1+" punktow zycia !","info");
} else {
set("Gracz 1 wygral!","info");
if(win==0) {
win=1;
}
}
}

if(ruch==1) {
ruch=2;
} else {
ruch=1;
}

timer=setTimeout("starttimer()",500);
} else {
set("Walka zostala zakonoczona! Wygral gracz "+win,"info");
clearTimeout(timer);
}
}

</script>
</head>

<body onload='starttimer()'>
<div id='life1'><b>Gracz 1:</b> 100/100</div>
<div id='life2'><b>Gracz 2:</b> 100/100</div>
<div id='info'>- Raporty z walki</div>
</html>

 

Już wiem gdzie popełniłem błąd, teraz wszystko działa jak trzeba :)

Odnośnik do komentarza
Udostępnij na innych stronach

Nic nie dało, to jest ta sama funkcja co setTimeout() chyba albo działa na podobnej zasadzie.

 

<html>
<head>
<script type="text/javascript">
var i=1;
var zycie1=100;
var zycie2=100;
var sila1=7;
var sila2=5;
var ruch=2;
var win=0;

function set(wartosc,id) {
document.getElementById(id).innerHTML=wartosc;
}

function stoptimer()
{
clearTimeout(timer);
}

function starttimer()
{

if(win==0) {

if(ruch==2) {
if(zycie1>=sila2) {
zycie1=zycie1-sila2;
set("<b>Gracz 1:</b> "+zycie1+"/100","life1");
set("Gracz 2 odjol graczowi pierwszemu "+sila2+" punktow zycia !","info");
} else {
set("Gracz 2 wygral!","info");
if(win==0) {
win=2;
}
}
}

if(ruch==1) {
if(zycie2>=sila1) {
zycie2-=sila1;
set("<b>Gracz 2:</b> "+zycie2+"/100","life2");
set("Gracz 1 odjol graczowi drugiemu "+sila1+" punktow zycia !","info");
} else {
set("Gracz 1 wygral!","info");
if(win==0) {
win=1;
}
}
}

if(ruch==1) {
ruch=2;
} else {
ruch=1;
}

timer=setTimeout("starttimer()",500);
} else {
set("Walka zostala zakonoczona! Wygral gracz "+win,"info");
clearTimeout(timer);
}
}

</script>
</head>

<body onload='starttimer()'>
<div id='life1'><b>Gracz 1:</b> 100/100</div>
<div id='life2'><b>Gracz 2:</b> 100/100</div>
<div id='info'>- Raporty z walki</div>
</html>

 

Już wiem gdzie popełniłem błąd, teraz wszystko działa jak trzeba :)

Nie jest ta sama

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...