Spel i Python med hjälp av Pygame

Om du vill programmera spel i Python, eller om du bara vill åt funktioner som klockan, tangentbordet, musen och displayen, så är pygame ett mycket praktiskt bibliotek. Följ instruktionerna nedan för att få fram en roterande text.

  1. Starta ett terminalfönster med Ctrl-Alt-T.
  2. Skapa ett arbetsbibliotek
    mkdir rotera
  3. Gå till arbetsbiblioteket
    cd rotera
  4. Uppdatera alla källor
    sudo apt-get update
  5. Installera Python 2.
    sudo apt-get install python
  6. Installera editorn Idle.
    sudo apt-get install idle
  7. Installera python-pygame
    sudo apt-get install python-pygame
  8. Starta Idle
    idle
  9. Skapa ett nytt projekt med Ctrl-N.
  10. Kopiera in följande kod.
    Var noga med att få med indragningarna i vänsterkanten eftersom de har en viktig funktion i Python.

    """
     ROTATING TEXT
     Parts of this code is borrowed from Simpson College
     The reason to write comments in English is that Swedish letters
     may cause problems. Try out for yourself.
    """
    # Replace DITT NAMN with your name.
    strYourName = "DITT NAMN"
     
    # Import pygame game engine library with lots of additional functions
    import pygame
     
    pygame.init()
    
    # Define some colours as constants
    BLACK = (0, 0, 0)
    WHITE = (255, 255, 255)
    BLUE = (0, 0, 255)
    GREEN = (0, 255, 0)
    RED = (255, 0, 0)
    
    PI = 3.141592653
     
    # Set x,y size of the window
    screen = pygame.display.set_mode((400,500))
    
    # Enter text that is viewed on top of the window 
    pygame.display.set_caption(strYourName)
    
    # Select the font to use, size, bold, italics
    font = pygame.font.SysFont('Calibri', 100, True, False)
    
    # Start angle of text
    text_rotation = 0
    
    # Create a clock object to control the speed of the text
    clock = pygame.time.Clock()
    
    # Loop as long as running == True
    running = True
    while running:
    
        # Did user decided to quit the program? 
        for event in pygame.event.get():  # User did something
            if event.type == pygame.QUIT:  # If user clicked close
                running = False  # Flag that we want to quit the loop
      
    
        # Clear the window and set window background to white
        screen.fill(WHITE)
     
        # Animated rotation
        text = font.render(strYourName, True, GREEN)
        text = pygame.transform.rotate(text, text_rotation)
        text_rotation += 1  #Rotate one degree every loop
        screen.blit(text, [50, 50])
     
        # Update windows with what we drawn
        pygame.display.flip()
     
        # Limits the speed to 60 loops = 60 degrees per second.
        # Try to increase.
        clock.tick(60)
     
    # Quit program in a controlled manner
    pygame.quit()
    

    9. Leta upp DITT NAMN och skriv in ditt eget namn. Undvik åäö.
    10. Tryck på Ctrl-S och spara som rotera.py.
    11. Kör koden genom att trycka på F5.

 

Gambas basic – Lättare än lättast

Hatar du att misslyckas? Blir du lätt otålig? Kräver du ett snyggt grafiskt gränssnitt? Då är Gambas prefekt för dig. Troligen världens enklaste miljö att skriva kod i och ändå kraftfullt! Tog jag i för mycket nu? Nej, det tror jag faktiskt inte, för det är faktiskt så att Gambas har skrivits i….Gambas!!!

För länge sedan fanns Microsoft Visual Basic 2.0 till Windows, som var lika enkelt. Det växte till det lite krångligare, men kraftfullare Visual Basic 6.0. Sedan försvann tyvärr det mesta av enkelheten när Visual Basic gick upp i Visual Studio.

Gambas har ökat kraftfullheten och bevarat det mesta av enkelheten.

Installera Gambas och skriv ett litet program

  1. Starta ett terminalfönster med Ctrl-Alt-T.
  2. Lägg till Gambas PPA
    sudo add-apt-repository ppa:gambas-team/gambas3
  3. Uppdatera alla källor
    sudo apt-get update
  4. Installera Gambas 3
    sudo apt-get install gambas3
  5. Skapa ett arbetsbibliotek
    mkdir gambas
  6. Starta Gambas 3
    gambas3
  7. Stäng Tips-fönstret
  8. Klicka på ”New project”.
  9. Välj ”Graphical application” och klicka på Next
  10. Välj biblioteket ”gambas” och klicka på Next.
  11. Skriv in ”meaningoflife” under Project name.
  12. Skriv in ”The Meaning of life” under Project title och klicka på OK.
  13. Klicka på fönstret under FMain.form och rulla ner till Text under Properties och skriv in ”Meningen med livet”.
  14. Välj knappen som det står OK på längst ute till höger och dra in den i fönstret under FMain.form och släpp. Den måste hamna någonstans i överkant.
  15. Klicka på Name under Properties och ändra från ”Button1” till ”btnMeaning”.
  16. Rulla ner till Text under Properties och klicka på den tomma rutan och fyll i ”Klicka här för att få veta meningen med livet!”
  17. Högerklicka på btnMeaning-knappen och välj Event – Enter.
  18. Kopiera in följande kod.
    <code="basic">If btnMeaning.Y < 200 Then
        btnMeaning.Y = btnMeaning.Y + 200
    Else  
        btnMeaning.Y = btnMeaning.Y - 200
    Endif
  19. Spara med Ctrl-S.
  20. Provkör med F5.

