package SimpleButton; #Erzeugen sub new {    my ($class,@params) = @_;    my $self = {};    bless($self,$class);    #for(qw(ID APP X Y IMG IMGHV)){$self->{$_} = shift(@params);}    $self->{ID} = shift(@params);              &n bsp; #ID oder Name    $self->{APP} = shift(@params);              &n bsp; #SDL APP    $self->{X} = shift(@params);    $self->{Y} = shift(@params);    $self->{IMG} = shift(@params);              &n bsp; #IMG normal    $self->{IMGHV} = shift(@params);            #IMG hover    $self->{DOSUB} = shift(@params);              &n bsp; #Button's sub         $self->{HV} = 0;              &nbs p;             #Hover state    $self->draw($self->{IMG});              &n bsp;     #Display    push(@butts, $self);    return($self); } #Button darstellen sub draw {    my ($self, $img) = @_;    my $dest_rect = SDL::Rect->new(-height => $img->height(),-width  => $img->width(),-x=> $self->{X},-y => $self->{Y});        $img->blit( SDL::Rect->new(-height => $img->height(),-width  => $img->width(),-x => 0, -y  => 0), $self->{APP}, $dest_rect );    $self->{APP}->update( $dest_rect ); } #Alle Elemente Prüfen sub checkall {    my ($self, $mx, $my) = @_;    for(@butts) { if($_->check_button($mx,$my)){$active_element = $_;} }    return $active_element;     } #Sub zurückgeben sub dosub { my $self = shift; return $self->{DOSUB}; } sub get {     my $self = shift;     my $values = shift;     return $self->{"$values"}; } sub check_button {    my ($self, $mx, $my) = @_;    my $img = $self->{IMG};    #Hover - Effekt    if($mx > $self->{X} &&  $mx < ($self->{X}+ $img->width)  && $my > $self->{Y}    &&   $my < ($self->{Y}+ $img->height) )    {        if(not  $self->{HV}) {$self->{HV}=1; $self->draw($self->{IMGHV});}         return true;    } else    {            if($self->{HV}) {$self->{HV}=0; $self->draw($self->{IMG});}           }    return false; } sub button_check{} sub button_hover{} sub button_click{} 1;