Pong

Never ending Pong animation... Just a entry for the PHP GD contest in June.
PONG

ob_start();
include('GIFEncoder.class.php');
$board_width = 60;
$board_height = 60;
$pad_width = 5;
$pad_height = 15;
$ball_size = 5;
$game_width = $board_width - $pad_width*2 - $ball_size;
$game_height = $board_height-$ball_size;
 
 
//FIND ALL Points
//Initial point
 
$x = 0;
$y = rand(0,$game_height);
$xv = rand(1,10);
$yv = rand(1,10);
$pt[] = array($x,$y);
do{
	$x += $xv;
	$y += $yv;
	if($x > $game_width){
		$xv = -1*$xv;
		$x = $game_width - ($x-$game_width);
	}elseif($x < 0){
		$xv = -1*$xv;
		$x = abs($x);
	}
	if($y>$game_height){
		$yv = -1*$yv;
		$y = $game_height - ($y - $game_height);
	}elseif($y<0){
		$yv = -1*$yv;
		$y = abs($y);
	}
	$pt[] = array($x,$y);
}while($x!=$pt[0][0]||$y!=$pt[0][1]);
 
$i = 0;
while($pt[$i]){
	$image = imagecreate($board_width,$board_height);
	imagecolorallocate($image, 0,0,0);
	$color = imagecolorallocate($image, 255,255,255);
	$color2 = imagecolorallocate($image, 255,0,0);
 
	if($pt[$i][1] + $pad_height < $board_width){
		imagefilledrectangle($image,0,$pt[$i][1],$pad_width, $pt[$i][1]+$pad_height,$color);
	}else{
		imagefilledrectangle($image,0,$board_width-$pad_height,$pad_width, $board_width,$color);
	}
	imagefilledrectangle($image,$board_width-$pad_width,0,$board_width, $board_height,$color2);
	imagefilledrectangle($image,$pad_width+$pt[$i][0], $ball_size+$pt[$i][1]-$ball_size, $pad_width+$pt[$i][0]+$ball_size, $ball_size+$pt[$i][1],$color);
	//imagesetpixel($image,$pt[$i][0],$pt[$i][1],$color);
	imagegif($image);
	imagedestroy($image);
	$imagedata[] = ob_get_contents();
	ob_clean();
	++$i;
}
 
 
$gif = new GIFEncoder(
                            $imagedata,
                            100,
                            0,
                            2,
                            0, 0, 1,
                            "bin"
        ); 
Header ('Content-type:image/gif');
echo $gif->GetAnimation();

Post new comment

The content of this field is kept private and will not be shown publicly.
If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <img> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <span> <fn>
  • Lines and paragraphs break automatically.
  • Textual smileys will be replaced with graphical ones.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.

More information about formatting options

What is 2 + 57?
To combat spam, please solve the math question above.
Honey Pot that kill bots