X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-Tutorial-Animation.html-inc;h=df5b3fb1dc91da7a8b268cdae63f16dce189ca7b;hb=0b221bb4fce84647a6cb9d7343de7330fb561c71;hp=c5c526ccc85ebd8193e681e8ea9dd058a984dd8c;hpb=46beffd8f76fe150d946bf61c780e61de2affbdf;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL-Tutorial-Animation.html-inc b/pages/SDL-Tutorial-Animation.html-inc index c5c526c..df5b3fb 100644 --- a/pages/SDL-Tutorial-Animation.html-inc +++ b/pages/SDL-Tutorial-Animation.html-inc @@ -59,19 +59,41 @@ frame and saving and restoring the background for every object drawn.
Since you have to draw the screen in the right order once to start with it's
pretty easy to make this into a loop and redraw things in the right order for
-every frame. Given a SDL::App object $app
, a SDL::Rect $rect
, and
-a SDL::Color $color
, you only have to create a new SDL::Rect $bg
,
-representing the whole of the background surface and a new SDL::Color
-$bg_color
, representing the background color. You can write a
-draw_frame()
function as follows:
$app
, a SDL::Rect $rect
, and
+a SDL::Color $color
, you only have to create a new SDL::Rect $bg
,
+representing the whole of the background surface and a new mapped color
+$bg_color
, representing the background color. The colors need to be mapped
+to the format of the current display. This is done by SDL::Video::map_RGB.
++
my $color = SDL::Video::map_RGB ( + $app->format, + $rect_r, + $rect_g, + $rect_b, +);
+my $bg_color = SDL::Video::map_RGB ( + $app->format, + $bg_r, + $bg_g, + $bg_b, +);
++ + + + + + + +
You can write a draw_frame()
function as follows:
sub draw_frame { my ($app, %args) = @_; - $app->fill( $args{ bg }, $args{ bg_color } ); - $app->fill( $args{rect}, $args{rect_color} ); - $app->update( $args{bg} ); + SDL::Video::fill_rect($app, $args{bg}, $args{bg_color} ); + SDL::Video::fill_rect($app, $args{rect}, $args{rect_color} ); + SDL::Video::update_rects($app, $args{bg} ); }@@ -118,9 +140,10 @@ figure out the rectangle of the correct size to
update()
. No thank
{
my ($app, %args) = @_;
- $app->fill( $args{old_rect}, $args{bg_color} );
- $app->fill( $args{rect], $args{rect_color} );
- $app->update( $args{old_rect}, $args{rect} );
+ SDL::Video::fill_rect($app, $args{old_rect}, $args{bg_color} );
+ SDL::Video::fill_rect($app, $args{rect}, $args{rect_color} );
+ SDL::Video::update_rects($app, $args{old_rect} );
+ SDL::Video::update_rects($app, $args{rect} );
}
@@ -155,11 +178,11 @@ them soon.
basic drawing with SDL Perl
animating images
chromatic, <chromatic@wgz.org>
-Written for and maintained by the Perl SDL project, http://sdl.perl.org/.
+Written for and maintained by the Perl SDL project, http://sdl.perl.org/. +See AUTHORS in SDL.