#!/usr/bin/perl use strict; use warnings; use Carp; use SDL; use SDLx::App; use SDL::Event; use SDL::Events; use SDL::Image; use SDL::Audio; use SDL::Mixer; use SDLx::Sprite; use SDLx::Sprite::Animated; use SDL::Mixer::Samples; use SDL::Mixer::Channels; use SDL::Mixer::Music; my $app=SDLx::App->new( w=>500, h=>500, title=>'Moving Sprite' ); my $quit=0; my $laser=20; my $laser_y=25; my $fire=0; my $e_x=100; my $e_y=50; #positions my $pos_y=15; my $pos_x=5; my $ex=SDL::Rect->new($e_x,$e_y,20,20); my $dt=15; my $rect=SDL::Rect->new(0,0,50,50); my $sprite = SDLx::Sprite::Animated->new(width=>100,height=>120); $sprite->load("man.png"); #$sprite->ticks_per_frame(1); sub get_events{ my $event=SDL::Event->new(); #$event->set_key_repeat(10,10); SDL::Events::pump_events(); while(SDL::Events::poll_event($event)){ $quit=1 if $event->type==SDL_QUIT; if($event->type==SDL_KEYDOWN){ if($event->key_sym==SDLK_RIGHT){ print "RIGHT!\n"; $sprite->next; last; }elsif($event->key_sym==SDLK_SPACE){ $sprite->stop; $sprite->reset; } } } } sub render{ $sprite->draw($app); $app->update(); SDL::Video::update_rects($app,$sprite->rect); } while(!$quit){ get_events(); render(); }