import pyglet
from random import randint
sirka = 1280
vyska = 800
rychlost_x = 0
rychlost_y = 0
window = pyglet.window.Window(sirka, vyska)
obrazek = pyglet.image.load("ball.png")
sprite = pyglet.sprite.Sprite(obrazek)
sprite.x = -100
sprite.y = -100
def tik(t):
sprite.x = sprite.x + t * rychlost_x
sprite.y = sprite.y + t * rychlost_y
if sprite.x + obrazek.width > sirka or sprite.x < 0:
rychlost_x = -rychlost_x
if sprite.y + obrazek.height > vyska or sprite.y < 0:
rychlost_y = -rychlost_y
def klik(x, y, tlacitko, mod):
sprite.x = x
sprite.y = y
rychlost_x = randint(-500, 500)
rychlost_y = randint(-500, 500)
def vykresli():
window.clear()
sprite.draw()
pyglet.clock.schedule_interval(tik, 1/30)
window.push_handlers(on_draw=vykresli, on_mouse_press=klik)
pyglet.app.run()
Tento kód nefunguje, protože se uvnitř funkcí snažíme měnit obsah proměnných a zároveň přistupovat k jejich globálnímu stavu.
global
def tik(t):
global rychlost_x, rychlost_y
sprite.x = sprite.x + t * rychlost_x
sprite.y = sprite.y + t * rychlost_y
if sprite.x + obrazek.width > sirka or sprite.x < 0:
rychlost_x = -rychlost_x
if sprite.y + obrazek.height > vyska or sprite.y < 0:
rychlost_y = -rychlost_y
def klik(x, y, tlacitko, mod):
global rychlost_x, rychlost_y
sprite.x = x
sprite.y = y
rychlost_x = randint(-500, 500)
rychlost_y = randint(-500, 500)
rychlost = {"x": 0, "y": 0}
def tik(t):
sprite.x = sprite.x + t * rychlost["x"]
sprite.y = sprite.y + t * rychlost["y"]
if sprite.x + obrazek.width > sirka or sprite.x < 0:
rychlost["x"] = -rychlost["x"]
if sprite.y + obrazek.height > vyska or sprite.y < 0:
rychlost["y"] = -rychlost["y"]
def klik(x, y, tlacitko, mod):
sprite.x = x
sprite.y = y
rychlost["x"] = randint(-500, 500)
rychlost["y"] = randint(-500, 500)
import pyglet
from random import randint
sirka = 1280
vyska = 800
window = pyglet.window.Window(sirka, vyska)
obrazek = pyglet.image.load("ball.png")
class Kulicka:
def __init__(self, x, y):
self.sprite = pyglet.sprite.Sprite(obrazek)
self.sprite.x = x
self.sprite.y = y
self.rychlost_x = randint(-500, 500)
self.rychlost_y = randint(-500, 500)
def vykresli(self):
self.sprite.draw()
def tik(self, t):
self.sprite.x = self.sprite.x + t * self.rychlost_x
self.sprite.y = self.sprite.y + t * self.rychlost_y
if self.sprite.x + obrazek.width > sirka or self.sprite.x < 0:
self.rychlost_x = -self.rychlost_x
if self.sprite.y + obrazek.height > vyska or self.sprite.y < 0:
self.rychlost_y = -self.rychlost_y
kulicky = []
def tik(t):
for kulicka in kulicky:
kulicka.tik(t)
def klik(x, y, tlacitko, mod):
kulicky.append(Kulicka(x, y))
def vykresli():
window.clear()
for kulicka in kulicky:
kulicka.vykresli()
pyglet.clock.schedule_interval(tik, 1/30)
window.push_handlers(on_draw=vykresli, on_mouse_press=klik)
pyglet.app.run()