capas de imagenes (Luadev)(Solucionado)

Como puedo conseguir esto:

Quiero ver la mirilla (Con transpariencia) y todo alrededor negro.

Y dentro de la mirilla que se vea la primera imagen...

 

Algo asi:

 

He probado con una imagen de fondo y otra imagen negra entera con la mirilla en el centro y todo va bien si no fuera porque la velocidad del movimiento de la mirilla era lentisima (Supongo que era porque ocupaba demasiada ram =)

 

He probado esto:

 

imagen1=image.load("fondo1.png")
imagen2=image.load("fondo2.png")
 
x=0
y=0
 
while true do
 
controls.read()
 
imagen1:blit(0,0)
 
if controls.l() then imagen2:blit(x,y) end
if controls.up() then y=y-2 end
etc...
 
screen.flip()
end

 

PERO ESTO NO ES POSIBLE

Espero vuestra ayuda

 

Como siempre

Gracias y saludos


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de barney77

Sencillisimo, la mira la

Sencillisimo, la mira la haces con fondo transparente y ya, automaticamente se verá la transparencía, eso sí, lo último que bliteaaras será la mira.

Imagen de NEKERAFA

Jajajajaja

capas de imagenes (Luadev)(Solucionado). A leer se ha dicho

Imagen de jorge_97

By jorge_97

Bueno:

 

"Mas vale tarde que nunca"

 

xDDD

Imagen de jorge_97

By jorge_97

Nuevo comentario xDDD

Seguimos hablando por aqui...

 

como decia

Ahora me explicare con imagenes... xDDD

 

 

Imagen de -chus-

vaya

yo quiero hacer un juego así como quieres tu el ejemplo, espero y algún día lo haga XD

Imagen de markef

.

-- Activa los mhz a 333
os.cpu(333)
 
-- Carga imagenes
imagen1=image.load("fondo1.png")
imagen2=image.load("fondo2.png")
 
-- Define valores, por poner algo te pongo la mitad de 480 y 272 xd
 
x = 240
y = 135
 
-- Inicia bucle
while (true) do
 
-- Lectura de controles
controls.read()
 
-- Blitea lo que supuestamente es el fondo
imagen1:blit(0,0)
 
-- Controles en todas direcciones incrementando negativamente o posivitamente los valores
if controls.right() then x = x + 5 end
if controls.left() then x = x - 5 end
if controls.up() then y = y - 5 end
if controls.down() then y = y + 5 end
 
-- ¿Porque no utilizar también el analógico? :P
controls.analogtodigital(127)
 
-- Blitea imagen con estas coordenadas
imagen2:blit(x,y)
 
-- Muestra en pantalla
screen.flip()
 
-- Finaliza
end

Espero que te sirva de referéncia o funciones o lo que sea, lo he escrito sin probar tal cual me ha venido en mente.
Salu2! 


Dicen que soy programador... Eso dicen.

Imagen de jorge_97

By jorge_97

ok eso va bien xddd!!! Creo que lo demas ya puedo solucionarlo yo lo solo...

Ahora os cuento...

Imagen de markef

Me

Me he fijado que quieres condicionar la función si se pulsa boton L, supongo que sabes que debe ser tipo...

if controls.l() then imagen2:blit(x,y) end

 


Dicen que soy programador... Eso dicen.

Imagen de jorge_97

By jorge_97

No se como explicar cual es el resultado...

 

Asi que lo he subido a mediafire...

SI alguien quiere descargarlo y ayudarme...


descarga

 

Muchas gracias


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de markef

Yo

Yo ahora tengo que irme, pero si a la noche nadie ha solucionado tu pregunta me pondré a ello para ayudarte ;) 

Imagen de Dioni0396

pero si ya lo tiene

que error es?

Imagen de jorge_97

By jorge_97

Emmm...

cuando ya "lo tengo" pongo SOLUCIONADO en el titulo...

xddd

 

Ahi he dejado la url es que no se explicar el problema... Es mejor qu elo veais...

 

Gracias a ambos!!


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

Vale

y?

He leido el code, pero no veo ningun fallo.

Simplemente veo que hay algo que no me encaja, que quieres mover una imagen sobre otra?

Imagen de jorge_97

by jorge_97

No leas el code bueno o hazlo pero PRUEBALO y mueve la imagen...

No sale lo mismo que la imagen del ordenador...

 

Saludos

 

PRUEBALO

PRUEBALO

PRUEBALO


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

Normal que salga asi

la imagen negra mide 1200 x 680

Como quieres que salga!?

Imagen de Dioni0396

Voy,

un momento.

Imagen de jorge_97

by jorge_97

Ok ya lo seeeeeeeeee pero como puedo conseguir esto:

 


Editado: El límite del ancho de las imágenes es de 500 pixeles, sobrepasar este límite puede descolocar la web e incumple las Normas de la Comunidad, antes de volver a postear por favor revíselas.| Rober Galarga


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

facil

Gimp nos ayudara:

Aqui te dejo algo basico que he hecho, si manejas transparencias alfas podras crearlo:

Lua de por si mismo no te va a hacer el francotirador, eso debes crearlo tu con un editor de imagenes, el ejemplo que te he dado de imagen funciona perfectamente.

Imagen de NEKERAFA

Mmm...

@jorge_97:

