¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Necesito Script
por Elian84 Hoy a las 04:44

» Holaaa a tod@s!!!
por chronoMxx Hoy a las 03:41

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 01:06

» El poder oculto (Segunda entrega)
por alex1633 Ayer a las 23:18

» Tutorial Interactivo [Uso de interruptores]
por alex1633 Ayer a las 19:39

» Hola mucho gusto
por Hk Diamond Ayer a las 13:49

» SoraDeathss se presenta!
por chronoMxx Ayer a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Ayer a las 06:45

» las cosas como son...
por Bleuw Ayer a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas 2016-12-02, 20:52

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79767 mensajes en 11247 argumentos.
Navega con Google Chrome
[DESCARGA]

[Solucionado] ¿Pasar números a un array?

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [Solucionado] ¿Pasar números a un array?

Mensaje por PROmaster el 2013-06-23, 14:51

Hola compañeros, la duda que tengo es la siguiente:

Quiero poner los valores numéricos de Fuerza, Destreza, etc. en imágenes, para ello tengo creadas diez imágenes con los números del 0 al 9. Cada imagen de cada número se llama como el propio número (ej: la imagen del 1 se llama "1.png" y así con el resto).

Lo que tenía pensado hacer era pasar el valor numérico a un array donde se separaran los números y luego crear las imágenes de los números con un "for" que recorriera el array. (ej: Fuerza vale 207, por lo que el array sería [2,0,7]. El "for" leería desde el primer valor del array hasta el último y crearía las imágenes de los valores como muestro aquí... ("i" es el valor del número actual del array).

Código:
r = 0#Esto es para el valor de "x" al ordenarlas

for i in 0...array #No sé cómo iría esta parte tras los "...", es la otra duda que tengo
   bitmap = RPG::Cache.picture(i + ".png")
   self.contents.blt(r + 40, 60, bitmap, Rect.new(0, 0, 20, 20))
   r = r + 5
end


La duda que tengo es que no sé cómo se pasa (si es que se puede, vamos) un valor numérico al formato array.


Gracias a quien conteste ^^
Saludos.


Última edición por PROmaster el 2013-06-23, 18:17, editado 1 vez

PROmaster
Principiante
Principiante

0/3

Créditos 324

Gracias : 0

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por silvanash el 2013-06-23, 15:06

De momento se me ocurre usar un cálculo complejo basado en un engine para descomponer el número y guardarlo en un array.

Código:
@data = []
value = $game_party.actors[x].base_str
a = value /100
a.truncate
@data.push(a)
b = value - a * 100
b.truncate
@data.push(b)
c = value - (a + b  * 10)
@data.push(c)
for i in @data.size
  case i
  when 0
    algo
  when 1
    algo
  when 2
    algo
  end
end
   

Ésa sería la idea básica, aunque estoy bastante seguro de que hay un montón de errores dentro.

Otra cosa. ¿No sería más fácil dibujar los valores en lugar de usar imágenes? No sé, algo como hacer una window nueva y poner un self.contents.draw_text(x, y, witdh, height, $game_party.characters[x].base_str, align).

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por Wecoc el 2013-06-23, 15:09

Primero de todo recordarte que tienes que pasar ese i a string si quieres usarlo así, por lo tanto sería
Código:
bitmap = RPG::Cache.picture(i.to_s + ".png")
Luego, lo que quieres hacer normalmente se hace con divisiones, no con array. Te pondré un ejemplo
Código:
number = 156
pnumber = number # 156
a = (pnumber / 100).truncate # 1
pnumber -= a * 100 # 156 - 100 = 56
b = (pnumber / 10).truncate # 5
pnumber -= b * 10 # 56 - 50 = 6
c = pnumber.truncate # 6
Dado éste ejemplo, consigues tres valores, (a, b y c) que corresponden a cada uno de los dígitos del valor number. Luego llamas las tres imágenes y ya está, no necesitas array.

Perdón, silva se me adelantó. Silva, no necesitas la array para nada teniendo los valores. Tú lo que haces es conseguir los valores, ponerlos en una array y luego sacarlos de la array. Eso es totalmente innecesario y mucho más lento. Y respondiendo a tu última pregunta, puede que las imágenes que tiene para los números no se puedan imitar con draw_text.

Adaptando mi código con el tuyo, queda así:
Código:
str = $game_party.actors[x].base_str
a = (str/100).truncate
str -= a * 100
b = (str/10).truncate
str -= b * 10
c = str.truncate
abitmap = RPG::Cache.picture(a.to_s + ".png")
bbitmap = RPG::Cache.picture(b.to_s + ".png")
cbitmap = RPG::Cache.picture(c.to_s + ".png")
self.contents.blt(40, 60, abitmap, Rect.new(0, 0, 20, 20))
self.contents.blt(50, 60, bbitmap, Rect.new(0, 0, 20, 20))
self.contents.blt(60, 60, cbitmap, Rect.new(0, 0, 20, 20))


Última edición por Wecoc el 2013-06-23, 15:21, editado 1 vez

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por PROmaster el 2013-06-23, 15:19

Muchas gracias a ambos, voy a probarlo ^^

EDIT: Ha quedado perfecto, muchas gracias de nuevo::)::

PROmaster
Principiante
Principiante

0/3

Créditos 324

Gracias : 0

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por orochii el 2013-06-23, 16:33

