Võtame näidiseks ühe lihtsa PyGame näite, milles saab liigutada palli:
#!/usr/bin/python
# -*- coding: utf-8 -*-
bif = "bg.jpg"
mif = "ball.png"
import pygame
from pygame import *
pygame.init()
ekraan=pygame.display.set_mode((800, 600), 0, 32)
taust=pygame.image.load(bif).convert()
hiir1=pygame.image.load(mif).convert_alpha()
hiir2=pygame.image.load(mif).convert_alpha()
x, y = 0, 0
liigutax, liigutay = 0, 0
hiir = hiir1
while True :
for syndmus in pygame.event.get() :
if syndmus.type == QUIT:
pygame.quit()
sys.exit()
if syndmus.type==KEYDOWN:
if syndmus.key==K_LEFT:
liigutax=-1
elif syndmus.key==K_RIGHT:
liigutax=+1
elif syndmus.key==K_UP:
liigutay=-1
elif syndmus.key==K_DOWN:
liigutay=+1
elif syndmus.key==K_SPACE:
hiir=hiir2
ekraan.blit(hiir, (x, y))
elif syndmus.key==K_TAB:
hiir=hiir1
ekraan.blit(hiir, (x, y))
if syndmus.type==KEYUP:
if syndmus.key==K_LEFT:
liigutax=0
elif syndmus.key==K_RIGHT:
liigutax=0
elif syndmus.key==K_UP:
liigutay=0
elif syndmus.key==K_DOWN:
liigutay=0
x+=liigutax
y+=liigutay
ekraan.blit(taust, (0, 0))
ekraan.blit(hiir, (x, y))
pygame.display.update()
Vajalikud pildid on siin.
Ja selle keerukam jätk:
Lõpeks meie oma kahe “asjaga” programm: punane pall, mida saab klaviatuurilt juhtida ja rakett, mis jälitab palli. Jälitamisalgoritm on praegu “aeglustuv”, sihtmärgi juurde jõudes on “rakett” väga aeglane.
#!/usr/bin/python
# -*- coding: utf-8 -*-
bif = "bg.jpg"
mif = "ball.png"
gif = "ball2.png"
rif = "rakett.png"
import pygame, sys
from pygame import *
pygame.init()
ekraan=pygame.display.set_mode((800, 600), 0, 32)
taust=pygame.image.load(bif).convert()
hiir1=pygame.image.load(mif).convert_alpha()
hiir2=pygame.image.load(gif).convert_alpha()
rakett=pygame.image.load(rif).convert_alpha()
x, y = 0, 0
rx, ry = 700, 550
liigutax, liigutay = 0, 0
pall = hiir1
kell = pygame.time.Clock()
kiirus = 1
while True :
for syndmus in pygame.event.get() :
if syndmus.type == QUIT:
pygame.quit()
sys.exit()
if syndmus.type==KEYDOWN:
if syndmus.key==K_LEFT:
liigutax=-1
elif syndmus.key==K_RIGHT:
liigutax=+1
elif syndmus.key==K_UP:
liigutay=-1
elif syndmus.key==K_DOWN:
liigutay=+1
elif syndmus.key==K_SPACE:
hiir=hiir2
ekraan.blit(pall, (x, y))
elif syndmus.key==K_TAB:
hiir=hiir1
ekraan.blit(pall, (x, y))
if syndmus.type==KEYUP:
if syndmus.key==K_LEFT:
liigutax=0
elif syndmus.key==K_RIGHT:
liigutax=0
elif syndmus.key==K_UP:
liigutay=0
elif syndmus.key==K_DOWN:
liigutay=0
x+=liigutax
y+=liigutay
milli = kell.tick()
sekundid = milli / 1000.
dm =sekundid * kiirus
if rx<>x :
rx-=((rx-x)/kiirus*sekundid)
if ry<>y :
ry-=((ry-y)/kiirus*sekundid)
#rx+=dm
if x < 0 : x = 0
elif x > 799 : x=799
if y < 0 : y=0
elif y > 599 : y=599
ekraan.blit(taust, (0, 0))
ekraan.blit(pall, (x, y))
ekraan.blit(rakett, (rx, ry))
pygame.display.update()
Rakett võib olla suvaline väike osalt läbipaistev PNG (ka muu pilt, aga PNG läbipaistvus võimaldab ilusamat tulemust). Näiteks kiir korras tehtud rakett: