From: Dobrica Pavlinusic Date: Wed, 19 May 2010 21:40:28 +0000 (+0200) Subject: added landing strip extractor X-Git-Url: http://git.rot13.org/?p=perl-landing-airplanes.git;a=commitdiff_plain;h=bfda40d03115b1be3cba579665db3b7e41e7513a;hp=46851d0baf6e8a3bb8f6f7580c062590d3c5d35a added landing strip extractor basically, it's a mask, with drop-point in black, 000, and than one by one lading points 00f, 0f0, 0ff, f00, f0f, ff0 while fff is reserved for background. 808080 is used to mask lading strip size if needed. --- diff --git a/trace-path.pl b/trace-path.pl index c0d695d..3fd2935 100755 --- a/trace-path.pl +++ b/trace-path.pl @@ -20,12 +20,21 @@ my ( $w, $h ) = ( 800, 480 ); my $mouse_trashold = 10; my $max_path_length = 200; +our $mouse_color = SDL::Color->new( 0x00, 0x00, 0x80 ); +our $path_color = SDL::Color->new( 0xff, 0xff, 0x80 ); +our $black = SDL::Color->new( 0x00, 0x00, 0x00 ); + sub debug { return unless $debug; my ($package, $filename, $line) = caller; warn '# ', dump( @_ ), " $filename +$line\n"; } +my $mask = SDL::Surface->new( + -name => 'artwork/world1/a-mask.png', + -depth => 24, +); + our $app = SDL::App->new( -width => $w, -height => $h, @@ -34,14 +43,41 @@ our $app = SDL::App->new( -title => 'Trace mouse', ); +our $app_rect = SDL::Rect->new( -x => 0, -y => 0, -width => $w, -height => $h ); +$mask->blit( $mask->rect, $app, $app_rect ); + +my @landing; + +my $mask_step = 10; + +my $y = 0; +foreach ( 0 .. $mask->height / $mask_step ) { + printf "%3d: ", $_; + my $x = 0; + foreach ( 0 .. $mask->width / $mask_step ) { + my $col = $mask->pixel( $x, $y ); + my $nr = 0; + $nr += 4 if $col->r; + $nr += 2 if $col->g; + $nr += 1 if $col->b; + $landing[$nr] = [ $x, $y ] unless defined $landing[$nr]; + printf "%02x%02x%02x:%d ", $col->r, $col->g, $col->b, $nr; + $x += $mask_step; + } + print "\n"; + $y += $mask_step; +} + +warn 'lading ',dump(@landing); + +exit; + +$app->sync; + our $event = SDL::Event->new; our $mouse_down = 0; -our $mouse_color = SDL::Color->new( 0x00, 0x00, 0x80 ); -our $path_color = SDL::Color->new( 0xff, 0xff, 0x80 ); -our $black = SDL::Color->new( 0x00, 0x00, 0x00 ); - my ( $last_x, $last_y ) = ( 0,0 ); our @path;