/lib/pods/SDL/Tutorial.pod
http://github.com/PerlGameDev/SDL · Unknown · 109 lines · 70 code · 39 blank · 0 comment · 0 complexity · ff0ad13ede688fd5e09eb83597de82ef MD5 · raw file
- =head1 NAME
- SDL::Tutorial - introduction to Perl SDL
- =head2 CATEGORY
- Tutorials
- =head1 SYNOPSIS
- # to read this tutorial
- $ perldoc SDL::Tutorial
- # to run this tutorial
- $ perl -MSDL::Tutorial -e 1
- =head1 SDL Manual
- C<SDL::Tutorial> are incomplete and old. A new book has been started to provide
- a complete tutorial for SDL. See L<http://bit.ly/hvxc9V>.
- =head1 SDL BASICS
- SDL, the Simple DirectMedia Layer, is a cross-platform multimedia library.
- These are the Perl 5 bindings. You can find out more about SDL at
- L<http://www.libsdl.org/>. You can find out more about SDL perl at L<http://sdl.perl.org>.
- Creating an SDL application with Perl is easy. You have to know a few basics,
- though. Here's how to get up and running as quickly as possible.
- =head2 Surfaces
- All graphics in SDL live on a surface. You'll need at least one. That's what
- L<SDLx::App> provides.
- Of course, before you can get a surface, you need to initialize your video
- mode. SDL gives you several options, including whether to run in a window or
- take over the full screen, the size of the window, the bit depth of your
- colors, and whether to use hardware acceleration. For now, we'll build
- something really simple.
- =head2 Initialization
- SDLx::App makes it easy to initialize video and create a surface. Here's how to
- ask for a windowed surface with 640x480x16 resolution:
- use SDLx::App;
- my $app = SDLx::App->new(
- width => 640,
- height => 480,
- depth => 16,
- );
- You can get more creative, especially if you use the C<title> and C<icon>
- attributes in a windowed application. Here's how to set the window title of
- the application to C<My SDL Program>:
- use SDLx::App;
- my $app = SDLx::App->new(
- height => 640,
- width => 480,
- depth => 16,
- title => 'My SDL Program',
- );
- Setting an icon is a little more involved -- you have to load an image onto a
- surface. That's a bit more complicated, but see the C<name> parameter to
- C<SDL::Surface->new()> if you want to skip ahead.
- =head2 Working With The App
- Since C<$app> from the code above is just an SDL surface with some extra sugar,
- it behaves much like L<SDL::Surface>. In particular, the all-important C<blit>
- and C<update> methods work. You'll need to create L<SDL::Rect> objects
- representing sources of graphics to draw onto the C<$app>'s surface, C<blit>
- them there, then C<update> the C<$app>.
- B<Note:> "blitting" is copying a chunk of memory from one place to another.
- That, however, is another tutorial.
- =head1 SEE ALSO
- =over 4
- =item L<SDL::Tutorial::Animation>
- basic rectangle drawing and animation
- =item L<SDL::Tutorial::LunarLander>
- basic image loading and animation
- =back
- =head1 AUTHORS
- chromatic, E<lt>chromatic@wgz.orgE<gt>.
- Written for and maintained by the Perl SDL project, L<http://sdl.perl.org/>. See L<SDL/AUTHORS> for details.
- =head1 COPYRIGHT
- Copyright (c) 2003 - 2004, chromatic. 2009 - 2010, kthakore. All rights reserved. This module is
- distributed under the same terms as Perl itself, in the hope that it is useful
- but certainly under no guarantee.