3.4. OOP
import pygame
pygame.init()
okno = pygame.display.set_mode((500,480))
pygame.display.set_caption("Prvá hra")
kracaDoprava = [pygame.image.load('doprava1.png'), pygame.image.load('doprava2.png'), pygame.image.load('doprava3.png'), pygame.image.load('doprava4.png'), pygame.image.load('doprava5.png'), pygame.image.load('doprava6.png'), pygame.image.load('doprava7.png'), pygame.image.load('doprava8.png'), pygame.image.load('doprava9.png')]
kracaDolava = [pygame.image.load('dolava1.png'), pygame.image.load('dolava2.png'), pygame.image.load('dolava3.png'), pygame.image.load('dolava4.png'), pygame.image.load('dolava5.png'), pygame.image.load('dolava6.png'), pygame.image.load('dolava7.png'), pygame.image.load('dolava8.png'), pygame.image.load('dolava9.png')]
pozadieObr = pygame.image.load('pozadie.jpg')
postavaStoji = pygame.image.load('postavaStoji.png')
clock = pygame.time.Clock()
class hrac(object):
def __init__(self,x,y,sirka,vyska):
self.x = x
self.y = y
self.sirka = sirka
self.vyska = vyska
self.posun = 5
self.jeVoVyskoku = False
self.otocenaVlavo = False
self.otocenaVpravo = False
self.pocetKrokov = 0
self.skokPocet = 10
def vykresliPostavu(self, okno):
if self.pocetKrokov + 1 >= 27:
self.pocetKrokov = 0
if self.otocenaVlavo:
okno.blit(kracaDolava[self.pocetKrokov//3], (self.x,self.y))
self.pocetKrokov += 1
elif self.otocenaVpravo:
okno.blit(kracaDoprava[self.pocetKrokov//3], (self.x,self.y))
self.pocetKrokov +=1
else:
okno.blit(postavaStoji, (self.x,self.y))
def prekresliHerneOkno():
okno.blit(pozadieObr, (0,0))
hrac1.vykresliPostavu(okno)
pygame.display.update()
hrac1 = hrac(200, 410, 64,64)
spustena = True
while spustena:
clock.tick(27)
for event in pygame.event.get():
if event.type == pygame.QUIT:
spustena = False
klavesy = pygame.key.get_pressed()
if klavesy[pygame.K_LEFT] and hrac1.x > hrac1.posun:
hrac1.x -= hrac1.posun
hrac1.otocenaVlavo = True
hrac1.otocenaVpravo = False
elif klavesy[pygame.K_RIGHT] and hrac1.x < 500 - hrac1.posun - hrac1.sirka:
hrac1.x += hrac1.posun
hrac1.otocenaVlavo = False
hrac1.otocenaVpravo = True
else:
hrac1.otocenaVlavo = False
hrac1.otocenaVpravo = False
hrac1.pocetKrokov = 0
if not(hrac1.jeVoVyskoku):
if klavesy[pygame.K_SPACE]:
hrac1.jeVoVyskoku = True
hrac1.otocenaVlavo = False
hrac1.otocenaVpravo = False
hrac1.pocetKrokov = 0
else:
if hrac1.skokPocet >= -10:
hrac1.y -= (hrac1.skokPocet * abs(hrac1.skokPocet)) * 0.5
hrac1.skokPocet -= 1
else:
hrac1.skokPocet = 10
hrac1.jeVoVyskoku = False
prekresliHerneOkno()
pygame.quit()