Dudas sobre programacion en python (videojuego)

Hola a todos,soy nuevo en todo lo referente a programación,y desde hace poco estoy intentando meterme en el mundillo mediante python.
Se que no es facil,pero hace cuestón de un año un amigo me habló de un programa llamado game maker con el cual se podian crear juegos facilmente,yo me dediqué a los graficos y él al programa.
La verdad esque nos metimos en un juego de lucha 2d tipo yie ar kung fu y nos enpezó a quedar bastante bien.
Conseguimos mover el personaje ,crear colisiones y meter sonidos....
Yo soy usuario novato de ubuntu y ese programa no está en linux,a parte que la gente me ha recomendado aprender a programar
en un lenguaje de programación para hacer portable el juego y además aprender a programar.
En linux todo el mundo me ha recomendado Python y la verdad esque parece mas facil que otros lenguajes.El tema esque he provado la libreria pygame con algunos ejemplos y creo que me funcionaria el juego mejor con Python que con game maker.
Mi intención seria la que adjuntaré en un archivo usando pygame,por si alguien podria decirme como tendria que hacer ese codigo.
Tambien que me recomendarais si es bueno iniciarse con pygame o tendria que empezar con python a secas....
Un saludo y os dejo el archivo de como iniciar el juego,
GRACIAS

Adjuntos

El código no te lo puedo ni esbozar puesto que hace años que no toco python ni pygame, pero todos los juegos se hacen con la misma base:

Crear objetos
Iniciarlizar objetos
Repetir
     actualizar objetos
     dibujar objetos


Tienes que tener en cuenta la velocidad a la que se ejecuta el bucle, ya que no es lo mismo que vaya a 30 que a 50 fps, y tú quieres que en ambos casos los sprites se muevan a la misma velocidad. Para ello tienes que medir el tiempo que pasa entre cada actualización y modificar las variables (posiciones, etc) en base a ese tiempo

<Crear e inicializar objetos>
before = tiempo_actual()
Repetir
     now = tiempo_actual()
     actualizar(now - before)
     dibujar()
     before = now


Supón que quieres mover un objeto horizontalmente a 20 pixels por segundo. Supón que el tiempo se mide en milisegundos. Tienes la clase objeto con su función update(difftime), que no hace más que modificar la posición horizontal en base al tiempo transcurrido desde la última actualización:

pos_x = pos_x + velocidad * difftime / 1000

Es decir, la nueva posición es la posición actual más la velocidad (en pixels por segundo) por la fracción de segundo. Si difftime es 1/10 de segundo, la posición horizontal varía en 1/10 de velocidad, si se actualiza una vez por segundo (difftime = 1000 milisegundos), varía en velocidad * 1000/1000, es decir, <velocidad> pixels por segundo.

Y así con todo.

En fin, no sé si te he aclarado algo, pero a estas horas no doy más de mí
1 respuesta