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

Autor Tema: Velocidad de sonic  (Leído 324 veces)

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

Desconectado B_12.4

  • Habitual
  • *
  • Puntos: 27
  • Mensajes: 11
    • Ver Perfil
en: Octubre 27, 2020, 04:51:44 am
Hola! Disculpen, tengo una duda que me gustaria que la respondan. La cosa  es muy simple y la pregunta es ¿Cual es la manera de hacer que mientras mas tiempo avances mas velocidad tengas? algo como sonic, aunque logicamente con un limite.  :GM8:

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado T789

Respuesta #1 en: Octubre 27, 2020, 02:27:55 pm
Saludos B_12.4

La manera mas facil seria agregandole a una variable con el tiempo, prueba creando una variable tipo "hsp" y sumarsela a la "x"
/// Event Create
hsp = 0;
maxhsp[0] = 4;
maxhsp[1] = 7;
maxhsp[2] = 9;

hithsp = 0;
hcont = 0;
htime = room_speed*3; //puse un tiempo hipotetico
/// Event Step
var kh;
kh = (keyboard_check(vk_right) - keyboard_check(vk_left));

/// Movimiento horizontal
if (kh <> 0 && !place_meeting(x+hsp, y, obj_solid) {
  if (abs(hsp) < maxhsp[hithsp])
  hsp += kh*0*5;

  image_xscale = 1+(2*(hsp<0));
  // Funciona para darle tiempo establecidos a cada aceleracion
  hcont += 1;
  if (hcont >= htime && hcont != 2) {
    hithsp = min(hithsp+1, 2);
    htime += room_speed*2;
    hcont = 0;
  }
}
else // Desaceleracion
if (hsp <> 0 && kh == 0) {
  var hx
  if (hithsp == 0)
      hx = 0.25;
      else
      hx = 0.5;

  hsp -= (sign(hsp)*hx);
  // Cambiar valores mientras se desacelera
  if (abs(hsp) > 4 && abs(hsp) < 7) {
    hithsp = 1;
    hcont = room_speed*3;
  }
  if (abs(hsp) > 0 && abs(hsp) < 4) {
    hithsp = 0;
    hcont = 0;
  }
}

/*Sumar hsp*/ x += hsp;

Creo que con lo primero de ese ejemplo de se puede lograr prácticamente lo mismo, bueno apenas acabo de pensarlo  :-[
« última modificación: Octubre 27, 2020, 02:46:07 pm por T789 »

 


Desconectado 8 bits

Respuesta #2 en: Octubre 27, 2020, 03:16:44 pm
intenta este sencillo.

///evento step

if keyboard_check(vk_right) and place_free(x+8,y) {

speed+=1
direction=0

}

if keyboard_check(vk_left) and place_free(x-8,y) {

speed+=1
direction=180

}

if speed>8 {

speed=8

}

facilito, pero esos 8 de la speed y los place_free los puedes cambiar por los números que quieras

Azter