所以我使用SDL Perl创建了一个精灵动画,好消息是精灵图像正在移动,坏消息是移动的精灵在47x47 SDLx::Rect
中没有完全对齐/ p>
我无法解释发生了什么,所以这里的截图
这是我使用的Sprite图像
最后我的代码:
use strict;
use warnings;
use SDLx::Sprite::Animated;
use SDL;
use SDLx::App;
use SDL::Rect;
my $anim = SDLx::Sprite::Animated->new(
image => "ex.png",
step_x => 47,
step_y => 1,
rect => SDL::Rect->new(0,0,47,47),
ticks_per_frame => 6,
type => "circular",
);
$anim->step_y(0);
$anim->start();
my $app = SDLx::App->new( dt=>0.02, exit_on_quit => 1, w=> 200, h => 200 );
$app->add_show_handler(
sub{
my ($step,$app) = @_;
$app->draw_rect([0,0,$app->w,$app->h],0);
$anim->draw($app->surface);
$app->update();
$app->delay(2);
}
);
$app->run();
需要你的帮助,谢谢!
答案 0 :(得分:0)
你的精灵表是313像素宽,有6张图像。杀死最后一栏312/6=52
,远远超过你声称的47。当它应该为0时,你的step_y也是1。