...en cambio si mueves esa imagen con esas dimensiones ves la imagen de atrás y no es lo que yo quiero...

¿Comor? ¿Que quieres que se mueva?


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de markef

.

Creo que se ha expresado claro :P Aver... Si la imagen que tienes es por ejemplo de 480x272 y la mueves, si la mueves a la derecha queda espacio por la izquierda y se ve lo que haya por debajo (por ejemplo), en caso de no haber nada por debajo seria negro. :P 


Dicen que soy programador... Eso dicen.

Imagen de NEKERAFA

Ok...

Ah!!! Claro, ya entiendo todo el problema. Es todo culpa de los limites de la imagen...

Pues en todo caso hay que aplicarle unos límites para que no se vea la imagen del fondo, no. Joer, menudo problema jajaja

para eyo están las funciones math.min y math.max, que ponen el valor minimo y máximo que puede tomar un objeto, con lo queaplicado a esto:

-- Activa los mhz a 333
os.cpu(333)
 
-- Carga imagenes
imagen1=image.load("fondo1.png")
imagen2=image.load("mirilla.png")
 
-- Define valores, por poner algo te pongo la mitad de 480 y 272 XD
 
x = 240
y = 135
 
-- Inicia bucle
while (true) do
	-- Lectura de controles
	controls.read() 
	-- Blitea lo que supuestamente es el fondo
	imagen1:blit(0,0)
	-- Controles en todas direcciones incrementando negativamente o posivitamente los valores
	if controls.right() then x = x + 5 end
	if controls.left() then x = x - 5 end
	if controls.up() then y = y - 5 end
	if controls.down() then y = y + 5 end
	if controls.start() then broke() end
	-- ¿Porque no utilizar también el analógico? :P
	controls.analogtodigital(127)
	-- Aplicamos unos limites a x y a y para que no se muestre el fondo
	x = math.min(math.max(-380, x), 0)
	y = math.min(math.max(-172, y), 0)
	-- Blitea imagen con estas coordenadas
	imagen2:blit(x,y)
	-- Muestra en pantalla
	screen.flip()
-- Finaliza
end

http://img197.imageshack.us/img197/8493/mirillav.png

 

Saludos ^-^


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de jorge_97

by jorge_97

Gracias!!!! Eres de los pocos que me entienten perfectamente xDDDD

 

Haber la roja es la imagen de fondo:

 

 

 

 

La verde es la de "arriba":

 

 

Si pulsas izq quedaria asi, cosa que yo no QUIERO;

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

pues eso haberlo dicho antes.

pues eso haberlo dicho antes.

En vez de tanto, "descargate el Hb y es que no se explicarme"!

Si hubieras puesto ese ejemplo a la primera ya lo hubieras solucionado!.

Imagen de jorge_97

By jorge_97

EN parte la culpa es mia xDDD (En gran parte) pero digo yo que vuestra comprension tmb cuenta...

 

Saludos

Imagen de NEKERAFA

XDDD

Haber, ¿Si no te explicas como quieres que te entendamos? Es como cuando estoy en la mesa y mi hermano me señala una cosa, y cuando se la doy me dice: "No, yo queria lo otro"


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de jorge_97

By jorge_97

Es que era dificil de explicar xDDD... a partir de ahora siempre que pueda lo intentare hacer con imagenes veo que es mas facil

xDDD


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de NEKERAFA

Ok

¿y al final como lo solucionaste?

Imagen de markef

.

No es por molestar en el hilo pero... a este paso no va acaber ni una A jajajajajaja Mejor crear nuevo comentario arriba :P

Imagen de markef

Yo

Yo te entiendo, haz la imagen más grande y prueba (aunque creo que tiene un límite, no estoy seguro).

Imagen de jorge_97

by jorge_97

Bien alguien me entiende pero no es posible cogiendo una imagen grande...

Si no te pasas de número de

Si no te pasas de número de imágenes la ram no tiene nada qu ever, solo súmal más a las coordenedas, y deberias hacer una imagen con los bordes negros y lo del centro transparente.

Imagen de jorge_97

By jorge_97

Pero es que tu piensa que la imagen debe tener unas coordenadas de mas de 1000 x 800 ya que o si no al moverla se veria la primera imagen...

 

Y entonces esa sola imagen ocupa demasiada memoria ocasiando que la mirilla se mueva muy lentamente...

 

Saludos


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de NEKERAFA

Jajajaja

Ahora lo ves sumando 1 o restando 1 a las cordenadas. Mejor haz lo que te dice xerpi, y pon el código, ya que sin el no sabemos lo que puedes hacer mal...


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de jorge_97

By jorge_97

No creo que el problema este en el codigo... pero ahora lo subo!

Imagen de Cere_Ender

me uno a la duda!

me uno a la duda!

 

para la velocidad prueba con poner al principio del lua:  os.cpu (333)

Imagen de jorge_97

By jorge_97

No creo que eso solucine el problema ya que no es exactamente la velocidad lo que causa el problema sino la memoria RAM

Imagen de markef

Prueba

Prueba como dicen arriba os.cpu(333)
De todas formas me extraña que la ram baje tanto (mejor dicho, que la ram baje xd). El problema debe ser de la velocidad, augmenta los valores.

Salu2! 


Dicen que soy programador... Eso dicen.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.