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 0 invitados