I am mostly a self-taught programmer. When I was growing up in the late 1970s, our elementary school had a small resource room with an Apple II computer. My brother and I fell into a group of friends that liked computers, and we all helped each other learn the system.read more
The Ubuntu 20.04 LTS (Focal Fossa) operating system series sees today the release of the first updated media, Ubuntu 20.04.1 LTS, which incorporates all the package updates and security fixes published by Canonical.
In this tutorial, we will show you how to install Tiki Wiki CMS Groupware on Ubuntu 20.04 with Apache web server, MySQL Server, and PHP 7.4. Also, we will secure the Tiki Wiki CMS Groupware with SSL Letsencrypt.
Version 2.32 of the GNU C
Library (glibc) has been released. It contains support for
Unicode 13.0.0, a new Kurdish/Sorani locale (ckb_IQ), support
for audit modules listed in ELF sections of the executable, support for
Synopsys ARC HS cores, new signal
abbreviation and descriptive text functions (sigabbrev_np() and sigdescr_np()), similar functions for errno values
(strerrorname_np() and strerrordesc_np()), branch
protection security hardening for arm64, and more. There are also lots of
bug fixes, deprecations, and removals, as well as four security fixes. More
information can be found in the release notes.
Fly through the clouds in our re-creation of Konami’s classic 1980s shooter. Mark Vanstone has the code
Arguably one of Konami’s most successful titles, Time Pilot burst into arcades in 1982. Yoshiki Okamoto worked on it secretly, and it proved so successful that a sequel soon followed. In the original, the player flew through five eras, from 1910, 1940, 1970, 1982, and then to the far future: 2001. Aircraft start as biplanes and progress to become UFOs, naturally, by the last level.
Players also rescue other pilots by picking them up as they parachute from their aircraft. The player’s plane stays in the centre of the screen while other game objects move around it. The clouds that give the impression of movement have a parallax style to them, some moving faster than others, offering an illusion of depth.
To make our own version with Pygame Zero, we need eight frames of player aircraft images – one for each direction it can fly. After we create a player Actor object, we can get input from the cursor keys and change the direction the aircraft is pointing with a variable which will be set from zero to 7, zero being the up direction. Before we draw the player to the screen, we set the image of the Actor to the stem image name, plus whatever that direction variable is at the time. That will give us a rotating aircraft.
To provide a sense of movement, we add clouds. We can make a set of random clouds on the screen and move them in the opposite direction to the player aircraft. As we only have eight directions, we can use a lookup table to change the x and y coordinates rather than calculating movement values. When they go off the screen, we can make them reappear on the other side so that we end up with an ‘infinite’ playing area. Add a level variable to the clouds, and we can move them at different speeds on each update() call, producing the parallax effect. Then we need enemies. They will need the same eight frames to move in all directions. For this sample, we will just make one biplane, but more could be made and added.
To get the enemy plane to fly towards the player, we need a little maths. We use the math.atan2() function to work out the angle between the enemy and the player. We convert that to a direction which we set in the enemy Actor object, and set its image and movement according to that direction variable. We should now have the enemy swooping around the player, but we will also need some bullets. When we create bullets, we need to put them in a list so that we can update each one individually in our update(). When the player hits the fire button, we just need to make a new bullet Actor and append it to the bullets list. We give it a direction (the same as the player Actor) and send it on its way, updating its position in the same way as we have done with the other game objects.
The last thing is to detect bullet hits. We do a quick point collision check and if there’s a match, we create an explosion Actor and respawn the enemy somewhere else. For this sample, we haven’t got any housekeeping code to remove old bullet Actors, which ought to be done if you don’t want the list to get really long, but that’s about all you need: you have yourself a Time Pilot clone!
Get your copy of Wireframe issue 41
You can read more features like this one in Wireframe issue 41, available directly from Raspberry Pi Press — we deliver worldwide.
Mumble is a low-latency, high quality voice chat program for gaming. It features noise suppression, encrypted connections for both voice and instant messaging, automatic gain control and low latency audio with support for multiple audio standards.
Longtime Linux kernel developer Pavel Machek has taken over as sole maintainer of the LED subsystem. For this first pull request going into Linux 5.9 is a big addition… The multi-color LED framework code has finally been merged…