hugoruscitti escribió:shackra escribió:¿como puedo dibujar solo una seccion de un sprite sheet en la pantalla del juego? por ejemplo, usando estas imágenes de Doraemon (el gato cósmico, glol). ya me fije en la referencia de las clases de PySFML pero no encuentro nada significativo, así que espero que alguien me indique como hacer lo que necesito :p.
Hace un tiempo escribí algo en el wiki de SFML para hacer
eso:
http://www.sfml-dev.org/wiki/en/sources/spritesheetsUsé SetSubRect como te comenta Juanxo.
Avisanos si te sirve...
mira tu, sabia que hugoruscitti salvaria mi dia, pero me dije: "no, no, no, no te quedes ahi esperando a que alguien venga y te de todo masticado solo para que tu tragues, ¡Ponte las pilas (glol, pilas el engine xD) y trata de hacer algo tu mismo!!" y ahí me la pase unas horas, mirando codigo sobre lo que me dijo Juanxo, probando en la shell interactiva hasta que.... ¡bingo!:

de todas maneras gracias chicos, no sé donde estaría si no fuera por ustedes ^_^, con cada duda resuelta siento que avanzo cada vez mas hacia mi sueño, ser un programador (y diseñador, ya que las ideas me rondan la cabeza) de vídeojuegos!!

aquí el codigo que logre, espero que lo disfrutéis!:
- Código: Seleccionar todo
from PySFML import sf
import random, os
# Como que me da mucha pereza y usare los objetos de color de sf.Color,
# Vamos a usar variables para esos objetos de color.
Black = sf.Color.Black
# creamos la ventana del juego
ventana = sf.RenderWindow(sf.VideoMode(800,600), "Prueba 4 con PySFML por Shackra")
# obtenemos el input de los eventos de la ventana creada, mira sf.Input para mas informacion
# parece ser que no es necesario declarar este objeto dentro del loop para actualizar su estado...
entrada = ventana.GetInput()
#intentemos usar la clase sf.Sprite.... cargamos una imagen
#cargamos primero una imagen con la respectiva clase...
imagensheet = sf.Image()
imagensheet.LoadFromFile("doraemon.png")
# ahora usamos esa imagen cargada y creamos un Sprite
doraemon = sf.Sprite(imagensheet)
# sf.IntRect(left, top, right, bottom) <--- por si te lo preguntabas...
doraemon.SetSubRect(sf.IntRect(0, 0, 43, 40))
# iniciamos el loop del juego
salir = False
while not salir:
eventos = sf.Event()
while ventana.GetEvent(eventos):
if eventos.Type == sf.Event.Closed:
salir = True
if eventos.Type == sf.Event.KeyPressed:
if eventos.Key.Code == sf.Key.Escape:
salir = True
#limpiamos la ventana y dibujamos los objetos en la pantalla
ventana.Clear(Black)
# para dibujar el sprite solo pasamos el objeto que habiamos creado anteriormente, asi de facil :p
ventana.Draw(doraemon)
ventana.Display()
ventana.Close()
bajate tambien esta imagen y ponla junto al script de python! :O

saludos gente, en el proximo ejemplo, Doraemon caminara!! xD