Buenos dias/noches hoy tengo una gran duda con los arrays, ya he buscado en todos lados pero no los entiendo perfectamente, segun lo que lei se pueden hacer listas.

Trato de hacer un inventario que solo aparescan los objetos que tengo y la cantidad
y otro que solo sean objetos

y solo llegue a la conclusion de esto

Create Event:
Inventario[0] = Amuleto_A
Inventario[1] = Amuleto_B
Inventario[2] = Amuleto_C

Pocion[0][0] = "pocion azul" //nombre
Pocion[0][1] = pac //cantidad de pociones azules

Pocion[1][0] = "pocion roja" //nombre
Pocion[1][1] = prc //cantidad de pociones rojas

Pocion[2][0] = "pocion verde" //nombre
Pocion[2][1] = prc //cantidad de pociones verdes

Step Event:
if keyboard_check_pressed(vk_left)
{
i -= 1
}

if keyboard_check_pressed(vk_right)
{
i += 1
}

if keyboard_check_pressed(ord("A"))
{
o -= 1
}

if keyboard_check_pressed(ord("D"))
{
o += 1
}

Draw Event:
draw_sprite(spriteX,Inventario,x,y)
draw_sprite(spriteX,Inventario
  • x,y)

#1 Julio 22, 2013, 03:55:36 PM Ultima modificación: Julio 22, 2013, 04:01:08 PM por Mgbu
Vas perfectamente bien, lo que no entiendo es lo que pusiste en el Step y en el Draw:
Step Event:
if keyboard_check_pressed(vk_left)
{
i -= 1
}

if keyboard_check_pressed(vk_right)
{
i += 1
}

if keyboard_check_pressed(ord("A"))
{
o -= 1
}

if keyboard_check_pressed(ord("D"))
{
o += 1
}

Draw Event:
draw_sprite(spriteX,Inventario,x,y)
draw_sprite(spriteX,Inventario

    x,y)


Parece que lo del step es algo así como un sistema incompleto de seleccionar objetos del inventario y que lo del Draw también es algo incompleto para debujar el inventario. Supongo que no pegaste todo el código, porque así como lo pegaste no funionará
Tampoco se cual es exactamente el tipo de ayuda que necesitas

PD: Me citaste en la firma, soy famoso XD. Y ahora que me acuerdo vos fuiste el creador de ese sistema de iniciar sesión o algo así que todavía no entendí
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


#2 Julio 23, 2013, 08:09:33 PM Ultima modificación: Julio 23, 2013, 08:11:51 PM por Fenix oscuro
Cita de: Mgbu en Julio 22, 2013, 03:55:36 PM
Vas perfectamente bien, lo que no entiendo es lo que pusiste en el Step y en el Draw:
Step Event:

if keyboard_check_pressed(vk_left)
{
i -= 1
}

if keyboard_check_pressed(vk_right)
{
i += 1
}

if keyboard_check_pressed(ord("A"))
{
o -= 1
}

if keyboard_check_pressed(ord("D"))
{
o += 1
}

Draw Event:
draw_sprite(spriteX,Inventario,x,y)
draw_sprite(spriteX,Inventario

    x,y)


Parece que lo del step es algo así como un sistema incompleto de seleccionar objetos del inventario y que lo del Draw también es algo incompleto para debujar el inventario. Supongo que no pegaste todo el código, porque así como lo pegaste no funionará
Tampoco se cual es exactamente el tipo de ayuda que necesitas

PD: Me citaste en la firma, soy famoso XD. Y ahora que me acuerdo vos fuiste el creador de ese sistema de iniciar sesión o algo así que todavía no entendí
De hecho voy a hacer un juego para el Jam usando ese sistema

