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
31
Preguntas y respuestas / Re:Como picar piedra?
« en: Mayo 14, 2019, 10:34:20 pm »
Al final me ha ido bien con lo de if instance_exists

Código: [Seleccionar]
if keyboard_check_pressed(vk_space) {
ob_roca.vida_roca--
}

if ob_roca.vida_roca = 0 {
with other instance_destroy()
if instance_exists(ob_roca) {ob_roca.vida_roca +=4}
}

32
Preguntas y respuestas / Como picar piedra? [SOLUCIONADO]
« en: Mayo 14, 2019, 04:00:20 pm »
Llevo un par días pues eso, intentando picar piedra que digamos. Me gustaría que me propusierais lógicas fáciles de como hacer algo así. La intención es que cuando el personaje se acerque a menos de 4 pixeles de una "roca" y pulse, por ejemplo, espacio, le reste 1 a la vida de la piedra, cuando la piedra pierda digamos 4 vidas se destruya.
Lo he intentado de varias maneras y no consigo hacerlo bien. O se me destruye el protagonista, o todas las rocas o no pasa nada. He intentado ir simplificandolo todo hasta que he empezado un proyecto solo para probar esto mismo y ni aun así. Os pongo el código de esto último.

Código: [Seleccionar]
if distance_to_object(ob_roca) < 4 and keyboard_check_pressed(vk_space){
ob_roca.vida_roca--
}

if ob_roca.vida_roca == 0 {
instance_destroy(instance_nearest(x,y,ob_roca))
}

Pero al "picar" 4 de piedra desaparecen todas las instancias y me da este error:

Unable to find any instance for object index '2' name 'ob_roca'
 at gml_Object_ob_prota_Step_0 (line 36) - if ob_roca.vida_roca == 0 {

La vida de la roca se la puse en el CREATE del ob_roca. Puede que ese sea el error?

Y si lo intento con un evento colision me pasa lo siguiente.

Código: [Seleccionar]
if keyboard_check_pressed(vk_space) {
ob_roca.vida_roca--
}

if ob_roca.vida_roca == 0 {
with other instance_destroy()
}

De esta manera me funciona el invento, pero claro, solo una vez. Me imagino que es porque la variable vidas_roca baja a "0" me sirve para que desaparezca la primera instancia en a que estoy "picando" pero después, en las demás, las destruye solo con colisionar al cumplirse if ob_roca.vida_roca == 0 . No podrían tener cada instancia del ob_roca sus propias vidas??? por decirlo de alguna manera.

Añadiendo un poco mas al código (ob_roca.vida_roca +=4) puedo hacer que funcione hasta la penúltima instancia, cuando se terminan las instancias en la room el invento peta

Código: [Seleccionar]
if keyboard_check_pressed(vk_space) {
ob_roca.vida_roca--
}

if ob_roca.vida_roca = 0 {
with other instance_destroy()
ob_roca.vida_roca +=4
}

PD: Tengo otro post abierto en el que el problema es muy similar, pero pensé que podía simplificarlo y así alguien podría responderme fácilmente a este problema y quedaría solucionado para próximos principiantes como yo. Si alguno de los dos queda solucionado, borraría el otro


33
Hola, buenas tardes. Pues llevo un buen lio, me falta mucha base y me atasco con los problemas mas pequeños. Mi intención es que el personaje pueda picar roca al estar cerca de una de ellas. No me acaba de convencer que tenga que picarla exactamente con la colisión, me hace cosas raras (como que tengo que estar pulsando en dirección a la roca para que cuando pulse el mouse se sume una "piedra", me imagino que tiene que ver con la simpleza de la colisión en el evento o algo así, pero no estoy seguro), por eso había pensado en distance_to_object a unos 4 pixeles, ya no tendría que estar tan pegado a la roca y seria mas fácil. Lo que me pasa ahora es que haciendo algunos retoques en el código y colocandolo en la colisión con la roca pues funciona, puedo recoger 4 de piedra de una roca y después se destruye. El problema ahora es que una vez se destruye la primera roca cambia el comportamiento y vuelve a destruir cada roca solo con tocarla y deja de sumar piedra al contador (se destruye la instancia solo con colisionar). Supongo que el problema esta en que se deja de cumplir alguna condición o se empieza a cumplir otra o no se, pero no veo que hago mal. Realmente se que estoy haciendo un estropicio en cuanto al código, en cuanto aprenda un poco mas borraré el proyecto y empezaré uno nuevo heheh.

en el evento Colisión de mi protagonista hacia el ob_piedra
Código: [Seleccionar]
if mouse_check_button_pressed(mb_left)
and position_meeting(mouse_x,mouse_y,ob_piedra) {

if scr_obtener_slot_libre() != -1 and global.primera_piedra == true {
   global.inventario[scr_obtener_slot_libre()] = "Piedra"
   global.primera_piedra = false;
   }
   
   global.cantidad_piedra++
   ob_piedra.vida_piedra--
   }

if ob_piedra.vida_piedra <= 0 {with other instance_destroy()}

if global.cantidad_piedra == 0 {
global.primera_piedra = true;
}
Al final puse la variable vida_piedra en el mismo ob.piedra, no se porque era la única manera de que me funcionara

Por cierto, como haces para que el codigo que me pones se vea así con un fondo negro, coments en verde, etc? Queda y se entiende mejor que así como lo pongo yo

34
Ahora lo he intentado en el evento Create del prota i con instance nearest y tampoco

piedra_cercana = instance_nearest(x,y,ob_piedra)

if distance_to_object(ob_piedra) < 4 and mouse_check_button_pressed(mb_left)
and position_meeting(mouse_x,mouse_y,ob_piedra) {

if scr_obtener_slot_libre() != -1 and global.primera_piedra == true {
   global.inventario[scr_obtener_slot_libre()] = "Piedra"
   global.primera_piedra = false;
   }
   
   global.cantidad_piedra++
   global.vida_piedra--
   }

if global.vida_piedra <= 0 {
   if piedra_cercana != noone{
   instance_destroy(piedra_cercana)}
}


if global.cantidad_piedra == 0 {
   global.primera_piedra = true;
   }
   




35
Preguntas y respuestas / Re:Duda a la hora de equipar a mi personaje
« en: Mayo 09, 2019, 02:56:49 pm »
Por lo que entiendo la manera de hacerlo es, digamos, artesanalmente. Hay que dibujar los sprites de cada herramienta o arma. Si realmente si que es un currazo, pero bueno. A mi me gusta mucho dibujar y o tengo como hobby, así que poco a poco voy haciendo y tal pero tenia dudas de como era el procedimiento adecuado y tal. Muchas gracias por responder y un saludo!

36
Hola, buenas. Tengo un problema que no consigo solucionar. Quiero que mi personaje pueda sacar 4 unidades de piedra cuando "pique" una roca y que despues esta se destruya. No estoy muy seguro de como hacerlo, consigo que pueda extraer 4 unidades de una roca pero después se destruyen todas las instancias de roca y no solo la que esta picando.

Lo he puesto en un evento colisión de mi protagonista hacia el objeto roca.

Código: [Seleccionar]
if distance_to_object(ob_piedra) < 4 and mouse_check_button_pressed(mb_left)
and position_meeting(mouse_x,mouse_y,ob_piedra) {

if scr_obtener_slot_libre() != -1 and global.primera_piedra == true {
   global.inventario[scr_obtener_slot_libre()] = "Piedra"
   global.primera_piedra = false;
   }
   
   global.cantidad_piedra++
   global.vida_piedra--
   }

if global.vida_piedra <= 0 {with other instance_destroy()}

if global.cantidad_piedra == 0 {
global.primera_piedra = true;
}



Me imagino que es una tontería de primero de programación. Un saludo!

37
Muchísimas gracias! es exactamente así. No lo encontraba porque tengo el programa en castellano y no supe traducirlo heheh. La única pega que le veo al hacerlo así es que no podre utilizar Tilesets, tendré que tener cada sprite por separado en el apartado sprites de recursos. Bueno entonces pongo el tema como solucionado y cambiaré el nombre del título para que quizás se entienda mejor. Muchas gracias! Un saludo.

38
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 08, 2019, 04:37:35 pm »
Buenas tardes. Lo de la capa recursos no lo he encontrado, al final he echo lo de reducir el tamaño de los tiles. Mas o menos da el pego, pero no acaba de quedar del todo bien ya que los bordes que no tienen dibujo tapan un poco al sprite de debajo. Donde puedo creaar esta capa de recursos queme comentas? En el room editor solo encuentro la deinstancias, fondos o tilesets. Un saludo

39
Preguntas y respuestas / Duda a la hora de equipar a mi personaje
« en: Mayo 07, 2019, 12:20:38 pm »
Hola, buenas. Estoy empezando a hacer mis pinitos y ahora me toca la parte de equipar a mi personaje. Por ahora ya se mueve, interacciona con otros items e incluso tengo mi primer inventario rudimentario (con el bucle "for"), el personaje va cogiendo y acumulando piedra, madera, lo típico. Ahora ha llegado el momento de poder equiparlo como toca con un pico, una pala etc. Tengo dudas en como hacerlo. Por una parte esta la visual, cual seria el procedimiento mas adecuado, me imagino que hay que hacer otra vez un sprite del personaje parado y caminando en todas direcciones, pero esta vez con la herramienta en cuestión y a parte, un sprite en cada dirección con la animación de la utilización de cada cosa que lleve equipada, esto es así? Y la otra seria ya mas la parte de programación pero creo que lo dejaré para otro post. Pregunto esto porque supongo que hay varias maneras de hacerlo, imagino que no es el mismo sistema por ejemplo Stardewvalley en el que parece que si han sido dibujados de nuevo lo personajes con la herramienta a por ejemplo Forager que parece que le han pegado el pico encima y se mueve y listo.

40
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 07, 2019, 11:59:32 am »
Uauu, muchas gracias, vaya curro de respuesta! Al fin y al cabo quedara aquí para cualquiera que la consulte, bravo!. Creo que la opción que me viene mejor es la ultima, intentaré lo de la capa de recursos, muchas gracias!

41
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 06, 2019, 08:18:17 pm »
Buenas compañeros, muchas gracias por responder. Llevo dos horas buscando, pero no encuentro esto que me comentas. Seguro que es muy facil, pero no doy con ello. Por otro lado tengo Game maker en español, puede que sea un poco por eso que no encuentro esta casilla. Un saludo

42
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 05, 2019, 01:16:51 pm »
Buenas compañero. He probado a hacer lodque me dices pero no funciona, solo me deja colocoarlos respetando las distancias. Cual puede ser el fallo?

43
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 04, 2019, 10:37:56 am »
Muchas gracias por responder. Ayer cacharreando llegué a esta conclusión, la cosa es que no me acaba de gustar por el echo de que si quiero acumular, por ejemplo, dos arbustos uno delante del otro no puedo. Si por ejemplo los tiles miden 32x32 no puedo poner otro tile em ese espcio y queda todo muy encasillado y poco organico. Puedo de alguna manera saltarme esto y colocar los tiles unos encima de otros?

44
Estoy empezando a pensar en como hacer los fondos, por hora voy dibujando sprites del tipo: un arbol, un arbusto, etc, pero tengo la duda de cual sería la manera correcta de  hacerlo en gm2. Por ahora lo que hago es poner un fondo de color verde (no se de que manera hacerlo mejor) y después voy poniendo un arbol por aquí y un arbusto por allá, pero estoy utilizando instancias de objetos. He pensado en utilizar un draw_sprite, pero me parece una matada andar colocando los sprites así. Alguien sabe si hay alguna manera de colocar los sprites igual de fácil que cuando lo hago con instancias? un salu

45
Muchas gracias. En cuanto llegue a casa lo pruebo

Páginas: 1 2 3 4 5