2008-10-26 16 views

Respuesta

5

pygame abstrae bastante la interfaz de SDL, por lo tanto, no creo que haya una gran ventaja transferida.

6

Puede aprender algunas técnicas, formas de implementar la lógica del juego, etc. en entornos basados ​​en SDL, pero después de pasar a C++/SDL tendrá que usar funciones SDL directamente, las funciones auxiliares/objetos de pyGame serán completamente útiles.

5

. Si Python es mucho más natural para usted que C++, podría ser una buena idea aprender pygame primero. Tendrá que realizar un proceso de traducción al migrar a SDL y C, pero debería ser un mapeo más o menos uno a uno.

1

Puede intentar pyglet Si está apuntando a OpenGL. Es una biblioteca mucho mejor pensada que lo que es el pygame.

Pero luego, si desea pasar a C++ y SDL en el futuro, hágalo ahora. De esa forma, realmente aprendes SDL. Pero antes de hacer algo tan irresponsable, sería una buena idea consultar primero en pyglet. Solo por diseñar sus aplicaciones correctamente en C++ también, sin importar qué tan malas sean sus bibliotecas.

3

Por supuesto. Puedes escribir un juego sdl o herramientas en menos tiempo.

Puede comenzar con el código que deben mostrarse los datos/chimp.bmp en una pantalla de 468x60:

import pygame, sys,os 
from pygame.locals import * 

pygame.init() 

window = pygame.display.set_mode((468, 60)) 
pygame.display.set_caption('Monkey Fever') 
screen = pygame.display.get_surface() 

monkey_head_file_name = os.path.join("data","chimp.bmp") 

monkey_surface = pygame.image.load(monkey_head_file_name) 

screen.blit(monkey_surface, (0,0)) 
pygame.display.flip() 

def input(events): 
    for event in events: 
     if event.type == QUIT: 
     sys.exit(0) 
     else: 
     print event 

while True: 
    input(pygame.event.get()) 

Cuando esté familiarizado con los objetos SDL se puede mover fácilmente a C++ (si quieres más: p Pygame es rápido y puedes hacer un juego complejo con él).

0

No consideraría Python (o cualquier lenguaje administrado o interpretado, para el caso) una buena forma de aprender cualquier tarea compleja, ya que aísla demasiado al programador del funcionamiento del sistema. Como dijo un amigo mío, "Python te ama y quiere que seas feliz". Y eso está muy bien si ya conoce los fundamentos, pero si quiere saber , lo último que desea es un lenguaje que haga todo el trabajo por usted.

Aprenderá lo que muy rápidamente, pero no el por qué, y luego, cuando algo vaya mal, (y eventualmente, en cualquier proyecto no trivial), se quedará sin idea de lo que está pasando o por qué.

1

pitón no impedirá que el aprendizaje fuera diseño y eso es más o menos la cosa más importante aprender de la OMI, que estoy haciendo un smash bros clon con pygame y he aprendido mucho en el diseño. Y sin embargo, aprenderás a no escribir demasiado código subóptimo también, Python tiene ingeniosos y hermosos hacks también.

15

Python + PyGame es una gran idea para aprender SDL.

Escribí un somewhat popular game that way. Python/PyGame parece mucho más avanzado que los enlaces SDL a cualquier otro lenguaje, y una gran ventaja en comparación con C++ es que no tiene que compilar código, y con algunos simples ataques incluso puede modificar un programa en ejecución, y ver los comentarios en vivo. Hace una gran diferencia, como usar un programa de gráficos vectoriales GUI versus escribir SVG en un editor de texto. Desafortunadamente no se obtiene esto de la caja, porque necesita adaptar un poco su programa para verlo.

En cuanto a otras ventajas de PyGame, jrpg se ejecutó con cambios muy pequeños en Linux, Windows y OSX. Tuve que hacer algunos ajustes al cambio de modo de pantalla completa, y el doble buffer ya que había algunas diferencias entre los sistemas operativos, pero nunca fue necesaria ninguna recompilación. Si tiene algún problema, puede obtener un buen seguimiento de pila y depurar sus problemas en tiempo real, eso no es posible con C++ una vez que se produce una corrupción de memoria o una segfault.

Realmente no sé qué tan fácil o qué tan difícil sería mezclar C++ y Python para tus juegos SDL. Creo que no puede ser demasiado difícil, ya que PyGame es un contenedor bastante sencillo pero muy bien hecho para SDL, y se supone que la mezcla de Python/C++ es bastante fácil.

+2

El enlace no parece funcionar (404). – SwiftsNamesake

+0

Bastante seguro que el nuevo enlace correcto es este: https://taw.github.io/jrpg/ – ZN13

+0

La URL se arregló ahora. – taw

1

Para su propósito PySDL2 es mejor que pygame. Importa SDL2 API casi directamente.

Cuestiones relacionadas