Итак, я создал анимацию спрайтов с использованием SDL Perl, хорошая новость - это изображение спрайта, и плохая новость заключается в том, что движущийся спрайт точно не выровнен в 47x47 SDLx::Rect
Как правильно переместить спрайт-образ в SDL Perl
Я не могу объяснить, что происходит, так вот скриншот
А вот изображение 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 в 'step_y => 1, вы получите сообщение об ошибке« Незаконное деление на ноль », поэтому я установил' $ anim-> step_y (0); 'поэтому я попробую 52x52 и спасибо за ответ, хотя, оцените это :) – RickNMorty