buenos dias chicos!! iva a escribiros ayer, pegandoos mis codigos etc etc etc... pero no quise ser tan egoista i aceros leer una masa de letras,
por eso hoy me tome un tiempo e hice mi inventario aparte exportando el proyecto, asi si alguien quiere usarlo adelante ^^
os comento un poco mi inventario y en que falla...
mi inventario aparece invisible, (como una pantalla desplegable) le das a SPACE y aparece, cuenta con 4 apartados (aunque podria tener mas)
INVENTARIO,STADISTICAS,OPCIONES,CREDITOS
en cada uno hay un submenu en el inventario cree la casilla (slot) para que los objetos fueran hay, pulsando"I" accedemos al submenu y nos movemos por
los "slot" usando "O"(izquierda) "P"(derecha) al movernos sabremos en que slot stamos porque cree un sprite de seleccion...
pero al yegar a la tercera linea es cuando comienza el error.. que el sprite se multiplica y aparecen dos uno en la primera linea y otro en la tercera
al seguir moviendonos y volver a la primera el error desaparece y en la tercera vuelve aparecer...
anteriormente consegui que los objetos se agregaran a los "slot" colisionando con ellos (pero no que desaparecieran al colisionar, y se agregaban
de uno en uno no se sumaban asta un maximo de 20)
ahora no recuerdo lo que hice para conseguir aquello, y como tonto no lo guarde en el block de notas (fallo que no vuelvo a cometer)
os adjunto el archivo exportado de mi proyecto, espero que a algunos les sea de utilidad y a quien pueda ayudarme se lo agradeceria mucho,
gracias!!
Lo que yo hago es que cada objeto tiene un "número de inventario", es decir, un número único que lo identifica y distingue de los demás objetos, por ejemplo, tal poción tiene el número 15, cierta espada el número 80, un escudo de bronce el 100, etc etc.
Tengo un ds_map con las existencias de cada item, pero igual puedes tener un arreglo, por ejemplo, para los objetos que mencioné antes
existencias[15] = 3 // 3 pociones
existencias[80] = 1 // 1 espada
existencias[100] = 2 // 2 escudos
En [CREATE] del objeto poción:
numero = 15
evento colisión con objetos items (en el jugador)
item = other.id //obtener el id de la instancia
existencias[item.numero] += 1 // sumar +1 del objeto que se recogió
with (item) {instance_destriy()} // eliminar el item del juego, una vez que se agregó a las existencias
vale chicos... solucione lo de mi inventario, aciendole una especie de arreglo...
os comento:
ahora me da un error, tengo.. "menuactivo=0"... con menuactivo=0 estamos en inventario, menuactivo=1 estamos en estadisticas, y con menu activo=2 estamos en opciones.
vale pues en menu activo tengo:
MENUACTIVO0
///mochila......................................................................me va perfecto simplemente tengo que averiguar como seleccionar los item
y como hacer para que no vayan a esas coordenadas sino que simplemente reyenen los espacios del inventario.
if mostrar=1{
if menuactivo=0{
draw_sprite(spr_mochila,image_index,320,220)
draw_set_font(fnt_inventario)
draw_text(160,90,global.oro)
//dibujamos la segunda dimension con valor 1 de cada array, osea, el sprite. Revisa Gamestart
dibujar_item(obj_pocionmana,spr_pocionmana,190,150);
dibujar_item(obj_pocionvida,spr_pocionvida,261,150);
dibujar_item(obj_hoja,spr_hoja,105,160);
dibujar_item(obj_manzana,spr_manzana,355,150);
dibujar_item(obj_pocionmaxvida,spr_pocionmaxvida,410,150);
}}
MENUACTIVO1
///estadisticas......... en este no me aparece el sprite osea la imagen de la pantalla de estadisticas.
if mostar=1{
if menuactivo=1{
draw_sprite(spr_est,image_index,320,220)
}
}
MENUACTIVO2
///opciones...............................tambien me va perfecto, luego le creare los botones de quitar audio salir etc.. etc...
if mostrar=1{
if menuactivo=2
{
draw_sprite(spr_opciones,image_index,320,220)
//aqui pondremos las opciones de sonido etc...
}
}
BARRA DE LOS MENUS
///barra............................ va perfecta, no os extrañeis por las coordenadas, esque va al lado delos menus.
if mostrar=1{
draw_sprite(spr_menus,menuactivo,553,220)
}
...
ahora os dare mas detallitos, en evento create en el mismo objeto"obj_inventario tengo.
///detalles como se divide el inventario
//Declaramos la variable menuactivo que nos indica en qué menu estamos 0= mochila, 1=estadisticas , 2= opciones.
menuactivo=0
/*Declaramos la variable que nos inica si estamos o no en el submenu*/
submenu=0
/* Declaramos la variable i, que es la posicion para el menu de mochila*/
i=0
/*Declaramos la variable e, que es la posición para el menu de estadisticas*/
e=1
/*declaramos la variable c, que es la posicion para el menu de opciones*/
c=2
...
key pres "P":
if submenu=false{
//Esto indica que no estamos dentro del submenu
if submenu=0{
if menuactivo<2{
menuactivo+=1} //vamos al siguiente menu
else {menuactivo=0}//si no, vamos al menu de magias, que es el primero.
}
}
else{
if menuactivo=0{// si es mochila
if global.item=18{global.item=0}
else{global.item+=1}
}
}
..........................................................................................
Creo que es todo lo que os puedo aportar.... simplemente quiero saver porque no me aparece el sprite de "spr_est" (estadisticas)
y como podria acer para que los objetos yenaran huecos del inventario y no se fueran a esas coordenadas predefinidas.
se que deberia crear una especie de tabla con el hueco del inventario y sus coordenadas por ejemplo:
global.caja_x[1] = 307
global.caja_y[1] = 176
pero como aplico esto:
dibujar_item(obj_pocionmana,spr_pocionmana,190,150);
para que yene la "global.caja"?
gracias por pasaros a leer y espero no ser muy cansino y pesado, pero esque me siento estancado, y no quiero avanzar porque si tengo un error despues
podrian aparecer mas por causa de esto.
gracias chicos.
a nadie se le ocurre a ke puede ser debido esto? o como hacer lo d los espacios del iventario y aplicarlos al script d dibujar item?