Отрисовка игровых персонажей Pacman на PHP


<?php
$img = imagecreatetruecolor(500, 500);
 
// цвета
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$red = imagecolorallocate($img, 255, 0, 0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0, 255);
$yellow = imagecolorallocate($img, 255, 255, 0);
 
// фон
imagefilledrectangle($img, 0, 0, 500, 500, $black);
 
// лицо
imagearc($img, 150, 150, 150, 150, 34, 326, $yellow);
imageline($img, 211, 110, 151, 151, $yellow);
imageline($img, 211, 190, 151, 151, $yellow);
imagefill($img, 153, 153, $yellow);
 
// глаз
imagefilledarc($img, 130, 110, 20, 20, 0, 360, $black, 0);
 
//барьер
imagerectangle($img, 100, 250, 400, 280, $blue);
 
// цикл для шариков
$x = 0;
for($i = 0; $i < 3; $i++) {
  imagefilledarc($img, 250 + $x, 150, 20, 20, 0, 360, $white, 0);
  $x += 80;
}
 
// тело моба
imagearc($img, 120, 380, 70, 70, 180, 360, $red);
imageline($img, 85, 380, 85, 430, $red);
imageline($img, 100, 420, 85, 430, $red);
imageline($img, 100, 420, 115, 430, $red);
imageline($img, 139, 419, 115, 430, $red);
imageline($img, 140, 420, 155, 430, $red);
imageline($img, 155, 380, 155, 430, $red);
imagefill($img, 120, 380, $red);
 
// глаза
imagefilledarc($img, 107, 370, 20, 20, 0, 360, $white, 0);
imagefilledarc($img, 104, 370, 10, 10, 0, 360, $black, 0);
imagefilledarc($img, 137, 370, 20, 20, 0, 360, $white, 0);
imagefilledarc($img, 134, 370, 10, 10, 0, 360, $black, 0);
 
// бонус
imagearc($img, 267, 410, 70, 70, 180, 270, $green);
imagearc($img, 286, 410, 72, 72, 180, 240, $green);
imagefilledarc($img, 230, 420, 30, 30, 0, 360, $red, 0);
imagefilledarc($img, 250, 423, 30, 30, 0, 360, $red, 0);
imagearc($img, 250, 423, 30, 30, 0, 360, $black);
imagefilledarc($img, 222, 423, 10, 10, 0, 360, $white, 0);
imagefilledarc($img, 243, 425, 10, 10, 0, 360, $white, 0);
 
//ещё один шарик
imagefilledarc($img, 400, 400, 20, 20, 0, 360, $white, 0);
 
header("Content-Type:image/jpeg");
imagejpeg($img, NULL, 100);
?>