如何在SDL Perl

时间:2017-01-26 17:38:47

标签: perl sdl

所以我使用SDL Perl创建了一个精灵动画,好消息是精灵图像正在移动,坏消息是移动的精灵在47x47 SDLx::Rect中没有完全对齐

我无法解释发生了什么,所以这里的截图

enter image description here

这是我使用的Sprite图像

enter image description here

最后我的代码:

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();

需要你的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

你的精灵表是313像素宽,有6张图像。杀死最后一栏312/6=52,远远超过你声称的47。当它应该为0时,你的step_y也是1。