Auxilio!: el centro de un Surface?

Consulte acerca de programas, técnicas, algoritmos etc.

Auxilio!: el centro de un Surface?

Notapor shackra » Mié Mar 03, 2010 11:21 pm

hola :D
estoy desarrollando unos ejemplos de como usar el modulo draw, ahora estoy intentando rotar una surface de un rect de 128x32, la surface se "agranda" y se rellena del mismo color que de la surface y queria saber si al hacer la rotacion pygame lo hace desde su centro exacto.

no tengo el codigo fuente del ejemplo ahora mismo, pronto lo posteare.
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica

Notapor Juanxo » Mié Mar 03, 2010 11:39 pm

Buenas shackra:

Siento decirte que aquí siempre hay problemas con las rotaciones en pygame.
La rotación es desde el punto (0,0) de la imagen, es decir, esquina superior izquierda. Además, el area de la imagen se va incrementando segun la rotación (prueba a hacer un rect.draw con el area de la imagen y verás lo que te digo).
Por tanto, tendrás que manejar tu mismo las rotaciones:
- Busca la manera de colocar correctamente la imagen en base al centro ( que estaria en (x + w/2, y + h/2) )
- Tienes que rotar siempre respecto a la imagen original, porque si no la imagen se distorsiona y queda fatal.

Había por el foro un tema de rafahack en el que discutiamos todos estos temas
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor shackra » Mié Mar 03, 2010 11:45 pm

La rotación es desde el punto (0,0) de la imagen, es decir, esquina superior izquierda.
como sospeche desde el principio! ;(


Había por el foro un tema de rafahack en el que discutiamos todos estos temas
donde esta ese tema?
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica

Notapor Juanxo » Mié Mar 03, 2010 11:59 pm

Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor shackra » Lun Mar 08, 2010 7:47 pm

hola otra vez :D

aqui esta mi codigo fuente, aunque segui la fuente no entendi muy bien como resolver la deformacion de la imagenes con el modulo trasform.

Código: Seleccionar todo
###############################################################################
# girar_rect_keyboard.py: girar un cuadrado que esta en la pantalla con las
#                         teclas de direccion del teclado.
###############################################################################

import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Modulo draw & modulo Transform: pruebas de rotacion")

cuadro1 = pygame.Surface((128, 32))
cuadro1.fill((0, 255, 0))

tiempo = pygame.time.Clock()
quit = False

pygame.mouse.set_visible(False)

while not quit:
    tiempo.tick_busy_loop(60)

    for evento in pygame.event.get():
        if evento.type == QUIT:
            quit = True
        elif evento.type == pygame.KEYDOWN:
            if evento.key in [pygame.K_q, pygame.K_ESCAPE]:
                quit = True
            elif evento.key == pygame.K_RIGHT:
                cuadro1 = pygame.transform.rotate(cuadro1, -1)
            elif evento.key == pygame.K_LEFT:
                cuadro1 = pygame.transform.rotate(cuadro1, 1)

    screen.fill((0,0,0))
    screen.blit(cuadro1, (400, 300))
    pygame.display.flip()
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron