/ / Ventana de zoom / desplazamiento de Pygame - python, scroll, zoom, transform, pygame

Ventana de zoom / desplazamiento de Pygame - python, scroll, zoom, transform, pygame

Actualmente estoy trabajando en un proyecto con pygame y necesito poder ver parte de una superficie, moverme, acercarme y alejarme, etc.

¿Alguien puede recomendar una manera de lograr esto?eficientemente, lo tengo funcionando en un método complejo en este momento, pero es demasiado lento y reduce el juego a aproximadamente 1 fps cuando se aleja para ver toda el área. (Mi versión de solo desplazamiento y sin zoom funciona bien sin retrasos)

Aunque los documentos pygame.transform.scroll parecen prometedores, pero no estoy seguro de cómo lo implementaría correctamente con pygame.transform.scale para acercar y alejar

Cualquier ayuda bienvenida

actualizar: Jugué un poco y lo puse a trabajar.Escalado de objetos y sus posiciones antes de mezclarlos. Ahora tengo el problema de que la escala no parece natural debido a la baja resolución de los eventos de la rueda de desplazamiento de pygame, por lo que ahora estoy tratando de implementar algún tipo de suavizado.

Respuestas

1 para la respuesta № 1

No estoy completamente seguro de lo que, exactamente, estás haciendo. Sin embargo, puedo decir que no suena como si estuvieras abordando el problema de una manera que se ajuste a Pygame.

Me suena como si estuvieras confiando en el software.Algoritmos de escalado, que es lo que utiliza Pygame, para escalar una imagen grande (todo el mundo del juego) a un tamaño mucho más pequeño. Cualquier cosa así, para grandes superficies, y en cada cuadro, va a tensar mucho su CPU.

Si el zoom es realmente importante, recomendaría un cambio a una biblioteca que tenga una escala acelerada por hardware, es decir, pyglet. Después de todo, ¿con qué frecuencia vieron los juegos alejarse en los días previos a las GPU? Prácticamente nunca, esa es la frecuencia.


0 para la respuesta № 2

Puedes usar pygame con OpenGL, ya que ya estás familiarizado con pygame. De lo contrario, pyglet es una biblioteca similar de opengl.


-1 para la respuesta № 3

Para un juego que nunca he terminado lo he usado.trigonometría para obtener las nuevas posiciones de dibujo con una cámara girada y girada libremente (algo complicada). Realmente no tardó mucho tiempo en calcularlo, pero creo que es más eficiente usar otras bibliotecas. Pero si desea algunos ejemplos, simplemente pregunte.