


 Codigo con etiquetas
 fondo=pygame.Surface(scr.get_size())
fondo=fondo.convert()
fnt=pygame.font.Font(None,32)
texto=fnt.render('Hero with a skateboard',1,(10,20,30))
texto_pos=[10,10]
fondo.blit(texto,texto_pos)
scr.blit(fondo,(0,0))

def __init__(self):
        #se inicia la instancia de pygame de sprites
        pygame.sprite.Sprite.__init__(self)
        self.image, self.rect=load_image('data/hero.png')
        self.rect.midbottom=pos=[40,540]
        self.walking=0
        self.pos=0
        self.anim_frame=0
def update(self):
        teclas = pygame.key.get_pressed()
        dx = 0
        dy = 0
        if teclas[K_LEFT]:
            self._walk()
            dx = -5
        elif teclas[K_RIGHT]:
           self._walk()
           dx = 5
        if teclas[K_UP]:
            self._walk()
            dy = -5
        elif teclas[K_DOWN]:
            self._walk()
            dy = 5
        if teclas[K_SPACE]:
            pygame.time.delay(80)
            self._ataca()
        if teclas[K_k]:
            self.kill()
            
        self.rect.move_ip(dx, dy)        
        self.pos=self.rect.topleft

Realmente había subestimado al pygame poniendolo por debajo del GameMaker (aunque hablando de sprites y colisiones GameMaker le da 1000 de ventaja)

 import os,sys
import pygame
from pygame.locals import *
WIDTH  = 640
HEIGHT = 480
def load_image(nombre):
    imagen=pygame.image.load(nombre)
    img_rc=imagen.get_rect()
    return imagen, img_rc
class GuitarHero(pygame.sprite.Sprite):
    def __init__(self, pos):
        pygame.sprite.Sprite.__init__(self)
        self.image, self.rect = load_image('data/scot0001.png')
        self.rect.center = pos 
        self.anim_frame=0
        
    def update(self):
        self.animame()
    def animame(self):
        strip_path = 'data/scot000%d.png'
        self.anim_frame+=1
        if self.anim_frame>6:
            self.anim_frame=1
        
        self.image, self.rect=load_image(strip_path % self.anim_frame)
        pygame.time.delay(90)
        scr.blit(image_fondo,(0,0))
        pos = pygame.mouse.get_pos()
        scr.blit(self.image,self.rect.center)
pygame.init()
scr=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('Multiple Sprites')
pygame.display.flip()
fondo=pygame.Surface(scr.get_size())
fondo=fondo.convert()
image_fondo=pygame.image.load('data/fondo.png')
fondo.blit(image_fondo,(0,0))
scr.blit(fondo,(0,0))
pygame.display.flip()
sprites = pygame.sprite.RenderClear()
while True:
    
    for e in pygame.event.get():
        if e.type==pygame.KEYDOWN:
            pygame.quit()
        if e.type==pygame.MOUSEBUTTONDOWN:
            pos = pygame.mouse.get_pos()
            new_hero = GuitarHero(pos)
            sprites.add(new_hero)
            pygame.time.delay(900)
    sprites.update()
    scr.blit(fondo,(0,0))
    sprites.draw(scr)
    pygame.display.flip()        
            
class GuitarHero(pygame.sprite.Sprite):
    def __init__(self, pos):
        pygame.sprite.Sprite.__init__(self)
        self.image, self.rect = load_image('mono_grita.png')
        self.rect.center = pos
        self.anim_frame=0
       
    def update(self):
        self.animame()
    def animame(self):
        strip_path = 'data/scot000%d.png'
        self.anim_frame+=1
        if self.anim_frame>6:
            self.anim_frame=1
       
        self.image, self.rect=load_image(strip_path % self.anim_frame)
        #scr.blit(image_fondo,(0,0))
        #scr.blit(self.image,self.rect.center)
while True:
   
    for e in pygame.event.get():
        if e.type==pygame.KEYDOWN:
            pygame.quit()
        if e.type==pygame.MOUSEBUTTONDOWN:
            pos = e.pos
            new_hero = GuitarHero(pos)
            sprites.add(new_hero)
    sprites.update()
    sprites.draw(scr)
    pygame.display.flip()


Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado