Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson Ferminiano

[Resolvido] Classe Timer - Simule velocidade do tempo!

Recommended Posts

Haha, fazendo meu jogo de estratégia tinha que fazer um tempo virtual, criei essa classe, ficou bem bacana! À partir de um tempo fornecido pelo usuário, a classe reseta esse tempo e começa contar os segundos como se fosse um "novo tempo", o resultado é engraçado e dá até pra brincar... fica aí a classe pra estudo, junto com exemplo de uso:

 

 

 

/**
* @Classe Timer - 29/12/2009
* @autor Anderson Ferminiano
* Simulação de tempo - pode controlar velocidade do tempo à partir de constantes.
* Utilizado em meu jogo de estratégia - mais informações entre em contato!
*/


class Timer {

private $timerInitiate;
const gamesecond = 26;
const YEARTIME = 31536000;
const MONTHTIME = 2592000;
const DAYTIME = 86400;
const HOURTIME = 3600;
const MINUTETIME = 60;
const SECONDTIME = 1;

function __construct($initiate)
{
$this->timerInitiate = $initiate;
}

public function getTime()
{
$secondsNow = time();
$time = $secondsNow-$this->timerInitiate;
$gametimer = $time*self::gamesecond;
return $gametimer;
}

public function formatGameTime($time = null)
{
if ($time == null)
$time = $this->getTime();


$year = ($time > self::YEARTIME ? intval($time/self::YEARTIME) : 0);
$time = ($time > self::YEARTIME ? $time%self::YEARTIME : $time);
$month = ($time > self::MONTHTIME ? intval($time/self::MONTHTIME) : 0);
$time = ($time > self::MONTHTIME ? $time%self::MONTHTIME : $time);
$day = ($time > self::DAYTIME ? intval($time/self::DAYTIME) : 0);
$time = ($time > self::DAYTIME ? $time%self::DAYTIME : $time);
$hour = ($time > self::HOURTIME ? intval($time/self::HOURTIME) : 0);
$time = ($time > self::HOURTIME ? $time%self::HOURTIME : $time);
$minutes = ($time > self::MINUTETIME ? intval($time/self::MINUTETIME) : 0);
$time = ($time > self::MINUTETIME ? $time%self::MINUTETIME : $time);
$seconds = ($time > self::SECONDTIME ? intval($time/self::SECONDTIME) : 0);
$time = ($time > self::SECONDTIME ? $time%self::SECONDTIME : $time);
$year++;
$month++;
$day++;
return array("year" => $year, "month" => $month, "day" => $day, "hour" => $hour, "minutes" => $minutes, "seconds" => $seconds, "date" => populateZeros($day, 2)."/".populateZeros($month, 2)."/".populateZeros($year, 4), "time" => populateZeros($hour, 2).":".populateZeros($minutes, 2).":".populateZeros($seconds, 2));
}
}


function populateZeros($num, $zero)
{
while (strlen($num) < $zero)
$num = "0".$num;
return $num;
}

$timer = new Timer(1262134976);
$timestamp = $timer->getTime();
$timeArray = $timer->formatGameTime();
echo $timeArray['date'].", ".$timeArray['time'];

?>

 

 

Espero que gostem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.