Progress toward sprite flipping
This commit is contained in:
parent
61fb64c10a
commit
d03c6d2093
|
|
@ -90,10 +90,8 @@ sub ShowSprite {
|
|||
} elsif($name eq 'max_loops') {
|
||||
$a->max_loops($val);
|
||||
} elsif($o eq 'flip') {
|
||||
# FIXME - This doesn't work
|
||||
my $s=$a->surface();
|
||||
$s->flip();
|
||||
$a->surface($s);
|
||||
$a->surface( FlipSurface($s) );
|
||||
} else {
|
||||
LogData(WARN, "Unknown option in ShowSprite '$o' - '$name'='$val'");
|
||||
}
|
||||
|
|
@ -155,4 +153,32 @@ sub RenderSprites {
|
|||
}
|
||||
}
|
||||
|
||||
# Fixme -- Still appears broken, but closer
|
||||
sub FlipSurface {
|
||||
my $src=shift(@_);
|
||||
my $dst = SDLx::Surface->new( width => $src->width(),
|
||||
height => $src->height(),
|
||||
format => $src->format(),
|
||||
flags => $src->flags(),
|
||||
color => $src->get_pixel( 0, 0 ),
|
||||
);
|
||||
my $w = $src->width();
|
||||
|
||||
for(my $y = 0; $y < $src->height(); $y++) {
|
||||
for(my $x = 0; $x < $w; $x++) {
|
||||
my $pixel = $src->get_pixel( $y, $x );
|
||||
$dst->set_pixel($y, $w-($x+1), $pixel);
|
||||
}
|
||||
}
|
||||
|
||||
return $dst;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -216,13 +216,13 @@ sub EvalString {
|
|||
#LogData(DEBUG, "Inserting space before last character");
|
||||
}
|
||||
|
||||
LogData(DEBUG, "Val is '$val'");
|
||||
#LogData(DEBUG, "Val is '$val'");
|
||||
|
||||
# Tokenize
|
||||
my @tokens = split(/\s+/,$val);
|
||||
|
||||
|
||||
for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 1 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||
#for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 1 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||
|
||||
for(my $i=0;$i<@tokens-0;$i++) {
|
||||
my $t = $tokens[$i];
|
||||
|
|
@ -237,17 +237,17 @@ sub EvalString {
|
|||
}
|
||||
}
|
||||
|
||||
for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 2 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||
#for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 2 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||
|
||||
my $eval_str = '$eval_res = ' . join(' ', @tokens) . ';';
|
||||
LogData(DEBUG, "About to eval '$eval_str'");
|
||||
#LogData(DEBUG, "About to eval '$eval_str'");
|
||||
my $eval_res;
|
||||
eval $eval_str;
|
||||
if($@) {
|
||||
LogData(ERROR, "Error in eval: $@");
|
||||
LogData(ERROR, "Error in eval '$eval_str': $@");
|
||||
return 0;
|
||||
}
|
||||
LogData(DEBUG, "Got result of '$eval_res'");
|
||||
#LogData(DEBUG, "Got result of '$eval_res'");
|
||||
return $eval_res;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue