deimicno. Evo koda:
import pygame, os
from pygame.locals import*
def loadimage(name, transparent=0):
fullname = os.path.join('data', name)
image = pygame.image.load(fullname)
if transparent:
image.set_colorkey(image.get_at((0,0)))
return image.convert(), image.get_rect()
class Cat(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image, self.rect = loadimage('macka.png',1)
screen = pygame.display.get_surface()
area = screen.get_rect()
self.rect.bottomleft = 0,0
self.acceleration = 0
self.inair = 1 #inair = Cat in air? True or Flase
self.speed = 9
self.direction = 0
def update(self):
if self.inair:
self.acceleration +=1
self.rect.move_ip(self.direction*self.speed, self.acceleration)
collision = self.rect.collidelistall(florsrect)
if collision != []:
#Cheking collision with platforms
for fi in collision: #fi is flor index
if florsrect[fi].top < self.rect.bottom:
self.rect.bottom = florsrect[fi].top
self.inair = 0
self.accelearation = 0
else:
self.inair = 1
def jump(self):
if not self.inair:
self.acceleration =-15
self.inair = 1
class Flor(pygame.sprite.Sprite):
def __init__(self, pos):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((200,20))
self.image.fill((0,0,0))
self.rect = self.image.get_rect()
self.rect.topleft = pos
def main():
global florsrect
pygame.init()
screen = pygame.display.set_mode((640,480))
#Objects
clock = pygame.time.Clock()
c = Cat()
flors =[
Flor((0,400)),
Flor((100,330)),
Flor((0,240))
]
florsrect = []
for x in flors:
florsrect.append(x.rect)
#Background
background = pygame.Surface(screen.get_size()).convert()
background.fill((100,125,0))
screen.blit(background, (0,0))
pygame.display.flip()
#Sprites
allsprites= [c]
for x in flors:
allsprites.append(x)
#MAIN LOOP
while 1:
clock.tick(60)
#commands
for event in pygame.event.get():
if (event.type == KEYDOWN and event.key == K_ESCAPE):
pygame.quit()
return
keystate = pygame.key.get_pressed()
c.direction = keystate[K_RIGHT] - keystate[K_LEFT]
if keystate[K_UP]:c.jump()
#draw everything
screen.blit(background, (0,0))
for sprite in allsprites:
sprite.update()
screen.blit(sprite.image,sprite.rect)
pygame.display.flip()
main()
P.S. napravite folder 'data' i u njega stavite neku slicicu za igraca. Dobro bi doslo da ako neko zna neki bolji (optimizovaniji) nacin za ovo sto sam do sada uradio iznese ovde na forum.