En tema:
no tengo ni idea de lo que hace el codigo, y eso que yo lo escribi  XD pero si esta bien creo que ya entendi  :-[

esto es lo que pienso usar para el draw

Draw_Event
draw_sprite(spriteX,Inventario[i],x,y)
draw_sprite(spriteX,Pocion[o][0],x,y)
draw_text(x,y,"X " + Pocion[o][1])


solo necesito ayuda con la parte de "no mostrar objetos que no tengo"

#3 Julio 23, 2013, 09:48:19 PM Ultima modificación: Julio 23, 2013, 09:53:12 PM por penumbra
Justamente los últimos días he estado haciéndome líos planeando el inventario de mi proyecto. Y justamente también quiero un inventario donde esté el item y la cantidad y otro solamente el item. Mi objetivo es que sea similar al inventario de Castlevania SOTN / aria of sorrow. Hasta ahora sólo he escrito código en papel, pero más o menos voy sacando algo.

Sobre tus arreglos:

- Estás usando " Pocion[2][0] ", si lo que quieres es declarar un arreglo de dos dimensiones, la sintaxis correcta es Pocion[2,0] = algo

-
Cita de: Fenix oscuro en Julio 21, 2013, 11:10:30 AM
y solo llegue a la conclusion de esto

Create Event:
Inventario[0] = Amuleto_A
Inventario[1] = Amuleto_B
Inventario[2] = Amuleto_C

Eso esta bien, pero es más cómodo y fácil de entender esto (yo le llamo etiquetar los índices del arreglo, otros le llaman declarar constantes):

Create EVENT:
amuleto_a = 0
amuleto_b = 1
amuleto_c = 2
espada_1 = 3
escudo_2 = 4

Inventario[amuleto_a] = ID del amuleto A
Inventario[amuleto_b] = ID del amuleto B
Inventario[amuleto_c] = ID del amuleto C
Inventario[espada_1] = ID de la espada tipo 1
Inventario[escudo_2] = ID del escudo tipo 2

Obviamente, puedes hacer lo mismo en un arreglo de dos dimensiones, que creo es lo más conveniente, y asi no tienes que preocuparte por saber qué número de casilla corresponde a qué item, o puedes mover los ítems en el arreglo (amuleto_a = el numero que gustes) y la estructura del arreglo se mantiene

-El código que tienes para subir o bajar por el inventario está bien, pero el detalle es que tal como está no puedes ciclar el inventario (si estás en el último item, tienes que navegar por todo el inventario para llegar al primer item)

Si llega a funcionar, postearé mi sistema de inventarios cuando esté completo, aunque falta todavía para que eso suceda  :-[

De hecho creo que le falta elaboracion y no me fije lo de las comas  XD

Create Event:
Inventario = 0 //0 = nada;  1 = Amuleto A;2 = Amuleto B;Amuleto C
i = 0
o = 0
A1 = 0
A2 = 0
A3 = 0

Pocion[0,0] = "pocion azul" //nombre
Pocion[0,1] = pac //cantidad de pociones azules

Pocion[1,0] = "pocion roja" //nombre
Pocion[1,1] = prc //cantidad de pociones rojas

Pocion[2,0] = "pocion verde" //nombre
Pocion[2,1] = pvc //cantidad de pociones verdes


Step Event
if keyboard_check_pressed(vk_left) {i -= 1}

if keyboard_check_pressed(vk_right) {i += 1}

if keyboard_check_pressed(ord("A")) {o -= 1}

if keyboard_check_pressed(ord("D")) {o += 1}

//Skipper Amuleto
switch (i)
{
case 1:
if not A1 = 1 {i += 1} else {Inventario = 1}

case 2:
if not A2 = 1 {i += 1} else {Inventario = 2}

case 3:
if not A3 = 1 {i += 1} else {Inventario = 3}
}

//Skipper Pocion
switch (o)
{
case 1:
if Pocion[0,1] < 1 {o += 1} else {o = 1}

case 2:
if Pocion[1,1] < 1 {o += 1} else {o = 2}

case 3:
if Pocion[2,1] < 1 {o += 1} else {o = 3}
}

//Ciclo
if i > 3 {i = 0}
else
if i < 0 {i = 3}
else
{exit}

if o > 3 {i = 0}
else
if o < 0 {i = 3}
else
{exit}

Draw Event:
draw_sprite(spriteX,Inventario,x,y)
draw_sprite(spriteX,Pocion[o,0],x,y)
draw_text(x,y,"X " + Pocion[o,1])


Creo que ya lo entendi!  :D