CECALA
view release on metacpan or search on metacpan
lunarLander/lunarLander.pl view on Meta::CPAN
);
$can->create ( 'line',
$vp->x_viewport($Lander[5]->getx()),
$vp->y_viewport($Lander[5]->gety()),
$vp->x_viewport($Lander[10]->getx()),
$vp->y_viewport($Lander[10]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[10]->getx()),
$vp->y_viewport($Lander[10]->gety()),
$vp->x_viewport($Lander[11]->getx()),
$vp->y_viewport($Lander[11]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[11]->getx()),
$vp->y_viewport($Lander[11]->gety()),
$vp->x_viewport($Lander[12]->getx()),
$vp->y_viewport($Lander[12]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[12]->getx()),
$vp->y_viewport($Lander[12]->gety()),
$vp->x_viewport($Lander[13]->getx()),
$vp->y_viewport($Lander[13]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[13]->getx()),
$vp->y_viewport($Lander[13]->gety()),
$vp->x_viewport($Lander[14]->getx()),
$vp->y_viewport($Lander[14]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[14]->getx()),
$vp->y_viewport($Lander[14]->gety()),
$vp->x_viewport($Lander[15]->getx()),
$vp->y_viewport($Lander[15]->gety()),
-fill => $fill,
-tag => 'Lander'
);
$can->create ( 'line',
$vp->x_viewport($Lander[15]->getx()),
$vp->y_viewport($Lander[15]->gety()),
$vp->x_viewport($Lander[4]->getx()),
$vp->y_viewport($Lander[4]->gety()),
-fill => $fill,
-tag => 'Lander'
);
}
### get collision detection bounding box from lander
sub updateClipBox {
my $smallest_x = $Lander[0]->getx();
my $smallest_y = $Lander[0]->gety();
my $largest_x = $Lander[0]->getx();
my $largest_y = $Lander[0]->gety();
my $i = 0;
foreach my $v ( @Lander ) {
# pts 16 and 17 are not really parts of the lander
# pt 16 is the flame and 17 is center of gravity
if ( $i < 16 ) {
if( $v->getx() <= $smallest_x ) { $smallest_x = $v->getx(); }
if( $v->gety() <= $smallest_y ) { $smallest_y = $v->gety(); }
if( $v->getx() >= $largest_x ) { $largest_x = $v->getx(); }
if( $v->gety() >= $largest_y ) { $largest_y = $v->gety(); }
}
$i++;
}
$clipbox->setclipboundaries( $smallest_x, $smallest_y, $largest_x, $largest_y);
# print " ($smallest_x, $smallest_y, $largest_x, $largest_y) \n";
}
( run in 1.115 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )