my $self = $class->SUPER::new($x, $y, $w, $h);
unless ($$self) {
#require Carp;
- croak SDL::GetError();
+ croak SDL::get_error();
}
bless $self, $class;
return $self;
#############################
## extra accessors
#############################
+
+sub left {
+ my $self = shift;
+ $self->x(@_);
+}
+
+sub top {
+ my $self = shift;
+ $self->y(@_);
+}
+
+sub width {
+ my $self = shift;
+ $self->w(@_);
+}
+
+sub height {
+ my $self = shift;
+ $self->h(@_);
+}
+
sub bottom {
my ($self, $val) = (@_);
if (defined $val) {
## methods ##
###############################
-sub duplicate {
+{
+ no strict 'refs';
+ *{'duplicate'} = *{copy};
}
sub copy {
return (undef, undef);
}
+sub collidehashall {
+ my ($self, $rects) = (@_);
+
+ unless (defined $rects and ref $rects eq 'HASH') {
+ croak "must receive an hash reference of SDL::Rect-based objects";
+ }
+
+ my %collisions = ();
+ while ( my ($key, $value) = each %{$rects} ) {
+ unless ($value->isa('SDL::Rect')) {
+ croak "hash element of key '$key' is not an SDL::Rect-based object";
+ }
+
+ if ( _do_rects_intersect($self, $value) ) {
+ $collisions{$key} = $value;
+ }
+ }
+ return \%collisions;
+}
+
+
42;
__END__