Anuncios Google

Sigo siendo muy novato

Bueno pues que hay muchas cosas que no termino de captar y esta es una de ellas.

Quiero crear un montón de imágenes en LUADEV para.. (bueno, si funciona pondré aquí el video).

Las voy a crear asi:

Nombre1 = image.create.. lo que sea

Pero dentro de un for de tal forma que 

for  i = 1,200 do
 
 Nombre "i" = image.create ....
 
end

 

para crear muchas imágenes de una tacada (Nombre1, Nombre2...)

Bueno ese código no funciona, cómo sería correcto?

 

Gracias.

 

 


Pobre PSP


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 Chimecho

Global

Global es una tabla, muy guapa y de car... espera, eso era de la otra escena jaja

A ver, la tabla global en lua: _G

Y ya que es una tabla, podemos hacer tooodas las maravillas que con cualquier tabla de Lua, me explico:

_G["a"] = 5
print(a) -- esto, muestra 5

Entonces, tu for sería algo como:

for i=1,100 do
   _G["Nombre"..i] = image.create .....
end

Y listo!

PD: Alguna vez lo mencioné en un comentario, a ver si lo encuentro.

Edito: Pues sí, aquí está.

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de Mills

Bueno he conseguido hacerlo

Bueno he conseguido hacerlo pero ahora no me sirve para mucho, porque no puedo blitear todos los pixeles de nuevo, sin pasar por un for, lo cual ralentiza muchísimo el proceso.

Usar el codigo de generar mapas de xerpi, tampoco sirve, ya que sigue usando un for.

La única manera que encuentro, es poner un blit por cada pixel ( que no ralentiza nada), pero lo dicho... no voy a poner miles de líneas...

Tiene que haber forma de hacer muchas cosas por cada ciclo sin poner tanta línea.. 


Pobre PSP

Imagen de Chimecho

Es que

No podrás con o sin for, el for lo único que hace es repetir las líneas, así que poner 1000 blits, o poner un for de 1 a 1000 con un blit dentro, es lo mismo.

Lo que digo es, que no puedes mostrar todas las imágenes al mismo tiempo, sólo una después de otra.



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de Mills

Si.. eso suponía yo, pero a

Si.. eso suponía yo, pero a veces no sé por que, tarda más el for... puede que yo esté metiendo la pata, bueno así me entretengo,

gracias!

 


Pobre PSP

A mi también...

Me rayan muchísimo los for, quizás sea porque en su momento no los aprendí o los terminé de comprender bien... =S

En variables sueltas no es

En variables sueltas no es posible, pero usando tablas si:

imgs = {}  --Una tabla vacía
for i=1,200 do
  imgs[i] = image.create(...)
end
 
--Para llamar a las imágenes... pues indexas la tabla con enteros, así:
imgs[i]:blit(0,0) --blitea la primera imagen
 
--Si quieres que cada imagen creada tenga un nombre (imagen 1, imagen 2....), haces:
for i=1,200 do
  imgs["imagen"..i] = image.create(...)
end
 
--Y para llamarlas sería:
imgs.imagen5:blit(0,0) --blitea la 5ta imagen
--O bien...
imgs["imagen5"]:blit(0,0)

Cualquier duda ya sabes ;)

Imagen de Mills

Gracias!

Gracias!

EDITADO: Estoy haciendo esto para capturar todos los pixeles de una imagen,
una vez capturados, (en forma de imagenes de 1x1) los puedo modificar
sumando o restando colores a cada uno por separado, y así crear una
especie de "shader" que cambia el color según la luz.

Pero
necesito blitearlos todos a la vez como si fuese un solo comando
image.blit, y con texturas como mucho de 128x128 (pobre PSP si no...)
pero claro, un for.. no vale, y si lo hago secuencial, en cada frame me
va bliteando uno por uno, y tampoco puedo poner 1000 lineas de código
para que las lea todas a la vez.. como lo hago?


Pobre PSP

Por qué no vale un for? PD.

Por qué no vale un for?

PD. Edita siempre que sea posible tus comentarios, por favor ;)

Imagen de Mills

"For" no vale

(Perdon por lo del post)

Un for detiene todo lo demás hasta que uno por uno y ciclo por ciclo, renueva todos pixeles (miles en una imagen). y el juego no se ve jeje.

Así que necesito hacer un blit a miles de pixeles a la vez desde las tablas creadas.

He llegado a poner unas decenas de líneas con blits de pixeles, (por si surgían ralentizaciones).  No hay ralentización ninguna porque la psp lee todas a la vez y es así como se imprimen las imagenes en cualquier pantalla, pero necesitaria miles de lineas...

 

Saludos


Pobre PSP

Por qué no haces una prueba

Por qué no haces una prueba real y ves si de verdad se ralentiza mucho? Lo digo porque si pones 40 blits seguidos, se hacen uno por uno (como en un for) y no todos a la vez.

También se me ocurre que podrías dosificarlo, es decir, ir bliteando de poco a poco esos pixeles, digamos así:

for i=1,40 do
--bliteo 40 pixeles
end
 
--hago algo aquí
 
for i=41,80 do
--bliteo otros 40 pixeles
end
 
--hago algo aquí
 
for i=81,120 do
--bliteo otros 40 pixeles más
end
 
--hago algo aquí

Sólo que si vas a usar los pixeles que modifiques como fondo tendrás que modificar el resto de elementos, para que se vayan bliteando también en partes sobre el fondo ya bliteado.

Imagen de Mills

Bueno, dividirlo en "fors"

Bueno, dividirlo en "fors" hace que se vea a saltos, ya lo probé.

Necesitan blitearse todos en el mismo frame, así actuan como una sola imagen/textura y se puede modificar el brillo de cada pixel dependiendo de su color inicial o su posicion para crear el efecto textura 3d que quiero.

Acabo de encontrar un tutorial sobre blitear mapas para juegos a partir de texturas pequeñas, creo que eso me puede valer.


Pobre PSP

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.