Egyszerű játékok készítése
Figyelemtesztelő
Készítsünk játékot (programot), amelyben bizonyos időközönként megjelenik a vásznon véletlen helyen egy zöld négyzet. A játékosnak erre a négyzetre kell kattintania. Ha sikerül neki, akkor kap egy pontot, ha nem sikerül, akkor veszít egy pontot. A képernyő bal felső sarkában látható az aktuális pontszám.
import tkinter
from random import *
canvas = tkinter.Canvas(width=500, height=500)
canvas.pack()
def timer1():
canvas.delete('all')
global kx, ky
kx = randrange(450)
ky = randint(40, 450)
canvas.create_rectangle(kx, ky, kx+nagysag, ky+nagysag, fill='green')
canvas.create_text(100, 10, text = 'Elért pontok: '+str(pontok))
canvas.after(500, timer1)
def klikk(koordinatak):
global pontok
x = koordinatak.x
y = koordinatak.y
if kx < x < kx+nagysag and ky < y < ky+nagysag:
pontok = pontok + 1
else:
pontok = pontok - 1
pontok = 0
kx = 0
ky = 0
nagysag = 50
timer1()
canvas.bind('<Button-1>', klikk)
Kapd el a labdát!
Készítsünk játékot, amelyben fentről elfelé fog esni egy piros labda. A vászon alján lesz egy kék téglalap, amivel el kell kapni a labdát. A téglalapot az egérrel mozgathatjuk jobbra, ill. balra. A képernyő bal felső részében látható az aktuális pontszám. Ha sikerül elkapni a labdát akkor kapunk 1 pontot. Akár elkaptuk a labdát, akár leesett, a következő labda szintén fentről érkezik.
import tkinter
from random import *
canvas = tkinter.Canvas(width=500, height=500)
canvas.pack()
def labda(x, y):
canvas.create_oval(x-5, y-5, x+5, y+5, fill='red')
def kurzor(x, y):
canvas.create_rectangle(x, y, x+50, y+5, fill='blue')
def pontok_kiirasa(p):
canvas.create_text(20, 10, text = 'Elért pontok: '+str(p))
def timer1():
canvas.delete('all')
global lx, ly, pontok
ly = ly + 5
labda(lx, ly)
kurzor(kx, ky)
pontok_kiirasa(pontok)
if kx < lx < kx+50 and ky -10 < ly < ky:
pontok = pontok + 1
lx = randint(5, 495)
ly = 20
if ly > 500:
lx = randint(5, 495)
ly = 20
canvas.after(10, timer1)
def mozogj(koordinatak):
global pontok, kx
kx = koordinatak.x
canvas.delete('all')
labda(lx, ly)
kurzor(kx, ky)
pontok_kiirasa(pontok)
pontok = 0
lx, ly = randint(5, 495), 20
kx, ky = 150, 250
timer1()
canvas.bind('<Motion>', mozogj)
