Sponsored Content
Full Discussion: Tk tutorial
Top Forums Shell Programming and Scripting Tk tutorial Post 32028 by WIntellect on Sunday 17th of November 2002 12:23:15 PM
Old 11-17-2002
If you've got the money, you could always buy:

Mastering Perl/Tk - O'Reilly, Steve Lidie & Nancy Walsh

it's about fourty five dollars!
 

9 More Discussions You Might Find Interesting

1. Post Here to Contact Site Administrators and Moderators

Tutorial forum?

I got this account a while ago and didn't have much time to try it out. After having had some frustration by posting tutorials regarding various Linux activites of mine in my Slashdot journals, it occurred to me that this forum might be better suited. I know I can probably post in the OS specific... (1 Reply)
Discussion started by: deckard
1 Replies

2. UNIX for Advanced & Expert Users

AUTOSYS Tutorial

Can any one help me out in finding the AutoSys tutorial? I just know it is one of scheduling tool (like cron job). (2 Replies)
Discussion started by: ravikirankethe
2 Replies

3. UNIX for Dummies Questions & Answers

Please help, looking for UNIX tutorial

Hello, I only have this afternoon to take a UNIX tutorial for my contract job, and I've posted two threads already for the forum, asking if someone could help me find the Gary Hook AIX tutorial. Neither has been published yet. Could you please help me? Thank you. :confused: (0 Replies)
Discussion started by: jeffpas
0 Replies

4. Linux

Tutorial for btrfs

By any chance anyone knows of any tutorials available for btrfs? I am having a difficult time finding one and I thought maybe someone had a reference to one already... :rolleyes: (0 Replies)
Discussion started by: EssenceNY
0 Replies

5. AIX

AIX useful tutorial...

hi guys, I want to learn AIX, I am a beginner for this operating system of IBM. Can anyone give me some useful tutorial for a beginner like me?... Thanks... + GOD bless + ^_^ (1 Reply)
Discussion started by: TechReader
1 Replies

6. Shell Programming and Scripting

Why do I need this in the script tutorial?

I'm taking a tutorial - intro to Unix Shell Scripting - and the first exercise is a walk-through of writing a script to achieve the following: "As a network administrator you are collecting configuration information about all FTP servers in the organisation. You need to write a script to collect... (6 Replies)
Discussion started by: MaindotC
6 Replies

7. Solaris

Need LAMP tutorial!

Hello Everybody, Does anybody know or recommend me a tutorial for LAMP server on Solaris 10 x86? (3 Replies)
Discussion started by: ahmedamer12
3 Replies

8. Shell Programming and Scripting

Tutorial question

Write a pipeline that takes a file as input and replaces all occurrences of exclamation marks (!) by underscores (_) . The pipeline should also prepend your login at the beginning of every line (the beginning of a line is specified with ^ in Unix) Hi guys, Just trying to do this tutorial... (1 Reply)
Discussion started by: geena_b
1 Replies

9. Web Development

Vue JS 2 Tutorial by The Net Ninja: A Recommended Vue.js Video Tutorial Series

A number of people have asked me how to get started with Vue.js and my reply before today was to Google "Vue.js". That has changed and my recommendation to anyone who wants to learn the fastest growing, easiest to learn and use Vue.js web dev framework is to watch this video tutorial series: ... (0 Replies)
Discussion started by: Neo
0 Replies
SDL::Tutorial::LunarLander(3)				User Contributed Perl Documentation			     SDL::Tutorial::LunarLander(3)

