Advertisement
Guest User

Untitled

a guest
Jan 24th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6 1.19 KB | None | 0 0
  1. use NativeCall;
  2. use SDL2::Raw;
  3. use Cairo;
  4. use nqp;
  5.  
  6. constant TITLE = "Sample Game";
  7. constant W = 1280;
  8. constant H = 960;
  9.  
  10. class Game {
  11.   has $!window;
  12.   has $!render;
  13.   has $!event;
  14.   has $.isRunning;
  15.  
  16.   method new {
  17.     $!isRunning = True;
  18.     $!event = SDL_Event.new;
  19.   }
  20.  
  21.   method init(Str $title, Int $width, Int $height) {
  22.     SDL_Init(VIDEO +| AUDIO);
  23.     $!window = SDL_CreateWindow($title, SDL_WINDOWPOS_CENTERED_MASK, SDL_WINDOWPOS_CENTERED_MASK,
  24.           $width, $height, SHOWN);
  25.     with $!window {
  26.       $!render = SDL_CreateRenderer($!window, -1, ACCELERATED +| PRESENTVSYNC);
  27.     }
  28.   }
  29.  
  30.   method render {
  31.     SDL_SetRenderDrawColor($!render, 0, 0, 0, 255);
  32.     SDL_RenderClear($!render);
  33.     SDL_RenderPresent($!render);
  34.   }
  35.  
  36.   method update {
  37.   }
  38.  
  39.   method handleEvents {
  40.     if SDL_PollEvent($!event) {
  41.       my $casted_event = SDL_CastEvent($!event);
  42.  
  43.       given $casted_event {
  44.         when *.WHAT == QUIT {
  45.           $!isRunning = False;
  46.         }
  47.       }
  48.     }
  49.   }
  50.  
  51.   method clean {
  52.     # no destroyWindow method? huh?
  53.     SDL_DestroyRenderer($!render);
  54.     SDL_Quit();
  55.   }
  56.  
  57. }
  58.  
  59. my $game = Game.new();
  60.  
  61. #main: until {
  62. #}
  63.  
  64. sleep(4);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement