X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=sdlgit%2FSDL-Site.git;a=blobdiff_plain;f=pages%2FSDL-Tutorial-Animation.html-inc;h=2f15476828d7b9620bc8f05b874b84ce6b203a24;hp=51fcdcf837de6cfcb7ba94182da6a01b7c2369c2;hb=d5943b684b1240307fbf0a103abbf18dd93998f4;hpb=b3ef54ec01be4b60fc106acc290e3b95c644de00 diff --git a/pages/SDL-Tutorial-Animation.html-inc b/pages/SDL-Tutorial-Animation.html-inc index 51fcdcf..2f15476 100644 --- a/pages/SDL-Tutorial-Animation.html-inc +++ b/pages/SDL-Tutorial-Animation.html-inc @@ -2,7 +2,10 @@
SDL::Tutorial::Animation
Tutorials
+ +# to read this tutorial @@ -51,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
+every frame. Given a SDLx::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} ); }@@ -110,9 +140,10 @@ figure out the rectangle of the correct size toupdate()
. 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} ); } @@ -147,11 +178,11 @@ them soon.SEE ALSO
-
- SDL::Tutorial::Drawing
+- SDL::Tutorial::Drawing
- -
basic drawing with SDL Perl
- SDL::Tutorial::Images
+- SDL::Tutorial::Images
- @@ -161,7 +192,8 @@ them soon.
animating images
AUTHOR
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.
BUGS