Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Adam Dvořák
Neregistrovaný
Avatar
Adam Dvořák:5.2.2012 13:34

Jsem začátečník a pomocí návodu na HealthBar jsem vyrobil minutku. Při eventu Create mám

hodiny=get_integer("Zadejte hodinu:", 0)*60*60;
minuty=get_integer("Zadejte minuty:", 0)*60;
sekundy=get_integer("Zadejte sekundy:", 0);
health=hodiny+minuty+sekundy
global.health_start=health

Takže se mě to zeptá na hodiny, minuty a sekundy.
Když se tam potom odpočítává čas po sekundách, tak to funguje..
Ale já chci vypsat na plochu zbývající čas.
Na sekundy to funguje:

draw_text(304,16,health)

Pak jsem taky zkoušel na minuty:

draw_text(304,16,health/60)

a na hodiny:

draw_text(304,16,health/3600)

Jenže při výpisu je například:
Zbývá 1.28 hodin.
A to je nepěkné....
Nejde nějak udělat, aby se to desetinné číslo smazalo?
Nebo případně zaokrouhlilo?
Děkuji moc ;)

 
Odpovědět
5.2.2012 13:34
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na
David Jančík:5.2.2012 14:34

Dobrý den,
už jsem vám posílal odkaz na tento soubor:
http://dl.dropbox.com/…4f76f5a1.gmk
Udělejte to obdobně. Načtěte si hodiny, minuty a vteřiny a z nich pak udělejte - totalseconds (vynásobíte hodiny 3600 a minuty 60 a vše sečtete) Poté se vám s tím bude lépe pracovat.
Kód pro počítání vložíte do eventu alarmu s nastavením provádění akcí po rychlosti místnosti (room_speed) tím pádem se provedou každou vteřinu.

Na výstupu pak budete vykreslovat zmenšující se obdélníček, který bude měnit pouze svoji šířku (x2) dle zbývajícího počtu totalseconds.

Máte například 1 hodinu, 1 minuty a 1 vteřinu

//nastavení total seconds
totalseconds = (hours*3600)+(minutes*60)+seconds;

//nastavení alarmu
alarm[0] = room_speed;

//kód v alarmu
if (totalseconds > 0)
{
    totalseconds -= 1;
    alarm[0] = room_speed;
}

//a hodnotu totalseconds si někam uložíte pak podle toho vypočítáte procenta -> v eventu draw
draw_rectangle(0,50,(totalseconds / počáteční_hodnota_total_seconds)*100, 50, true);
Nahoru Odpovědět
5.2.2012 14:34
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Adam Dvořák
Neregistrovaný
Avatar
Odpovídá na David Jančík
Adam Dvořák:5.2.2012 15:14

Tak děkuji... Ale, existuje to zaokrouhlování?

 
Nahoru Odpovědět
5.2.2012 15:14
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na
David Jančík:5.2.2012 15:16

Ano,
existují tři fce
round -> zaokrouhlí 5.2 -> 5; 5.6 -> 6
floor -> 5.6 -> 5
ceil -> 5.2 -> 6

Nahoru Odpovědět
5.2.2012 15:16
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Adam Dvořák
Neregistrovaný
Avatar
Odpovídá na David Jančík
Adam Dvořák:5.2.2012 22:31

Děkuji moc!!!

 
Nahoru Odpovědět
5.2.2012 22:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.