sub handle_fire {
my ($new, $x, $y) = @_;
my $skip = 0;
if($new){ push(@fire_items, $x.' '.$y); }
my $i = 0;
while($i < @fire_items) {
my ($xc, $yc) = split(' ',$fire_items[$i]);
splice(@fire_items,$i,1) and $skip = 1 unless $xc < $app->width + $images{'beam1'}->width;
if($skip){ $skip = 0; next; }
&erase_image($images{'beam1'}->width, $images{'beam1'}->height,$xc-10,$yc);
&put_image($images{'beam1'}, $xc, $yc);
$fire_items[$i]=join(' ',$xc + 10, $yc);
$i++;
}
}
####
#draw gunshots, possibly add new one
handle_fire( $fire, $x, $y );
##
##
#draw gunshots, possibly add new one
$fire_items = handle_fire( $fire, $x, $y, $fire_items );
##
##
my $fire_items;
.
.
.
while (1) {
.
.
.
#draw gunshots, possibly add new one
$fire_items = handle_fire( $fire, $x, $y, $fire_items );
.
.
.
}
##
##
sub handle_fire {
my ( $new, $x, $y ) = @_;
my $skip = 0;
if ( $new ){
push(@fire_items, $x.' '.$y);
}
my $i = 0;
while( $i < @fire_items ) {
my ( $xc, $yc ) = split(' ', $fire_items[$i] );
splice( @fire_items, $i, 1 ) and $skip = 1 unless $xc < $app->width + $images{beam1}->width;
if( $skip ){
$skip = 0;
next;
}
erase_image( $images{beam1}->width, $images{beam1}->height, $xc-10, $yc );
put_image( $images{beam1}, $xc, $yc );
$fire_items[$i] = join(' ', $xc + 10, $yc );
$i++;
}
}
##
##
sub handle_fire {
my ( $new, $x, $y, $fire_items ) = @_;
my $skip = 0;
if ( $new ){
push(@$fire_items, $x.' '.$y);
}
my $i = 0;
while( $i < @$fire_items ) {
my ( $xc, $yc ) = split(' ', $$fire_items[$i] );
splice( @$fire_items, $i, 1 ) and $skip = 1 unless $xc < $app->width + $images{beam1}->width;
if( $skip ){
$skip = 0;
next;
}
erase_image( $images{beam1}->width, $images{beam1}->height, $xc-10, $yc );
put_image( $images{beam1}, $xc, $yc );
$$fire_items[$i] = join(' ', $xc + 10, $yc );
$i++;
}
return $fire_items;
}
##
##
if ( $new ){
push(@$fire_items, $x.' '.$y);
}
##
##
if ( $new ){
push @$fire_items, [$x, $y];
}
##
##
push @$fire_items, [$x, $y] if $new;
##
##
my ( $xc, $yc ) = split(' ', $$fire_items[$i] );
##
##
my ( $xc, $yc ) = @{ $fire_items[$i] };
##
##
$$fire_items[$i] = join(' ', $xc + 10, $yc );
##
##
$$fire_items[$i] = [$xc + 10, $yc];
##
##
unless ( $xc < $app->width + $images{beam1}->width ) {
splice( @$fire_items, $i, 1 );
next;
}
##
##
sub handle_fire {
my ( $new, $x, $y, $fire_items ) = @_;
my $i = 0;
my @temp;
while ( $i < @$fire_items ) {
my ( $xc, $yc ) = @{ $fire_items[$i] };
next unless $xc < $app->width + $images{beam1}->width;
erase_image( $images{beam1}->width, $images{beam1}->height, $xc-10, $yc );
put_image( $images{beam1}, $xc, $yc );
push @temp, [$xc + 10, $yc];
$i++;
}
push @temp, [$x, $y] if $new;
return \@temp;
}
##
##
sub handle_fire {
my ( $new, $x, $y, $fire_items ) = @_;
my @temp;
foreach my $item ( @$fire_items ) {
my ( $xc, $yc ) = @$item;
next unless $xc < $app->width + $images{beam1}->width;
erase_image( $images{beam1}->width, $images{beam1}->height, $xc-10, $yc );
put_image( $images{beam1}, $xc, $yc );
push @temp, [$xc + 10, $yc];
}
push @temp, [$x, $y] if $new;
return \@temp;
}