¿Qué tal si usas slice? En lugar de hacer una simulación del engine de descomposición (? no me acuerdo la palabra "correcta" 8'D).
Código:
#Digamos que tenemos un número cualquiera...
numeric = 457
#Hacemos un backup como string...
num_str = numeric.to_s
#Luego podemos iterar por cada caracter...
num_str.size.times{|i|
  name = num_str.slice(i,1) #retorna un "substring" desde i, de longitud 1 en caracteres
  bitmap = RPG::Cache.picture(name + ".png")
  self.contents.blt((i*5) + 40, 60, bitmap, Rect.new(0, 0, 20, 20))
}
#Verás quité el valor "r" y lo sustituí por el i para aprovechar

Y supongo que se puede pulir xD, pero bueh, es como para poner el ejemplo con slice, y trabajar directamente con strings.

Salut,
OZ

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por PROmaster el 2013-06-23, 18:02

orochii escribió:¿Qué tal si usas slice? En lugar de hacer una simulación del engine de descomposición (? no me acuerdo la palabra "correcta" 8'D).
Código:
#Digamos que tenemos un número cualquiera...
numeric = 457
#Hacemos un backup como string...
num_str = numeric.to_s
#Luego podemos iterar por cada caracter...
num_str.size.times{|i|
  name = num_str.slice(i,1) #retorna un "substring" desde i, de longitud 1 en caracteres
  bitmap = RPG::Cache.picture(name + ".png")
  self.contents.blt((i*5) + 40, 60, bitmap, Rect.new(0, 0, 20, 20))
}
#Verás quité el valor "r" y lo sustituí por el i para aprovechar

Y supongo que se puede pulir xD, pero bueh, es como para poner el ejemplo con slice, y trabajar directamente con strings.

Salut,
OZ
Yo sabía que tenía que haber una opción como esa, cuando empecé a estudiar programación en C# vi algo muy parecido y me acordé, pero no sabía si en RGSS existía también.

De todas maneras, ya me funciona con el otro método, me apunto también el tuyo por si en un futuro lo necesito.

Saludos ^^

PROmaster
Principiante
Principiante

0/3

Créditos 324

Gracias : 0

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por youkai el 2013-06-24, 03:36

Y bueno, para terminar la faena vengo yo a proponer otro metodo para hacer las cosas XD (Se que ya es un poco tarde, pero no me importa (??))

La forma que propongo es una parecida a la de orochii lo que usando el split:
Código:
# Se le da valor a la variable que se vaya a usar y creamos r
num = 123
r = 0
# Aqui empate como 3 pasos...youkai programa asi, con caracter
# ahorrativo xD (Converti el numero a string > lo converti en un
# array cuyos elementos estan conformados por cada caracter del
# string > genere el bucle que evalua en i cada valor del array)
num.to_s.split("").each{|i|
# Como i en estos momentos no es mas que el numero en string
# simplemente le agrego .png para el bitmap
bitmap = RPG::Cache.picture(i + ".png")
# Y bueno, usando la formula que propones dibujamos el numero en
# la window :P
self.contents.blt(r + 40, 60, bitmap, Rect.new(0, 0, 20, 20))
r += 5} # Cerramos el bucle
Bueh, esa es la forma en la cual yo haria las cosas(aunque si quieres te paso la formula para que tengas los numeros en una misma imagen >:) ) Usa la que mejor entiendas de todas XD
Saludos,
¥oukai
PD: Ufff...llevaba tiempo perdido xD

youkai
Soñador
Soñador

0/3

Créditos 280

Gracias : 10

http://sharingannf.wordpress.com/

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por PROmaster el 2013-06-24, 13:32

youkai escribió:Y bueno, para terminar la faena vengo yo a proponer otro metodo para hacer las cosas XD (Se que ya es un poco tarde, pero no me importa (??))

La forma que propongo es una parecida a la de orochii lo que usando el split:
Código:
# Se le da valor a la variable que se vaya a usar y creamos r
num = 123
r = 0
# Aqui empate como 3 pasos...youkai programa asi, con caracter
# ahorrativo xD (Converti el numero a string > lo converti en un
# array cuyos elementos estan conformados por cada caracter del
# string > genere el bucle que evalua en i cada valor del array)
num.to_s.split("").each{|i|
# Como i en estos momentos no es mas que el numero en string
# simplemente le agrego .png para el bitmap
bitmap = RPG::Cache.picture(i + ".png")
# Y bueno, usando la formula que propones dibujamos el numero en
# la window :P
self.contents.blt(r + 40, 60, bitmap, Rect.new(0, 0, 20, 20))
r += 5} # Cerramos el bucle
Bueh, esa es la forma en la cual yo haria las cosas(aunque si quieres te paso la formula para que tengas los numeros en una misma imagen >:) ) Usa la que mejor entiendas de todas XD
Saludos,
¥oukai
PD: Ufff...llevaba tiempo perdido xD
Esa es exactamente la forma en la que yo quería hacerlo, sólo que no sabía como convertir los números al array.

Gracias.

PROmaster
Principiante
Principiante

0/3

Créditos 324

Gracias : 0

Volver arriba Ir abajo

RPG Maker XP Re: [Solucionado] ¿Pasar números a un array?

Mensaje por Contenido patrocinado Hoy a las 06:10


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

Permisos de este foro:
No puedes responder a temas en este foro.