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

Páginas: 1 2
1
Hola Gmes, en vez de usar mp_potential_step, puedes usar las funciones lengthdir_x y lengthdir_y para mover los enemigos hacia donde quieras. En el ejemplo abajo los enemigos seguiran al jugador a una velocidad de 4 pixeles por step.

hsp = lengthdir_x(4, point_direction(obPlayer.x,obPlayer.y));
vsp = lengthdir_y(4, point_direction(obPlayer.x, obPlayer.y));

x += hsp;
y += vsp;
Las variables hsp y vsp las puedes sustituir por las variables que uses para calcular la velocidad.

2
Preguntas y respuestas / Re:mi personaje se mueve solo
« en: Febrero 24, 2020, 07:07:59 pm »
Hola Crashed_ yo vi esos tutoriales hace ya algun tiempo y el error que tienes esta en el scipt aproach que no lo pusiste en tu comentario.
Ese script debe ser asi:
///Script Aproach
if (argument0 < argument1)
   return min(argument0 + argument2, argument1);
else
   return max(argument0 - argument2, argument1);

3
Yo no tengo el GMS 2 pero te voy a dejar el codigo del GMS1 y tu le cambias las funciones obsoletas.
Nesecitas al menos 3 objetos objPlayer, objBala y objPowerUp
OBJPLAYER:
Evento create
///variables
//movimiento
yy = 0;
spd = 0;

//Variable para controlar el tipo de bala que vamos a disparar
bulletState = "normal";

Evento step:
///Movimiento
var kDown, kUp;

kDown = keyboard_check(vk_down);
kUp   = -keyboard_check(vk_up);

spd = kDown + kUp;

//Velocidad
if (spd != 0) yscale = spd;
yy = spd * 3;

y += yy;

///Control de Disparo
if (keyboard_check_pressed(ord("S")))  //Si presionamos la tecla S
{
  switch(bulletState)  //disparamos en funcion de la variable bulletState
    {
      case "normal":   //si bulletState = "normal"
        instance_create(x+16, y, objBala); //disparamos una sola bala
      break;
     
      case "doble":   //si bulletState = "doble"
        instance_create(x+16, y-10, objBala)  //disparamos
        instance_create(x+16, y+10, objBala)  //dos balas
      break;
    }
}

Evento alarma 0:
///Cambiar el tipo de disparo
bulletState = "normal";

OBJPOWERUP:
Evento step:
///Control

if (place_meeting(x,y,objBala))
{
  instance_destroy(); //destruirse
  with(other)instance_destroy(); //destruir el objeto que coliciono con el
  objPlayer.bulletState = "doble";
  objPlayer.alarm[0]  = 150
  /*
 150 steps son 5 segundos lo puse asi para ver el cambio sin
 tener que esperar 30 segundos. Si quieres saber cuantos steps
 son X segundos solo multiplica 30 por la cantidad de segundos
 que quieras.
 */
}

OBJBALA:
evento create:
hspeed = 8;

PD: Espero que ahora si te pueda ayudar. Saludos xStarLordx

