Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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 - HKaichim

Páginas: 1 2
16
Preguntas y respuestas / Re:Canal Telegram GMdevs
« en: Septiembre 27, 2018, 03:07:44 am »
Voy a crearlo entonces, que siempre viene bien para los que no tengamos Facebook, y para quienes quieran charlar más extendido y así solucionar issues con mayor rapidez. Daré info cuando esté creado y tal :)
Yo no recuerdo muy bien el nombre de una pagina muy buena donde se crea una sala de chat y esta se modifica a gusto, si vas a crear un Group para hablar recomendaria uno donde entren por aceptacion y donde puedas controlar todo lo que los demas usuarios vayan hacer
Los siguientes usuarios dieron las gracias a este tema: Yuzo

17
Preguntas y respuestas / Re:Saltos precisos y caida "SOLUCIONADO"
« en: Septiembre 24, 2018, 09:34:37 pm »
Bueno no soy un genio, pero lo he solucionado:
Create
Código: [Seleccionar]
globalvar key_caminar;//Control para caminar
key_caminar = true;
globalvar key_saltar;//Control para saltar
key_saltar = true;
globalvar contador;//Control de salto
contador = 20;
globalvar Ccontador;//Control de la variable de salto
Ccontador = false;
Begin Steps
Código: [Seleccionar]
//CONTROLES "WDSA"
if mouse_x>Obj_Player.x{
image_xscale = 1;
if key_caminar = true{
if keyboard_check(ord("D")){
x+=4;
sprite_index = Spr_Player_Right
}
    }
        }
if mouse_x<Obj_Player.x{
image_xscale = -1;
if key_caminar = true{
if keyboard_check(ord("A")){
x-=4;
sprite_index = Spr_Player_Right
}
    }
        }
Código: [Seleccionar]
//Control de salto
if mouse_x>Obj_Player.x{
if key_saltar = true{
if keyboard_check(ord("A")){
key_caminar = false;
key_saltar = false;
sprite_index = Spr_Player_Salto
}
    }
if key_saltar = false{
hspeed = -6;
vspeed = -8;
}
    }
       
if mouse_x<Obj_Player.x{
if key_saltar = true{
if keyboard_check(ord("D")){
key_caminar = false;
key_saltar = false;
sprite_index = Spr_Player_Salto
}
    }
if key_saltar = false{
vspeed = -8;
hspeed = 8;
}
    }

Código: [Seleccionar]
if key_saltar = false{
contador -=1;
}
if contador < 1{
vspeed = +8;
}
if contador < -18{
Ccontador = true;
}
if Ccontador = true{
contador = 21
vspeed = 0;
hspeed = 0;
}
if contador = 21{
key_caminar = true;
key_saltar = true;
Ccontador = false;
}
if contador = 21{
sprite_index = Spr_Player_Stop
contador = 20;
}
Mas o menos con esto a mi me funciono
Los siguientes usuarios dieron las gracias a este tema: Yuzo

18
Preguntas y respuestas / Re:cambiar la vista del sprite con el cursor
« en: Septiembre 23, 2018, 05:56:44 am »
Lo que querés hacer es que cambie la imagen del personaje, entonces lo más fácil es cambiar su sprite.
Tenes que tener dos sprites, uno donde mire a la izquierda y otro a la derecha, y eso reemplazar en el código.

Código: [Seleccionar]
//Izquierda
if (mouse_x < x) {
    sprite_index = spr_personaje_izquierda;
    image_speed = 0.3;
}
//Derecha
else {
    sprite_index = spr_personaje_derecha;
    image_speed = 0.3;
}

Fijate si alguna parte de tu código hace conflicto con este.
Y como haces para qu gire con el cursor?
Los siguientes usuarios dieron las gracias a este tema: Yuzo

19
Preguntas y respuestas / Re:Rpg estilo South Park
« en: Septiembre 23, 2018, 01:44:48 am »
Hola gracias por la ayuda
Este el código que tengo echo
Código: [Seleccionar]
///Ataques
if global.room_atack=true{ // si el juego esta en modo combate
if global.tipe1.fth=1{ // es la variable que verifica que sea el turno de atacar del  jugador
if keyboard_check_pressed(vk_space) {
//atk=1
 
    if point_distance(x, y, obj_selec_eni.x, obj_selec_eni.y) > 12 // si la distancia al enemigo seleccionado es mayor que
   {
   move_towards_point(obj_selec_eni.x, obj_selec_eni.y, 3); // se mueve hasta el enemigo
  tx=tx1 // cambio de sprite
   }     // tx es para hacer cambio de sprite

}

if point_distance(x, y, obj_selec_eni.x, obj_selec_eni.y)< 12 {  //si la distancia al enemigo es menor que
tx=tx6
speed=0
if  image_index > spr_number - 1 {image_speed=0 }
if instance_exists(obj_adv){ go=1}
else
{go=0}
a+=1
if a>50 and a<70 audio_play_sound(sound0, 10, false); //play sound
if a>100 a=0

if a>50 and a<70 {  // si a esta entre los valores se puede atacar
if go=1 {
if keyboard_check_pressed(vk_space)  n+=1 //n en un contador aumenta en 1 dependiendo del valor el ataque es diferente
}
instance_create(x,y,obj_adv) // el odjeto creaa un aviso en pantalla para indicar que se puede atacar mientras el sonido se reproduce

}
else
with (obj_adv)
{
instance_destroy();
}


// dependiendo del valor de n cambia de sprites para hacer un ataque diferente
if n=1 tx=tx7
if n=2{ tx=tx8 }
if n=2 and image_speed=0 {atk=0 }
if n=3 {atk=0 } //Cuanta n sea igual a 3  se terminan los ataques



if keyboard_check_pressed(vk_space) and go=0 atk=0 // se presionas space  antes de tiempo
                                                    //cuando el sonido no se esta reproduciendo
                                                    //se termina la oportunidad de atacar
}



}

// cuando atk es igual a 0 el personaje vuelve a su pocision original
if  atk=0 {
if point_distance(x, y, object33.x, object33.y) > 12 {
tx=tx2
move_towards_point(object33.x, object33.y, 3);
}
else
{
speed=0 //cuando llega a su pocision original
tx=tx6  //las variables toman su valor inicial
n=0
a=0
atk=1
global.place=1
}
}

No se si se le entienda bien lo que ase, el código funciona bien pero quiero mejorar la forma de hacerlo por ejemplo quiero que calcule que tan rápido presione la tecla cuando se
reproduce el sonido y dependiendo de eso aumenta o disminuya la cantidad de daño echo al enemigo
La verdad yo no le entiendo muy bien a las variables ni scripts, pero probandolo quizas lo termine entendiendo
Los siguientes usuarios dieron las gracias a este tema: Yuzo

20
Preguntas y respuestas / Re:Rpg estilo South Park
« en: Septiembre 22, 2018, 11:25:22 pm »
:'v Checalo y me dices que tal
Los siguientes usuarios dieron las gracias a este tema: Ares074

21
Preguntas y respuestas / Re:Rpg estilo South Park
« en: Septiembre 22, 2018, 11:02:48 pm »
Si, seria algo como la caja no mas que para poder agarrar la caja tendría que a ver una señal ya sea un sonido o una imagen y solo la puede recoger mientras exista la señal si lo ase cuando no esta la señal pierde la oportunidad de recoger la caja
Yo no estoy del muy seguro del como hacerlo ya que no lo he intentado jamas y tampoco soy un genio del GM, pero creo que si juegas con las variables podrias y algunas ID de direccion podria funcionar. Yo intentaria hacerlo de la siguiente manera:
CREATE
Código: [Seleccionar]
globalvar sonidos;
sonidos=false;
Entonces ya con esto tengo la variable que se podria activar cada vez que pase el tiempo del sonido.... digamos un ejemplo si el sonido dura 90Seg entonces la variable se activa a true; durante ese tiempo y al pasar vuelve a caer en false; si tomamos encuenta una variable como la que me dio un amigo para seguir por la ID ayudaria mucho
Código: [Seleccionar]
//Código1 - El obj2 elige al obj1 más cercano para comenzar a seguirlo
if sonidos=true{
id_seguir = noone //Declaramos una variable de instance (debes llamar el Id del objeto para leerla)
var distancia;
distancia = -1; //Declaramos una variable local (Existe en el código y cualquier objeto la puede leer, es casi como una variable global, pero se destruye al terminar de ejecutar este código)
with (Objeto que genera el sonido) if (my_id = 0 || my_id = 1) {
if (other.id_seguir = noone) { other.id_seguir = id; distancia = point_distance(other.x,other.y,x,y) }
else {
var new_distancia;
new_distancia = point_distance(other.x,other.y,x,y)
if new_distancia < distancia { other.id_seguir = id; }
}
}

//Código2 - El obj2 se desplaza hacia el objetivo que quiere seguir
if id_seguir != noone {
var velocidad;
velocidad = 4;
if point_distance(x,y,id_seguir.x,id_seguir.y) > velocidad {
var direccion;
direccion = point_direction(x,y,id_seguir.x,id_seguir.y);
x += lengthdir_x(velocidad,direccion)
y += lengthdir_y(velocidad,direccion)
}
}
}
Creo que esto pueda funcionar no lo sé debo revisar... "Espero al menos haberte dado una idea"
Los siguientes usuarios dieron las gracias a este tema: Yuzo

22
Preguntas y respuestas / Re:Rpg estilo South Park
« en: Septiembre 22, 2018, 01:46:27 pm »
Yo no entiendo a la perfeccion del como lo harias...? Seria algo como ejemplo: Se cae una caja a tu derecha el personaje se mueve hacia ella a recogerla por asi decirlo?
Los siguientes usuarios dieron las gracias a este tema: Yuzo

23
Preguntas y respuestas / Re:Duda sobre los sprites y movimiento
« en: Septiembre 21, 2018, 10:03:07 pm »
Hola tengo una duda, que es que no se si se podra, en game maker, seleccionar ciertas sub imagenes de sprites para mover un personaje, por ejemplo, un robot que vuela, cuando se apreta la tecla para andar, lo necesario seria que el robot se eleve por ir por aire y no que repita la animacion, no se si me explico bien, espero que puedan ayudarme D:
Bueno tienes la opciones de "sprite_index" y image_index digamos un ejemplo precionas la tecla Space entonces seria lo sigiente
Código: [Seleccionar]
if keyboard_check(vk_space){
sprite_index = Spr_volar
image_index = 0.2;
}
if image_index = 9{ //Digamos que este es la ultima imagen a mostrar
y-=5
sprit_index = Spr_volando
}
Creo que con eso bastaria
Los siguientes usuarios dieron las gracias a este tema: Yuzo, WMKILLER

24
Videojuegos / Re:que necesita un juego para que sea exitoso?
« en: Septiembre 19, 2018, 10:52:10 am »
La historia sobre todo, mira Undertale se volvio un juegazo por su historia y personajes, no obstantes las funciones de juego ya se habian visto en Mother, pero aun asi atrayeron a millones por su historia
Los siguientes usuarios dieron las gracias a este tema: dixon2010

25
Preguntas y respuestas / Re:Cambiar de animación dos veces
« en: Septiembre 12, 2018, 04:40:55 am »
Usar diferentes objetos para diferentes estados es una opcion mas. Me puse a hacer un ejemplo y en unos minutos ya lo tenia hecho.
Si te sirve y te es facil de esa forma hacelo asi(subo un ejemplo).


Acabo de ver tu ejemplo (soy nuevo en la comunidad y no tenía idea de cómo aparecían los archivos adjuntos)
Es precisamente eso lo que quiero lograr, pero quería intentarlo en forma de código para no tener tantos archivos en el árbol de recursos. Te agradecería si leés mi comentario anterior, donde le explico al otro usuario de forma detallada el código que creé, a ver si vos también podés darme una mano con eso :)