NAME
Lunar Lander - a small tutorial on Perl SDL INTRODUCTION
This is a quick introduction to Games, Perl, and SDL (Simple DirectMedia Layer, a cross-platform multimedia programming library). We'll write a small game -- Lunar Lander -- in 100 lines of code, or less. CREATING A DEMO You can see the final version of the demo code by doing: perl -MSDL::Tutorial::LunarLander=lander.pl -e1 this will create all three files used in the tutorial: FIRST VERSION We'll start with a text version of the game. "What?", you may ask. "I thought it was a SDL tutorial". Yes, it is -- thank you for reminding me. But we'll leave the SDL part for later. We must build the game logic first! One of the traps of game programming is focusing too much on the interface. If we start with a simpler simulation, we can worry with the presentation later. So, here's the initial code: #!/usr/bin/perl use strict; use warnings; my $height = 1000; # m my $velocity = 0; # m/s my $gravity = 1; # m/s^2 my $t = 0; while ( $height > 0 ) { print "at $t s height = $height m, velocity = $velocity m/s "; $height = $height - $velocity; $velocity = $velocity + $gravity; $t = $t + 1; } if ( $velocity > 10 ) { print "CRASH!!! "; } else { print "You landed on the surface safely! :-D "; } Run the code and you'll see something like this: at 0 s height = 1000 m, velocity = 0 m/s at 1 s height = 1000 m, velocity = 1 m/s at 2 s height = 999 m, velocity = 2 m/s at 3 s height = 997 m, velocity = 3 m/s at 4 s height = 994 m, velocity = 4 m/s at 5 s height = 990 m, velocity = 5 m/s ... at 43 s height = 97 m, velocity = 43 m/s at 44 s height = 54 m, velocity = 44 m/s at 45 s height = 10 m, velocity = 45 m/s CRASH!!! "What happened? How do I control the ship???" CONTROLLING THE SHIP The problem with our first spaceship is that it had no controls! So, let's fix this problem, making the spaceship scriptable. (We could write some code to handle keyboard and joysticks now, but an scriptable spaceship will be easier to start. Remember, focus on the game logic!) So, create add this simple script to the end of your file: __DATA__ at 41s, accelerate 10 m/s^2 up at 43s, 10 m/s^2 at 45s, 10 at 47s, 10 at 49s, 10 The script is straightforward: it simply states a time when we will push the spaceship up with a given acceleration. It accepts free text: any two numbers you type will work. We can parse the script using this regular expression: my $script_re = qr/(d+) D+ (d+)/x; And we can build a hash of ( time => acceleration ) with: my %up = map { $_ =~ $script_re } <DATA>; So the middle section of the program will become: my $script_re = qr/(d+) D+ (d+)/x; my %up = map { $_ =~ $script_re } <DATA>; while ( $height > 0 ) { print "at $t s height = $height m, velocity = $velocity m/s "; if ( $up{$t} ) { my $a = $up{$t}; print "(accellerating $a m/s^2) "; $velocity = $velocity - $a; } $height = $height - $velocity; $velocity = $velocity + $gravity; $t = $t + 1; } That's it! Try to run the program, and the ship should land safely: ./lunar.pl autopilot.txt at 0 s height = 1000 m, velocity = 0 m/s at 1 s height = 1000 m, velocity = 1 m/s at 2 s height = 999 m, velocity = 2 m/s at 3 s height = 997 m, velocity = 3 m/s at 4 s height = 994 m, velocity = 4 m/s at 5 s height = 990 m, velocity = 5 m/s ... at 54 s height = 19 m, velocity = 4 m/s at 55 s height = 15 m, velocity = 5 m/s at 56 s height = 10 m, velocity = 6 m/s at 57 s height = 4 m, velocity = 7 m/s You landed on the surface safely! :-D Cool, but... HOW ABOUT THE GRAPHICS? Okay, okay... now that we have a working prototype, we can work on the graphics. But, first of all, we'll need... THE GRAPHICS Yes, the graphics. We won't use anything fancy here, just two images: a large one, for the background, and a smaller one for the spaceship. Create the images using the Gimp, or use the images provided by this tutorial; Save these images in a subdirectory called "images": (""images/background.jpg"" and ""images/ship.png""). USING SDL First step: use the required libraries: use SDL; #needed to get all constants use SDL::App; use SDL::Surface; use SDL::Rect; Second step: initialize "SDL::App": my $app = SDL::App->new( -title => "Lunar Lander", -width => 800, -height => 600, -depth => 32, ); Third step: load the images and create the necessary "rectangles": my $background = SDL::Surface->new( -name => 'images/background.jpg', ); my $ship = SDL::Surface->new( -name => 'images/ship.png', ); my $background_rect = SDL::Rect->new( -height => $background->height(), -width => $background->width(), ); my $ship_rect = SDL::Rect->new( -height => $ship->height(), -width => $ship->width(), ); Fourth step: create a sub to draw the spaceship and background: sub draw { my ( $x, $y ) = @_; # spaceship position # fix $y for screen resolution $y = 450 * ( 1000 - $y ) / 1000; # background $background->blit( $background_rect, $app, $background_rect ); # ship my $ship_dest_rect = SDL::Rect->new( -height => $ship->height(), -width => $ship->width(), -x => $x, -y => $y, ); $ship->blit( $ship_rect, $app, $ship_dest_rect ); $app->update($background_rect); } Note that this sub first combines all the bitmaps, using a blit ("Block Image Transfer") operation -- which is quite fast, but does not update the display. The combined image is displayed in the last line. This process of combining first, and displaying later, avoids that annoying fading between cycles ("flickering"). Finally, add the following lines to the end of the main loop, so that we call the "draw()" function with the correct spaceship coordinates: while ( $height > 0 ) { # ... draw( 100, $height ); $app->delay(10); } That's it! Run the program and watch the spaceship landing safely on the surface of the moon. COPYRIGHT &; LICENSE Copyright 2009 Nelson Ferraz, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.1 2010-07-05 SDL::Tutorial::LunarLander(3)
All times are GMT -4. The time now is 07:02 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy