Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

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!.

Autor Tema: como hacer mover un objeto  (Leído 379 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado un_novato_mas

  • Visitante
  • *
  • Puntos: 3
  • Mensajes: 1
    • Ver Perfil
en: Enero 18, 2021, 11:54:19 pm
hola... como dice mi nombre soy un novato en game maker studio y me preguntaba si me podrían ayudar en darle movimiento a un objeto de derecha a izquierda gravedad y salto  si no es mucha molestia. :-[
pd(soy nuevo en el foro)

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado getnoff

Respuesta #1 en: Enero 19, 2021, 12:11:21 am
Te recomiendo empezar viendo tutoriales de juegos de plataformas, aquí pongo algunos buenos:
Spoiler




 


Desconectado T789

Respuesta #2 en: Enero 19, 2021, 12:17:20 am
Saludos

Existen muchas formas de hacer movimientos en GM, puedes hacerlo tanto con las variables de "hspeed" "vspeed" o con las posicion "x y" del objeto, te recomiendo mejor la segunda ya que se empieza hacer mas facil

Primero seria una gravedad, para eso usarias algunas variables que gestionen la fuerza con la que se caera y una variable que contenga la velocidad vertical.
Luego esta el movimiento para los lados que eso lo harias igual que con la gravedad, pero en modo horizontal
/// Event Create
hsp = 0;  //velocidad horizontal
vsp = 0;  //velocidad vertical
vel = 4;
grav = 0.6;
pixelCheck = 0.1;  //para chequear la colisión en pixeles
/// Gravedad
vsp += grav;
if (vsp > 8) vsp = 8;
repeat(vsp * 10) {
  if place_meeting(x, y+sign(vsp)*pixelCheck, obj_solid)
    vsp = 0;
  else
    y += sign(vsp)*pixelCheck;
}

/// Movimientos
var move;
move = (keyboard_check(vk_right)-keyboard_check(vk_left))
repeat(move * vel) {
  if place_meeting(x+move, y, obj_solid)
    hsp = 0;
  else
    x += move;
}
Esos repeat son para chequear colisiones y para moverlos pixel a pixel, de esa forma es facil.

Por ultimo si quieres hacer un salto... Bueno ya depende de como lo quieras, como eres un novato te sugiero probar el metodo facil
/// Event Keyboard check Space
if place_meeting(x, y+1, obj_solid)
  vsp = -10; // el resultado es negativo para que valla hacia arriba
Con eso creo que ya tendrias lo basico en el movimiento de un objeto, bueno siempre hay mas metodos que probar para hacer movimientos, hay distintas formas de hacer colisiones y movimiento, eso ya depende del tipo de juego que hagas y de como lo quieras hacer, el metodo que te doy es para un simple plataformero