=head1 TITLE eventhandler.pir - a tetris event handler class =cut .namespace ["Tetris::EventHandler"] .sub __onload :load $P0 = get_class "Tetris::EventHandler" unless null $P0 goto END load_bytecode "library/SDL/EventHandler.pir" get_class $P0, ['SDL'; 'EventHandler'] subclass $P0, $P0, "Tetris::EventHandler" $P1 = new 'String' $P1 = "BUILD" setprop $P0, "BUILD", $P1 addattribute $P0, "app" END: .end .sub BUILD :method .param pmc app setattribute self, 'app', app .end .sub app :method .local pmc app getattribute app, self, 'app' .return (app) .end .sub dispatch_event :method .local pmc app .local int ret app = self."app"() app."setTimer"( 0 ) $P0 = get_hll_global ['SDL'; 'Event'], "disptach_event" ret = $P0() app."setTimer"( 1 ) .return (ret) .end .sub nextBlock :method .param int boardID .param int blockID .local pmc app .local pmc board .local pmc block print "next block on board " print boardID print " is " print blockID print "\n" app = self."app"() board = app."board"( boardID ) # get the current next block block = board."getNextBlock"() # set the wanted block as new next block board."nextBlock"( blockID ) # make it active by activating a new block board."nextBlock"() # restore the old "nextBlock" board."setNextBlock"( block ) .end .sub key_down_escape :method end .end .sub key_down_0 :method self."nextBlock"( 0, -1 ) .end .sub key_down_1 :method self."nextBlock"( 0, 0 ) .end .sub key_down_2 :method self."nextBlock"( 0, 1 ) .end .sub key_down_3 :method self."nextBlock"( 0, 2 ) .end .sub key_down_4 :method self."nextBlock"( 0, 3 ) .end .sub key_down_5 :method self."nextBlock"( 0, 4 ) .end .sub key_down_6 :method self."nextBlock"( 0, 5 ) .end .sub key_down_7 :method self."nextBlock"( 0, 6 ) .end .sub key_down_space :method $P0 = self."app"() $P0."fall"( 0 ) .end .sub key_down_left :method $P0 = self."app"() $P0."move"( 0, -1, 0 ) .end .sub key_down_right :method $P0 = self."app"() $P0."move"( 0, +1, 0 ) .end .sub key_down_up :method $P0 = self."app"() $P0."rotate"( 0, -1 ) .end .sub key_down_down :method $P0 = self."app"() $P0."rotate"( 0, +1 ) .end .sub key_down_F1 :method $P0 = self."app"() $P0."newGame"( 1 ) .end .sub key_down_F2 :method $P0 = self."app"() $P0."newGame"( 2 ) .end =head1 AUTHOR Jens Rieks E<lt>parrot at jensbeimsurfen dot deE<gt> is the author and maintainer. Please send patches and suggestions to the Perl 6 Internals mailing list. =head1 COPYRIGHT Copyright (C) 2004-2008, Parrot Foundation. =cut # Local Variables: # mode: pir # fill-column: 100 # End: # vim: expandtab shiftwidth=4 ft=pir: