Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Fashion_Trozos

Páginas: 1 2 3 4 5
46
Hola, buenas a todo el mundo. Tengo un problemilla cuando activo las vistas, os explico. Tengo un objeto que me sirve de botón (es un botón que al clicar encima se crea un acha), el botón se crea cuando se crea un panel de inventario al pulsar  la tecla "I", la cosa esta que si no activo las vistas al pasar el puntero del ratón me da true, pero al activar una vista (para acercar la vista al personaje) la función de position meeting parece que deja de funcionar y al pasar el cursor por encima ya no me da "1" sino "0", es como si al activar la vista no detectase que el botón se crea en la misma coordenada o algo así. Todo lo que dibujo en tema de paneles y tal lo hago en el Draw GUI y al objeto del botón en el evento GUI le he puesto "draw_self". Que estoy haciendo mal?, un saludo!

47
Al final lo solucione poniendo instance_destroy y funciona perfectamente. Avora el siguiente paso es hacer que los items del mismo tipo se amontonen en un mismo slot. Pondre este tema como solucionado. Muchas gracias a todos por ayudarme.

48
Buenas noticias!. He puesto global.inventario en lugar de inventario y ha funcionado!!!!. La única pega ahora mismo es que nada mas hacer la colisión con el ob_piedra se me llenan los 4 slots de "piedra" al instante.

Como puedo "regular" que cada vez que colisione o lo que sea, solo se llene el primer slot libre de piedra y no uno con cada step?

49
No encuentro cual es el problema. Puede ser que me de error por intentar cambiar un 0 de la matriz (inventario = 0) por una cadena de texto que aparece de la nada? en el caso del ejemplo del compañero "pócima"? (en mi caso lo estoy probando con "piedra"). Os pongo el código.

CREATE  del ob_inventario

Código: [Seleccionar]
global.maximo_slots = 4

for (i=0;i<global.maximo_slots;i++) {
inventario[i] = 0
}

Esto es e evento colision del ob_prota con ob_piedra

Código: [Seleccionar]
if scr_obtener_slot_libre() != -1
 inventario[scr_obtener_slot_libre()] = "piedra"

Y este es el script para comprobar slot libre

Código: [Seleccionar]
for (i=0;i<global.maximo_slots;i++) {
if inventario[i] == 0
return i
}
return -1

Y este el error que me da:

FATAL ERROR in
action number 1
of  Step Eventob_piedra
for object ob_prota:

trying to index a variable which is not an array
 at gml_Script_scr_obtener_slot_libre (line 6) -        if inventario == 0
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_scr_obtener_slot_libre (line 6)
called from - gml_Object_ob_prota_Collision_b588f200_861f_4b56_ae28_73bb5befb700 (line 9) - if scr_obtener_slot_libre() != -1


Veis de donde me viene el error?. Estoy atascado aquí  :-[

50
Ohhh, no. Hace un rato llgué a casa y lo he probado, me ha dado este error:

FATAL ERROR in
action number 1
of  Step Eventob_piedra
for object ob_prota:

trying to index a variable which is not an array
 at gml_Script_scr_obtener_slot_libre (line 6) -        if inventario = 0 {
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_scr_obtener_slot_libre (line 6)
called from - gml_Object_ob_prota_Collision_b588f200_861f_4b56_ae28_73bb5befb700 (line 7) - var espacio_vacio = scr_obtener_slot_libre();


Que debo estar haciendo mal?

51
Uauu, compañero, muchísimas gracias por el esfuerzo, lo pondre como solucionado, lo has explicado super bien.

52
Uahh tio, muchas gracias, es exactamente lo que necesitaba. No he entendido exactamente todo, pero si veo que esa es la lógica correcta para hacer el tipo de inventario que quiero. Echaré un vistazo al "for" i a ver si entiendo exactamente como funciona. Gracias por el curro de respuesta! gracias!

53
Hola, buenas. He estado buscando la manera de hacer un inventario en el cual se vayan ordenando los objetos conforme los "coges" o bien los "fabricas". Se que hay mil maneras de hacer inventarios, me he estado mirando el tema de los arreglos y listas, pero me falta base y me pierdo con facilidad. Me gustaría hacer un pequeño ejemplo, con digamos 4 slots me basta. Se que la pregunta es muy amplia y da como para un megatutorial, por el momento me bastaría con entender como puedo conseguir que detecte que un slot esta acupado por un objeto y que debe colocar el objeto en el siguiente. Como haríais el inventario, dibujando un sprite que sean 4 cuadrados, o usando un objeto que use ese sprite. Una vez dibujado el inventario, he conseguido que al fabricar, por ejemplo, un acha, se dibuje en el primer "slot" o recuadro, pero entiendo que no termino de ir por el camino correcto, creo que de esa manera game maker no sabe que el slot siguiente esta vacío. No se si me he explicado demasiado bien, en resumen, me gustaría hacer un inventario de 4 casillas en el que se coloquen los objetos en los huecos. (digo 4 huecos para simpificar una posible respuesta) Un saludo!

54
intent esto, veo errores en el codigo o al menos una sintaxis que en otros lenguajes no deberia ser:

yo lo haria de la siguiente manera:

if( keyboard_check_released( ord( "I" ) ) )
{
     if( !instance_exists( ob_inventario ) )
     {
             instance_create( room_width/2, room_height/2,-1 ,   obj_inventario ); 
     }
     else
     {
             with (obj_inventario)
                      {instance_destroy();}
     }
}

Muy buena!! exactamente, así ha funcionado. Gracias!

55
Hola Fashion_Trozos

El problema es que se ejecutan ambos bloques de código al mismo tiempo, entonces creas y destruyes el inventario en el mismo step.
Te sugiero cambiar la estructura por un "if-else", de esta forma:
Código: [Seleccionar]
if keyboard_check_pressed(ord("I")) {
if instance_exists(ob_inventario) = false { instance_create_depth(room_width/2,room_height/2,-1,obj_inventario) }
else { with (obj_inventario) instance_destroy() }
}

Buenas compañero! Haciendo eso lo que pasa es que cuando pulso "I" aparece por una décima de segundo el inventario y vuelve a desaparecer. Que puedo estar haciendo mal?

56
Hola buenas, llevo un buen rato dándole vueltas a como puedo hacer lo que pregunto en el título. Lo he intentdo con una variable del estilo "mostrar_inventario = false" y que al presionar la "i" fuera verdadero, pero no me sale. Entinedo que realmente al presionar la tecla estoy dandole una orden contradictoria supongo. Después lo he intentado así, pero vamos que creo que viene a ser lo mismo hehe. Como lo veis?

Código: [Seleccionar]
if keyboard_check_pressed(ord("I")) and instance_exists(ob_inventario) = false{
instance_create_depth(room_width/2,room_height/2,-1,ob_inventario)
}

if keyboard_check_pressed(ord("I")) and instance_exists(ob_inventario){
instance_destroy(ob_inventario)
}

57
Preguntas y respuestas / Re:No consigo saltar linea de texto! :GMS:
« en: Abril 03, 2019, 07:06:23 pm »
en GMS2 cambio el salto de line a su codigo de programacion intenta con lo siguiente:

'\n' sin comilla simple

Muchas mucahs gracias! es exactamente así!

Lo había echo de otra manera por si a alguien le puede servir. Con un draw_text_ext_transformed i pasandole el ancho máximo que quieres que tengan las lineas, pero mucho mejor así, muchas gracias!

 

58
 :GMS:

Hola buenas! no consigo saltar una linea de texto de ninguna manera y no veo donde esta el fallo (me estoy volviendo loco eheh)

Evento Draw GUI

Código: [Seleccionar]
//DIBUJAR TEXTO DESCRIPTIVO DE PIEDRA
if mostrar_piedra == true{
draw_sprite(spr_info_piedra,0,95,31)
draw_text(95,31,"esto es piedra#hola que ase")
}

Se supone que poniendo una almohadilla tendría que saltar de linea, no? No se que estoy haciendo mal!
El texto me aparece así:  esto es piedra#hola que ase

59
Por si le pasa  a alguien, se soluciona así.

Hay que ir a la carpeta "mesa",  en la carpeta de Game Maker Studio 2. En la carpeta "mesa" hay un archivo opengl32.dll, copiar y pegar en la carpeta Game Maker Studio 2 y listo, ya funciona.

60
Hola, buenas. He formateado mi ordenador y al bajarme la version gratuita de la pagina de yoyogames la instalo, me aparece el icono de acceso directo en el escritorio pero no se ejecuta, doy doble clic y nada, lo ejecto como administrador y no responde a nada. Por que puede ser? Si miro en compatibilidad solo re da la opcion de poner compatibilidad con win7, 8 i no recuerdo que mas, pero no con windows 10. Puede que sea algun problema de compatibilidad.
Lo he instalado y desinstalado varias veces y nada

Páginas: 1 2 3 4 5