Pero si no me queda más remedio, tendré que hacerlo así, con objetos.

Muchas gracias!!!!!!
Si debes saber mas o menos como programar los eventos, vere si grabo como hacerlo y te lo paso a ver si lo haces, otra cosa en "Change Sprite" debe tener si o si una velocidad de 0.1, ya que a mi tambien se me ah puesto loca la animacion con las alarmas, pero lo eh reparado y tomo me va exelente...
Los siguientes usuarios dieron las gracias a este tema: Yuzo

26
Preguntas y respuestas / Re:view
« en: Septiembre 11, 2018, 06:46:51 am »
Es muy sencillo en la parte de "Rooms" abrimos un mapa el cual trae distintas opciones, en una de ellas dice View aqui encontraremos con un par de opciones visibles por defecto asi que procedemos a ensamblas algunas cajitas. Enable the use of View esto activara las camaras dentro del room, luego vamos y damos click en Visible when rooms starts esto solo quiere decir que las View estaran activas al iniciar este mapa, ahora vamos a una parte que dice View in Room abajo de esto nos dan un par de opciones "X,Y" <Esto si deceas no lo toques, W,H este si lo modificaremos, W:320 & H:240 esto seria para acercar la pantalla a un tamaño de 320 de ancho y 240 de altura, en Port on Screen dejamos la opcion que dice W:640 & H:480 ya que este sera el tamaño exacto que ganara la pantalla de 320x240 "No se si me hice entender"
Los siguientes usuarios dieron las gracias a este tema: GGrayonar

