2017-01-26 10 views
2

SDL Perlを使用してスプライトアニメーションを作成しました。良いニュースはスプライトイメージが動いていることです。悪いニュースは、動きのあるスプライトが47x47 SDLx::Rect
SDL Perlでスプライトイメージを正しく移動する方法

私は本当に何ので、ここで起こっていることは、スクリーンショット

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

はあなたの助けが必要です、ありがとう!

答えて

0

スプライトシートの幅は313ピクセルで、画像は6枚あります。最後の列Killing、312/6=52、あなたが主張した47から遠く離れています。また、step_yは0にする必要があるときに1です。

+0

'step_y => 1 'に0を入れると' Illegal division by zero'というエラーが発生しますので、 '$ anim-> step_y(0); '52x52を試してみて、返信してくれてありがとう、感謝します:) – RickNMorty

関連する問題