Advertisement
Guest User

Perl SDL Sprite

a guest
Jan 24th, 2017
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use Carp;
  6. use SDL;
  7. use SDLx::App;
  8. use SDL::Event;
  9. use SDL::Events;
  10. use SDL::Image;
  11. use SDL::Audio;
  12. use SDL::Mixer;
  13. use SDLx::Sprite;
  14. use SDLx::Sprite::Animated;
  15. use SDL::Mixer::Samples;
  16. use SDL::Mixer::Channels;
  17. use SDL::Mixer::Music;
  18.  
  19. my $app=SDLx::App->new(
  20. w=>500,
  21. h=>500,
  22. title=>'Moving Sprite'
  23. );
  24.  
  25. my $quit=0;
  26. my $laser=20;
  27. my $laser_y=25;
  28. my $fire=0;
  29. my $e_x=100;
  30. my $e_y=50;
  31. #positions
  32. my $pos_y=15;
  33. my $pos_x=5;
  34. my $ex=SDL::Rect->new($e_x,$e_y,20,20);
  35. my $dt=15;
  36. my $rect=SDL::Rect->new(0,0,50,50);
  37. my $sprite = SDLx::Sprite::Animated->new(width=>100,height=>120);
  38. $sprite->load("man.png");
  39. #$sprite->ticks_per_frame(1);
  40. sub get_events{
  41. my $event=SDL::Event->new();
  42. #$event->set_key_repeat(10,10);
  43. SDL::Events::pump_events();
  44. while(SDL::Events::poll_event($event)){
  45. $quit=1 if $event->type==SDL_QUIT;
  46. if($event->type==SDL_KEYDOWN){
  47. if($event->key_sym==SDLK_RIGHT){
  48. print "RIGHT!\n";
  49. $sprite->next;
  50. last;
  51. }elsif($event->key_sym==SDLK_SPACE){
  52. $sprite->stop;
  53. $sprite->reset;
  54. }
  55. }
  56. }
  57. }
  58.  
  59. sub render{
  60. $sprite->draw($app);
  61. $app->update();
  62. SDL::Video::update_rects($app,$sprite->rect);
  63. }
  64. while(!$quit){
  65. get_events();
  66. render();
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement