Всем привет! У меня такой вопрос: Как можно сделать чтоб картинка ходила по картинке? Т.е я делаю игру, и мне нужно сделать игроку жизни, и чтоб они показывались графически (на картинке) и эта картинка ходила в зад или в перед в зависимости от количества жизней. Так вот я написал вот такой скрипт Код (Text): $max = $udata[hpall];//макс жизней $now = $udata[hp];//сколько есть жизней в данный момент $health = 100 / ($max / $now); $img="pic/hp.gif";//сама картинка $pic = ImageCreateFromgif($img); header('Content-Type: image/gif'); $black = imagecolorallocate($pic, 0, 0, 0); $white = imagecolorallocate($pic, 255, 0, 0, 20); imagefilledpolygon($pic, array(255,0, 0,20, $health,20, $health,0), 4, $black); imagestring($pic, 1, 3, 2, 'HP '.$now.'/'.$max.'', $white); imagepolygon($pic, array(0,0, 0,11, 99,11, 99,0), 4, $white); imagegif($pic); Но это не то что мне нужно. Это просто картинка ходит по черному фону, и как сделать чтоб она ходила по другой картинке (так как на картинке 2) я просто не знаю У меня получилось так как на картинке 1.
Мне даже интересно стало, сделал пример. Две картинки нужно сначала нарисовать для подложки и для полоски индикатора, экспортировать в png с прозрачностью. Положить шрифт arial.ttf рядом. Параметром "life" нужно передавать значение индикатора. Код (PHP): <?php $newWidth=(isset($_GET['life']))?(int)$_GET['life']:1; if($newWidth<1){$newWidth=1;} if($newWidth>400){$newWidth=400;} define('IMGW',400);//ширина индикатора define('IMGH',30);//высота $image=imagecreatetruecolor(IMGW,IMGH) or die('Cannot create image'); $source=imagecreatefrompng('line.png') or die('Cannot load original PNG'); $size=getimagesize('line.png'); $source2=imagecreatefrompng('life.png') or die('Cannot load original PNG'); $size2=getimagesize('life.png'); imagecopyresampled( $image, // Идентификатор нового изображения $source, // Идентификатор исходного изображения 1,1, // Координаты (x,y) верхнего левого угла // в новом изображении 0,0, // Координаты (x,y) верхнего левого угла копируемого // блока существующего изображения IMGW, // Новая ширина копируемого блока IMGH, // Новая высота копируемого блока $size[0], // Ширина исходного копируемого блока $size[1] // Высота исходного копируемого блока ); imagecopyresampled( $image, // Идентификатор нового изображения $source2, // Идентификатор исходного изображения 0,0, // Координаты (x,y) верхнего левого угла // в новом изображении 0,0, // Координаты (x,y) верхнего левого угла копируемого // блока существующего изображения $newWidth, // Новая ширина копируемого блока IMGH, // Новая высота копируемого блока $size2[0], // Ширина исходного копируемого блока $size2[1] // Высота исходного копируемого блока ); imagettftext( $image, // как всегда, идентификатор ресурса 12, // размер шрифта 0, // угол наклона шрифта 170, 20, // координаты (x,y), соответствующие левому нижнему // углу первого символа 0xFFFFFF, // цвет шрифта 'arial.ttf', // имя ttf-файла $newWidth.'/400' ); header('Content-type: image/png'); imagepng($image); imagedestroy($source2); imagedestroy($source); imagedestroy($image); ?> Вот эта статья помогла http://www.php5.ru/articles/image