perl 使用运动路径的帧移位“for”

ibrsph3r  于 2023-03-09  发布在  Perl
关注(0)|答案(1)|浏览(119)

我这里有个人类物品。
my @path中有一种人在漂浮的感觉,但没有帧的变化,如果将参数callback_args => [0,[@path]]改为callback_args => [0,0,0,1],则有帧的变化,但 puppet 没有漂浮,保持帧的最后一位≠ 0;其对应于交换速度。
这是没有意义的,因为在my $up$down中,最后一个数字≠ 0,而位置0,-.3,0;X,Y,Z,我只要改变y,让它上下变化.
如何保持悬浮和 puppet 的两个框架?

use strict;
use warnings;
use Curses;
use Term::Animation 2.0;

my $s = Term::Animation->new();
$s->color(1);  # <-- uses the color2 type mask
my @human= (q{
 o
/#\
/ \
},
q{
\o>
 #
/ \
});
my $up = [0,-.3,0,.5];
my $down = [0,.3,0,.5];

my @path;

for(1..14){ push(@path, $up); }
for(1..14){ push(@path, $down)}
$s->new_entity(
        shape           => \@human,
        position        => [ 5, 5, 1],
        callback_args   => [0, [@path] ],
        color           => 'w',
        wrap            => 1,
);

halfdelay( 2 );
for(1..500) {
    $s->animate();
    my $in = lc( getch() );
    if($in eq 'q') { last; }
}
e0bqpujr

e0bqpujr1#

如何保持悬浮和 puppet 的两个框架?
你正在为所有动画帧使用相同的形状(形状的帧)。你能尝试像这样明确地设置形状帧吗:

my @up = (0,-.3,0);
my @down = (0,.3,0);
my @path;
my $frame = 0;
for(1..14){ push @path, [@up, $frame]; $frame = ($frame + 1) %2;}
for(1..14){ push @path, [@down, $frame]; $frame = ($frame +1) %2;}

相关问题