Gambas är helt händelsestyrt (eventbaserat) så något måste hända för att kod ska köras. Vill man göra någon typ av arkadspel så är ett tips att kika på Special – Timer, som man lyfter in som ett objekt i fönstret. Tiden är i tusendelar. Glöm inte att sätta timern till Enabled.

gambas

gambas-logo

Programmera 3D-grafik i Debian Linux/Ubuntu med Visual Python

Får jag välja mellan C++ och Python så väljer jag Python alla dagar i veckan. Snygg syntax, lätt att komma igång, väldigt objektorienterat, lätt att komma ihåg kommandon, god tillgång på drivrutiner och enkelt att flytta mellan Linux, Windows, Raspberry och t.o.m Mac.

Har skrivit en liten exempelkod som simulerar en 6-cylindrig motor (med en märklig vevaxel). Varje cylinder är ett objekt som är skapat av klassen Cylinder.

1. Starta ett terminalfönster, Ctrl-Alt-T.
2. Skapa ett arbetsbibliotek ”mkdir motor”. Du kan markera och kopiera commandot med Ctrl-C. I terminalfönstret klistrar du in med Shift-Ctrl-V.
3. Gå till arbetsbiblioteket ”cd motor”.
4. Ladda ner Python ”sudo apt-get install python”.
5. Installera Idle ”sudo apt-get install idle”.
6. Installera Vpython ”sudo apt-get install python-visual”
och ”sudo apt-get install libgtkglextmm-x11-1.2-dev”
7. Starta Idle ”idle”.
8. Skapa en ny fil med Ctrl-N, klistra in nedanstående kod. Var noga med indragningarna i vänsterkanten eftersom de har en viktig funktion i Python.

# -*- coding: utf-8 -*-
#Just for fun: SixPistonMotor.py
from visual import *

scene.width=1200
scene.height=600
scene.background=(0.5,0.5,0.5)

class classCylinder:
    iNoOfCylinders = 0
    iRodlength = 100

    def __init__(self, zPos):
        self.cylinderFlywheel = cylinder(pos=vector(0,0,zPos), axis=vector(50,0,0), radius=10, color=color.yellow, opacity=0.5)
        self.cylinderPiston = cylinder(pos=vector(0,100,zPos), axis=vector(0,35,0), radius=20, color=color.red)
        self.cylinderRod = cylinder(pos=vector(50,0,zPos), axis=vector(0,classCylinder.iRodlength,0), radius=5, color=color.green)
        classCylinder.iNoOfCylinders += 1

    def writeCylinder(self, iAngle):
        self.cylinderFlywheel.axis.x = 50*cos(radians(iAngle))
        self.cylinderFlywheel.axis.y = 50*sin(radians(iAngle))
        self.cylinderRod.pos = self.cylinderFlywheel.pos + self.cylinderFlywheel.axis
        self.cylinderRod.axis.x = -self.cylinderFlywheel.axis.x
        self.cylinderRod.axis.y = sqrt(classCylinder.iRodlength*classCylinder.iRodlength - self.cylinderFlywheel.axis.x*self.cylinderFlywheel.axis.x)
        self.cylinderPiston.pos = self.cylinderRod.pos+self.cylinderRod.axis

cylinderConnectingRod = cylinder(pos=vector(0,0,0), axis=vector(0,0,250), radius=5, color=color.green)
listCylinders = [classCylinder(0), classCylinder(50), classCylinder(100), classCylinder(150), classCylinder(200), classCylinder(250)]
 
for iRotations in range(0, 100):
    for iAngle in range(0, 360):
        rate(200) #Increase for higher RPM
        for iCylinder in range(0, 6):
            listCylinders[iCylinder].writeCylinder(iAngle + iCylinder*30)

9. Tryck på Ctrl-S och spara som SixPistonMotor.py.
10. Starta programmet med F5.
11. Använd höger musknapp för att rotera.
12. Använd båda musknapparna för att zooma.

6piston   images_products_multipath_python-logo-3

Ditt första C-program i Debian Linux/Ubuntu

Som ny programmerare i Linux blir du kanske inte direkt uppmuntrad när du hittar GNU build system med autoscan, aclocal, acheader, autoconf, automake och make.
Lugn! Börja att skapa ett minimalt program i ett terminalfönster. Saknas något paket så kommer Linux att tala om hur du laddar ner det.

  1. Starta ett terminalfönster (prova Ctrl-Alt-T).
  2. Skapa ett nytt bibliotek ”mkdir bollklubben”.
  3. Gå till biblioteket ”cd bollklubben
  4. Installera editorn Gedit ”sudo apt-get install gedit
  5. Starta editorn ”gedit heja.c”.
  6. Kopiera in följande C-program, spara och avsluta:
    #include <stdio.h>
    int main()
    {
        printf("Heja HBK!\n");
        return 0;
    }
  7. Kompilera och skapa en körbar fil ”gcc -o hbk heja.c”.
  8. Provkör ditt program ”./hbk

heckert_gnu

GNUs logo är skapad av Aurelio A. Heckert <aurium@gmail.com>