Ovako izgleda kod za našu igru, gdje igrač kontrolira metak, i uništava kutije.
[tab] je jedan pritisak na tiku “Tab”!
import pygame
from pygame.locals import *
import sys
class Kutija(pygame.sprite.Sprite):
[tab]def __init__(self,x,y):
[tab][tab]#započinjemo sprite
[tab][tab]pygame.sprite.Sprite.__init__(self)
[tab][tab]#stvaramo varijablu self.image za prikaz slike
[tab][tab]self.image = pygame.image.load("kutija.PNG").convert()
[tab][tab]#stvaramo kvadrat koji nam treba za koliziju i poziciju
[tab][tab]self.rect = self.image.get_rect()
[tab][tab]#ovdje mijenjamo poziciju od kvadrata- mislim da sada znate kako micati sprite ;)
[tab][tab]self.rect.x = x
[tab][tab]self.rect.y = y
[tab][tab]self.zivot = 100
[tab]def update(self):
[tab][tab]#ovdje obnavljamo sprite
[tab][tab]if self.zivot<=0:
[tab][tab][tab]#ovdje je mičemo iz grupe- neće se prikazati, ali je se i dalje može koristiti
[tab][tab][tab]self.kill()
class Metak(pygame.sprite.Sprite):
[tab]def __init__(self,x,y,kutije):
[tab][tab]pygame.sprite.Sprite.__init__(self)
[tab][tab]self.image = pygame.image.load("metak.PNG").convert()
[tab][tab]self.rect = self.image.get_rect()
[tab][tab]self.rect.x = x
[tab][tab]self.rect.y = y
[tab][tab]self.kutije = kutije
[tab]def update(self):
[tab][tab]kolizija= pygame.sprite.spritecollide(self,self.kutije,False)
[tab][tab]if kolizija:
[tab][tab][tab]for i in kolizija:
[tab][tab][tab][tab]i.zivot-=5
[tab][tab][tab]self.rect.x-=5
[tab][tab][tab]self.rect.y-=5
[tab][tab]else:
[tab][tab][tab]pass
[tab]def micanje(self,x,y):
[tab][tab]self.rect.x+=x
[tab][tab]self.rect.y+=y
fps = pygame.time.Clock()
pygame.init()
ekran = pygame.display.set_mode((800,600))
pygame.display.set_caption("CroProgrammer Rocks!")
pygame.key.set_repeat(500,30)
kutije = pygame.sprite.Group()
kutije.add(Kutija(10,20))
kutije.add(Kutija(300,20))
kutije.add(Kutija(20,100))
metci = pygame.sprite.Group()
metak = Metak(700,300,kutije)
metci.add(metak)
while True:
[tab]ekran.fill((0,0,255))
[tab]for event in pygame.event.get():
[tab][tab]if event.type==QUIT:
[tab][tab][tab]sys.exit(0)
[tab][tab]elif event.type==KEYDOWN:
[tab][tab][tab]if event.key==K_w:
[tab][tab][tab][tab]metak.micanje(0,-2)
[tab][tab][tab]elif event.key==K_s:
[tab][tab][tab][tab]metak.micanje(0,2)
[tab][tab][tab]elif event.key==K_a:
[tab][tab][tab][tab]metak.micanje(2,0)
[tab][tab][tab]elif event.key==K_d:
[tab][tab][tab][tab]metak.micanje(-2,0)
[tab]metci.draw(screen)
[tab]metci.update()
[tab]kutije.draw(screen)
[tab]kutije.update()
[tab][tab]fps.tick(30)
pygame.display.update()