4
Soy bastante malo explicando las cosas :-[, por eso te dejo un mini proyecto con un ejemplo basico de como cambiar el tipo de disparo.
Espero que entiendas.

5
Preguntas y respuestas / Re:Evento create y persistencia
« en: Enero 14, 2020, 02:10:01 pm »
Hola Arcadian, la verdad a mi nunca me a pasado eso debe ser un bug del GM porque esta bien raro eso  ;D

6
Preguntas y respuestas / Re:Alarmas
« en: Enero 08, 2020, 10:30:36 pm »
Hola, ante todo quiero aclarar que las alarmas no son cronometros son temporisadores, o sea , debes darle un valor y ese valor son los steps que tarda en activarse el codigo que tengas dentro del evento de alarma, no se si me entiendes. Abajo te dejo un mini proyecti para que veas como funciona sin necesidad usar alarmas.

PD: Te suguiero que veas tutoriales de monty drake en youtube es uno de los mejores que e visto y es en español

7
Preguntas y respuestas / Re:inersia y movimiento encima de movimiento
« en: Enero 06, 2020, 07:46:15 pm »
Citar
Este código tiene sus desventajas:
1. Funciona solo si el objeto plataforma móvil, se mueve por causa de su hspeed. Osea va a funcionar si estas moviendo la plataforma movil con la variable hspeed de esta.
A juzgar por el codigo que nos dio supongo que calcula la velocidad horizontal sumandole puntos a x por lo tanto y con el permiso de dixon XD seria asi.

if(distance_to_object(objeto_plataforma)<5)
{
objeto_especifico=instance_nearest(x,y+5,objeto_plataforma)
if(y<objeto_especifico.y)
{
x+=objeto_especifico.x //hice el cambio aqui
}
}
PD: Si no lo usas asi solo debes poner el nombre de la variable que usas para la velocidad horizontal despues del punto

8
Preguntas y respuestas / Re:inersia y movimiento encima de movimiento
« en: Enero 06, 2020, 06:13:47 pm »
Trata usando este codigo
if (place_meeting(x, y + sign(y), objPlataforma) && !place_meeting(x, y, objPlataforma) && (y >= 0))
  {
    y += 0;
    break;
  }else if (!place_meeting(x,y + sign(y)))
{
  y += 5
}


PD: No es necesario que pongas y=y+5 , solo debes poner y += 5. Saludos

9
Tambien puedes hacer algo asi y no te va a hacer falta la variable:
//esto va en el evento create
image_speed = 0;

//esto va en el evento step
if (place_meeting(x,y,objBala) && image_index <= 3 )
{
  image_index++;
}
else if (image_index >=3)
{
  instance_destroy();
//aqui pones el codigo que tienes de la explosion y todo eso
}

Espero que ayude. Saludos

10
Preguntas y respuestas / Re:ayuda con saltosxdd
« en: Enero 05, 2020, 02:45:05 am »
hola, estaba haciendo un juego de plataformas y al colisionar con un bloque y saltar se queda atrapado en el aire xd

alguien me ayuda por favor

if keyboard_check(ord( "D")) and place_free(x+2,y)

{
x += v   
image_xscale = 2
image_speed = 0.8
sprite_index = spr_player
}

if keyboard_check(ord("A")) and place_free(x-2,y)

{
x -= v
image_xscale =-2
image_speed = 0.8
sprite_index = spr_player

}
Una pregunta ¿porque la variable image_xscale la tienes a 2 y -2?Asi el sprite se ve mas ancho de lo que es y a menos que quieras que un sprite cuadrado se vea como un rectangulo deberias ponerlo a 1 y -1.
En cuanto a las coliciones deberias poner el codigo que usas para las coliciones no el de movimiento. Saludos

11
Preguntas y respuestas / Re:AtaqueCuerpoaCuerpo
« en: Diciembre 26, 2019, 07:28:32 pm »
Aca te dejo un game basico para que veas como funciona un ataque cuerpo a cuerpo.Saludos

12
Preguntas y respuestas / Re:Ayuda con caja de texto
« en: Septiembre 23, 2019, 05:10:55 am »
Buenas noches. Dependiendo de la manera que uses para los textos debe haber alguna forma de restringir la cantidad que se usa y asi evitar que sobrepase el limite y por tanto no se salga de la consola

13
Preguntas y respuestas / Re:Ayuda Juego RPG por turnos
« en: Septiembre 23, 2019, 01:22:39 am »
Muchas gracias a 3dgeminis y Black_Cat por ayudarme con el RPG. E estado probando diferentes metodos hasta que llegue a el que use ahora. Muchas gracias de nuevo , ahora solo le anadire unas cuantas cosas mas como una contador de vida , que el enemigo pueda atacar y esas cosa.

14
Preguntas y respuestas / Re:Ayuda Juego RPG por turnos
« en: Septiembre 21, 2019, 03:25:55 am »
Lo tengo  asi:

///Ataque
switch (strState)
{
 case "fight":
 //El jugador camina
  numVX = 3;
  sprite_index = sprTomWalk;
 

// cuando coliciona con el enemigo se detiene y cambia a la animacion de ataque
if place_meeting(x+12,y,objEnemigo)
 {numVX = 0

  sprite_index = sprTomAtack;
   }
//detectar cuando termina la animacion cambiar a esta back
if image_index = image_number -1{strState = "back"}
  break;
 
  case "back":
   //caminar hacia atras
    numVX = -3;
    sprite_index = sprTomWalk;   
    //cuaando choca con el objBlock se detiene y cambia a estado idle
    if place_meeting(x-5,y,objBlock)
    {numVX = 0
     strState = "idle";
     break;
}
}

cuando el jugador coliciona con el enemigo cambia a la animacion de ataque pero por alguna razon la animacion se repite  un monton de veces en vez de cambiar al estado back

15
Preguntas y respuestas / Ayuda Juego RPG por turnos
« en: Septiembre 19, 2019, 03:25:50 am »
Hola. hace tiempo que estoy haciendo un RPG por turnos pero estoy trabado en la parte de hacer que el jugador camine hacia el enemigo ataque y luego de que termine la animacion de ataque vuelva a su posicion inicial. E tratado diferentes metodos pero ninguno me funciona ¿alguien sabe como hacerlo ?

Páginas: 1 2