27
Preguntas y respuestas / Re:Cambiar de animación dos veces
« en: Septiembre 11, 2018, 06:36:13 am »
Yo crearia variables con las "Alarmas" Ejemplo... Si el personaje esta caminando deberia mostrar su Spr_Caminando Obviamente, pero al soltar la tecla que hace avanzar al personaje este caeria inmediatamente al Spr_Quieto osea aqui es donde tiene la animación de respirar y coloco una variable que me controle la duración de inactividad...
Ejemplo:
Create
Aqui colocamos una "set variable" y dentro de "variable" colocaremos alarm[0] y en "value" colocas el tiempo que dure el personaje antes de sentarse. En este mismo evento colocaremos un "set alarm" y en numer for steps colocaremos nuevamente el tiempo que durara el personaje para sentarse
Alarm 0
Ya habiendo hecho lo primero ahora procederemos a poner una "change sprite" y dentro de ella el "Sprite" del personaje sentandose mas la velocidad de la image y el numero de subimage con el que empezara.
Step
Aqui colocaremos una "test variable" en "variable" colocaremos alarm[0] y en "value" colocaremos un cero("Esto definira que pasa cuando la alarma pasa de cero"). Ahora colocamos un start Block luego una "set variable" en "variable" pondremos "alarm[0]" y en "value" nuevamente colocaremos el tiempo que le tomara al personaje sentarse, damos "OK" y por ultimo colocaremos un "end block".
Nota: Ya habiendo hecho todo lo anterior deberemos proceder a nuestras configuraciones del "teclado" osea, debemos ir a la parte donde tenemos programado el movimiento, imagen y velocidad del personaje al precionar una tecla
Ya estando aqui deberemos hacer esto... Ejemplo:
Código: [Seleccionar]
//Controles de movimiento.
if keyboard_check(vk_down){
sprite_index = /Sprite del personaje hacia abajo;
alarm[0]=//Tiempo que tomara en sentarse;
y+=4;
}
if keyboard_check(vk_right){
sprite_index = /Sprite del personaje hacia la derecha;
alarm[0]=//Tiempo que tomara en sentarse;
x+=4;
}
if keyboard_check(vk_up){
sprite_index = /Sprite del personaje hacia arriba;
alarm[0]=//Tiempo que tomara en sentarse;
y-=4;
}
if keyboard_check(vk_left){
sprite_index = //Sprite del personaje hacia la izquierda;
alarm[0]=//Tiempo que tomara en sentarse;
x-=4;
}
Las variables de "alarma" que tenemos en cada tecla no permitira que el personaje se siente cada vez que pasen el tiempo cuando caminamos en vez de no estar haciendo nada, no obstante estas si iniciaran cuando el personaje no este haciendo nada.
Los siguientes usuarios dieron las gracias a este tema: Yuzo, javixblack

28
Preguntas y respuestas / Re:cambio de sprite y keyboard
« en: Septiembre 08, 2018, 03:14:29 am »
Yo Utilizo este codigo para el Movimiento...
Colocas un evento de "Begin Steps" y luego añades Execute Code y le añades este codigo "El cual debes editar"
Código: [Seleccionar]
//Controles de Velocidad ("WDSA").
if keyboard_check(ord("W")){
    if keyboard_check(ord("D")){
        if keyboard_check(ord("S")){
            if keyboard_check(ord("A")){
speed = 4;
}
    }
        }
            }
//Controles de Imagen ("WDSA").
if keyboard_check(ord("W")){
sprite_index = //Imagen de personaje hacia arriba
y-=4;
}
if keyboard_check(ord("D")){
sprite_index = //Imagen de personaje hacia la derecha
x+=4;
}
if keyboard_check(ord("S")){
sprite_index = //Imagen de personaje hacia abajo
y+=4;
}
if keyboard_check(ord("A")){
sprite_index = //Imagen de personaje hacia la izquierda
x-=4;
}

luego añades un evento de End Steps y añades otro Execute Code y colocas dentro esto...
Código: [Seleccionar]
//Controles de Velocidad ("WDSA").
if keyboard_check_released(ord("W")){
    if keyboard_check_released(ord("D")){
        if keyboard_check_released(ord("S")){
            if keyboard_check_released(ord("A")){
speed = 0;
}
    }
        }
            }
//Controles de Imagen ("WDSA").
if keyboard_check_released(ord("W")){
sprite_index = //Imagen del personaje detenido hacia arriba
image_speed = 0.1;
}
if keyboard_check_released(ord("D")){
sprite_index = //Imagen del personaje detenido hacia la derecha
image_speed = 0.1;
}
if keyboard_check_released(ord("S")){
sprite_index = //Imagen del personaje detenido hacia abajo
image_speed = 0.1;
}
if keyboard_check_released(ord("A")){
sprite_index = //Imagen del personaje detenido hacia la izquierda
image_speed = 0.1;
}
Los siguientes usuarios dieron las gracias a este tema: GGrayonar

Páginas: 1 2