Porqué no puedo insertar una imagen con la funcion screen:blit() mayor k la resolución de la psp. Lo quiero hacer para mover un fondo de pantalla mientras el jugador del juego se va moviendo. Como hacerlo?
... MEMORIA. Cuando cargas una imagen lo que haces es copiar su contenido en memoria ram (esto es valido genericamente en practicamente cualquier sistema informático) bien en la del subsistema gráfico (las tarjetas gráficas de los pcs) bien en su memoria convencional. A la hora de programar la memoria y el tiempo de proceso deben considerarse bienes escasos y costosos... demasiado para "desperdiciarlos" por una simple cuestión de comodidad a la hora de programar.
El parrafo anterior es la respuesta académica tradicional al problema, en la actualidad en los pcs cada dÃa se aplica menos esa regla, ya que los costes fuertes estan en el "programador/hora" más que en los recursos de máquina. Pero para sistemas "limitados" como una PSP considerala completamente válida y una regla a la hora de medir la calidad de tu código.
Salu2, espero haberte servido de ayuda.
"El infierno a mi izquierda, el paraiso a mi derecha y el angel de la muerte tras de mi."
"El paraíso a mi derecha, el infierno a mi izquierda y el ángel de la muerte tras de mi."
Creo que podrias recrtar la imagen en varios trozos y impremirlo screen:blit con la x de la imagen anterior mas el ancho y asi pulsas derecha por ejemplo y le restas la x al 1º y como la segunda imagen va pegada al 1º ira pasando y asi con las demas imagenes. Aun no lo he probado pero te podria valer, por cierto de donde has sacado una imagen tan larga?
Creo que tu proposito es mover, por ejemplo, un fondo que te ocupe totda la ptantalla... por ejemplo para crear la sensación de movimento, con un paisaje.
Ya lo escribi y el codigo es similar a como has comentado... No hace falta usar muchas imágenes como comentas... Con una sola que su final concorde con su principio ya vale. El codigo serÃa el siguiente:
imgfond = Image.load("imgfond.png") x1=0 x2=480 while true do pad= Controls.read() screen:blit(x1,0,imgfond) x1=x1-2 screen:blit(x2,0,imgfond) x2=x2-2 if x2==0 then x1 = 480 end if x1==0 then x2 = 480 end
No. Este código solo mueve el fondo automáticamente. No se me ha olvidado. Es solo una prueba. FaltarÃa el jugador y que el fondo se moviera solo cuando el jugador se acercara a uno de los dos márgenes.. me explico?
La respuesta es...
... MEMORIA. Cuando cargas una imagen lo que haces es copiar su contenido en memoria ram (esto es valido genericamente en practicamente cualquier sistema informático) bien en la del subsistema gráfico (las tarjetas gráficas de los pcs) bien en su memoria convencional. A la hora de programar la memoria y el tiempo de proceso deben considerarse bienes escasos y costosos... demasiado para "desperdiciarlos" por una simple cuestión de comodidad a la hora de programar.
El parrafo anterior es la respuesta académica tradicional al problema, en la actualidad en los pcs cada dÃa se aplica menos esa regla, ya que los costes fuertes estan en el "programador/hora" más que en los recursos de máquina. Pero para sistemas "limitados" como una PSP considerala completamente válida y una regla a la hora de medir la calidad de tu código.
Salu2, espero haberte servido de ayuda.
"El infierno a mi izquierda, el paraiso a mi derecha y el angel de la muerte tras de mi."
"El paraíso a mi derecha, el infierno a mi izquierda y el ángel de la muerte tras de mi."
Creo que podrias recrtar la
Creo que podrias recrtar la imagen en varios trozos y impremirlo screen:blit con la x de la imagen anterior mas el ancho y asi pulsas derecha por ejemplo y le restas la x al 1º y como la segunda imagen va pegada al 1º ira pasando y asi con las demas imagenes. Aun no lo he probado pero te podria valer, por cierto de donde has sacado una imagen tan larga?
haber si te he entendidio...
Creo que tu proposito es mover, por ejemplo, un fondo que te ocupe totda la ptantalla... por ejemplo para crear la sensación de movimento, con un paisaje.
Ya lo escribi y el codigo es similar a como has comentado... No hace falta usar muchas imágenes como comentas... Con una sola que su final concorde con su principio ya vale. El codigo serÃa el siguiente:
imgfond = Image.load("imgfond.png")
x1=0
x2=480
while true do
pad= Controls.read()
screen:blit(x1,0,imgfond)
x1=x1-2
screen:blit(x2,0,imgfond)
x2=x2-2
if x2==0 then
x1 = 480
end
if x1==0 then
x2 = 480
end
if pad:select() then
break
end
screen.flip()
end
si algo asi, aunque se te ha
si algo asi, aunque se te ha olvidado poner el boton pa echarlo a andar
NO
No. Este código solo mueve el fondo automáticamente. No se me ha olvidado. Es solo una prueba. FaltarÃa el jugador y que el fondo se moviera solo cuando el jugador se acercara a uno de los dos márgenes.. me explico?
ok, te entiendo
ok, te entiendo
es muy grande? creo que el
es muy grande?
creo que el limite para alojar una imagen era de 512x512
un saludo
Spirax