Cargar todo al inicio

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

Cargar todo al inicio

Notapor d0hk0o » Sab Mar 24, 2012 4:58 pm

Buenas,

quisiera que me ayuden en un problema técnico... Mi juego está hecho en pygame. Tengo una clase llamada corregir y en el __init__ cargo imágenes; por eso cada vez que la llamo se demora (los fps bajan a 7 cuando todo mi juego va a 30)...

Cómo puedo hacer para cargar todas las imágenes al inicio del juego y que salga una barra que indique el avance... por ejemplo:
http://3.bp.blogspot.com/-c5OYKn69Rbg/T ... rgando.gif

P.D.: Tengo dudas de cuándo un programa ejecuta ciertas partes. Por ejemplo, si todas mis imágenes se cargan en carga.py (ima = pygame.image.load('ima.png')...), siempre que utilice import carga.py en otro módulo, ¿se cargarán las imágenes? ¿Si es así, no hay una forma de que se carguen una sola vez?

Espero me haya dejado entender u_u

Saludos y gracias...
d0hk0o
 
Mensajes: 13
Registrado: Mar Mar 22, 2011 5:54 pm

Re: Cargar todo al inicio

Notapor hugoruscitti » Sab Mar 24, 2012 11:09 pm

Hola!,

nunca hice algo así, pero creo que se puede hacer lo que dicen
en este mensaje de stackoverflow:

http://stackoverflow.com/questions/8668 ... bar-pygame
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Cargar todo al inicio

Notapor Barajas » Dom Mar 25, 2012 12:55 am

Bueno, respondiendo la primera duda, me parece que cargar "TODO" al inicio, es algo... bueno, torpe en el sentido de que se tarda mas tiempo en el momento de cargara, pero las tienes "a la mano" cuando las necesitas y no pierdes tiempo. Yo honestamente, prefiero cargar cuando lo necesito (aun a sabiendas del costo de procesamiento... ).

Sobre los tiempos de carga, creo que podrías hacer crear una variable que aumente conforme se cargan:

carga = 0
cargar_imagen_1()
cargar_imagen_2()
carga += 1
....
if carga == 100:
termina_y_comienza_el_juego()


En otras palabras, lo mismo que sugería Hugo :).


Sobre la segunda, el programa cargado en partes, python es un lenguaje de scrip, es decir, todo se ejecuta como se "lee".

Solo un consejo sobre eso; Si las imágenes las cargas en otro archivo, asegúrate de que el modulo de pygame este iniciado, o marcara un error, y puedes llamar las imágenes con el nombre con el que las cargaste en el modulo solo si lo importaste de la forma:

pygame.init() #el modulo de pygame esta inicializado.
from mi_modulo_de_carga_imagenes import *


Aun que también podrías hacerlo de la otra forma, considerando el inconveniente...

import mi_modulo_de_carga_imagenes
mi_modulo_de_carga_imagenes.nombre_imagen_uno #este es el inconveniente....


No sé si esto te sirva, pero espero que si :)
Vi veri universum vivus vici
Avatar de Usuario
Barajas
 
Mensajes: 209
Registrado: Mar Nov 16, 2010 12:06 am


Volver a General

¿Quién está conectado?

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

cron