Egyszerű játékok készítése

2019.11.11

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)

© 2023 Minden jog fenntartva.
Az oldalt a Webnode működteti
Készítsd el weboldaladat ingyen! Ez a weboldal a Webnode segítségével készült. Készítsd el a sajátodat ingyenesen még ma! Kezdd el