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

Páginas: 1 2 3 ... 15
1
Saludos ElKopiraih

Te sugiero que uses la funcion "point_direction"
var range, dirPlayer, colPlayer;
range = 128;
dirPlayer = point_direction(x, y, obj_player.x, obj_player.y);

if collision_line(x, y, x+lengthdir_x(range, dirPlayer), y+lengthdir_y(range, dirPlayer), obj_player, 0, 1)
  // Si esta en una direccion por debajo del
  if (dirPlayer > 225 && dirPlayer < 315) {
    direction = dirPlayer;
    speed = 4;
  }

2
Preguntas y respuestas / Re:Problema con barra de salud vertical
« en: Febrero 03, 2021, 10:36:00 pm »
draw_sprite_part(spr_barra_vida, 0, 0, sprite_get_height(spr_barra_vida)-vida, 16, sprite_get_height(spr_barra_vida), x, y)
Prueba con eso

3
Preguntas y respuestas / Re:Problema con barra de salud vertical
« en: Febrero 03, 2021, 09:24:26 pm »
var stretch;
stretch = vida/maximo*32

draw_sprite_part(spr_barra_vida, 0, 0, top, 16, sprite_get_height(spr_barra_vida), x, y);

Saludos OmarMakero
Para que tu barra de vida vaya de arriba para abajo, sugiero que en vez de manejar el height, manejes el top. Recuerda que esos 2 argumentos del draw_sprite_part() son totalmente distintos, por ejemplo:
-El top es por donde empieza
-El height es hasta donde se coje del sprite verticalmente

Si lo que quieres es que vaya para arriba, entonces necesitas cambiar el punto donde empieza y bajarlo

Prueba cambiando el top

4
Preguntas y respuestas / Re:Cambio de sprites con el mouse
« en: Febrero 03, 2021, 02:52:25 pm »
Saludos Clamag

Podria preguntar de que forma mas exacta lo hiciste? Podrias hacerlo de la siguiente manera
/// Event Step
switch(floor(point_direction(x, y, mouse_x, mouse_y)/90) {
   case 0:
     sprite_index = spr_player_right;
     break;

   case 1:
     sprite_index = spr_player_up;
     break;

   case 2:
     sprite_index = spr_player_left;
     break;

   case 3:
     sprite_index = spr_player_down;
     break;
}
Claro... esa manera solo serviria si quisieras enfocar los sprites segun el mouse. Podria preguntarte de que forma exacta quieres cambiar el sprite, pues puede que quieras hacerlo con ocho direcciones, o bien podria ser que tratases de hacer un TDS Shooter en el que el angulo cambia:
/// Event Draw
draw_sprite(spr_player, image_index, x, y, image_xscale, image_yscale, point_direction(x, y, mouse_x, mouse_y), image_blend, image_alpha)
Pero seria de mejor ayuda saber cual es el tipo de efecto al que quieres llegar

5
Preguntas y respuestas / Re:Un objeto a veces aparece y a veces no
« en: Enero 22, 2021, 08:26:59 pm »
La función distance_to_point suele no funcionarme correctamente a veces, prueba
Dist = point_distance(x, y, objetivo.x, objetivo.y)
Bueno quizas ayude o quizas no. Puedo preguntarte si el objeto que debe seguir el objetivo ya esta colocado en la room o lo creas por medio de un instance_create()?

6
Preguntas y respuestas / Re:Un objeto a veces aparece y a veces no
« en: Enero 22, 2021, 07:06:43 pm »
Saludos OmarMakero

Creo que deberias ajustar esa parte del evento create y evento alarm[0] en donde añades un objetivo, pues si existen los dos objetivos este se ira con el ultimo que se asigna (osea el segundo)
if instance_exists(obj_llave)
  objetivo = obj_llave
else // aveces es necesario añadir un else
if instance_exists(obj_escalera)
  objetivo = obj_escalera
Bueno no se si ese sea el problema pues esos son los eventos del objeto, a lo mejor esta saliendo mal en la parte donde creas el objeto que debe seguir un objetivo

7
Preguntas y respuestas / Re:Fondos de escenarios animados
« en: Enero 21, 2021, 06:41:46 pm »
Saludos OmarMakero

Existen varias formas de hacerlo pero depende del tipo de escenario que tengas en mente, yo uso un truco que conlleva arrays
/// Event Create
bg[0] = bg_0;
bg[1] = bg_1;
bg[2] = bg_2;
bg[3] = bg_3;

bg_numb = 4;  //numero de backgrounds
bg_index = 0;  //indice del background
bg_speed = 0.25;  //velocidad en la animacion
/// Event draw
// Animación del background
bg_index += bg_anim;
if (bg_index >= bg_numb)
  bg_index = 0;

draw_background(bg[floor(bg_index)], x, y)
Y ya en el evento draw pongo un draw_background y hago que dibuje la array. Ya con eso puedes tener un escenario animado, y tambien sugiero que mantengas los valores de "bg_speed" entre 0 y 1

8
¡Wow! Me sorprendio un poco la noticia

Primero quiero repasar que esa noticia no es tan mala, y es que hay varios puntos a nuestro favor

Como yoyogames ha sido comprada por un navegador tan conocido como opera, eso significaria un alcance a nuevas puertas, me refiero que ahora que yoyogames es propiedad de opera eso haria que le dieran un mayor soporte para juegos onlines. Quien sabe, a lo mejor y ahora puedan añadir mas cosillas al GameMaker. En lo personal, a mi me gustaria que añadieran algunas cosillas

Bueno... Que GameMaker sea integrado a un navegador puede sernos algo dificil, ya que si fuera ese el caso entonces solo podriamos tener acceso a el con wifi, pues hay algunas personas que tienen GameMaker ya comprado y que no tienen conexión a internet; pero tambien puede que dejen de venderlo ya que si lo integran a un navegador seria algo tosco el tener que pagar y solo usarlo con un interner bueno, en mi mente no me gustaria toparme con esa posibilidad

Y... ¿Que pasara con los que ya lo compraron y lo usan en escritorio? ¿Van hacer una actualizacion y a chequear todas las cuentas para distribuirlo nuevamente o no? Eso tambien me seria un problema

Bueno yo no me preocupo mucho por eso ya que uso la version 8 del GameMaker, pero si hicieran un cambio con el GameMaker y pusieran un precio mas bajo entonces para mi seria algo indiscutible

Bueno, ya veremos que hara Opera y como influira eso en GameMaker

9
Podrias usar el primer ejemplo que te di y hacer lo siguiente:

1-Seleccionas un lugar donde guardar la captura
2-Ves en que manera esta puesta la ruta, pues recuerda que
draw_text(32, 32, "Ruta del sprite seleccionado: "+file)
Ese pequeño testeo te indica en que ruta/directorio se guardo la captura y de esa misma forma podrias ver la ruta del directorio donde se guardo. Asi para la proxima solo tendrias que memorizarte esa ruta y utilizarla al guardar captura sin tener que salir ese apartado visual

10
OmarMakero buena sugerencia, pero no deberia ser
if !foto
Sino:
if (foto != "") screen_save(foto);
Pues esas funciones solo devuelven cadenas

11
Saludos Alemar5

Te puedo indicar como funciona el "get_open_filename()", esa funcion solo sirve para seleccionar un archivo que se encuentra en tu disco duro, por lo que no hay una ruta definida en la que buscar los archivos.
/// Event Create
file = get_open_filename("Selecciona una imagen de tu dico duro |.png|.jpg|.bmp", "")
sprite = sprite_add(file, 0, 0, 0, 0, 0);

/// Event Draw
draw_text(32, 32, "Ruta del sprite seleccionado: "+file)
draw_sprite(sprite, 0, 48, 32)
Puedes usar ese codigo para probar la funcion. Ahora creo que para la funcion de get_save_filename() necesitas tener algun archivo en la pestaña de include_files (nose si esa pestaña exista en versiones posteriores a GM8)

12
Preguntas y respuestas / Re:como hacer mover un objeto
« 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

13
Preguntas y respuestas / Re:Efecto Parallax
« en: Enero 15, 2021, 04:10:04 am »
Una solucion mas basica no seria...:
if (abs(vspeed) > 0)
  background_y -= sign(vspeed);

14
Preguntas y respuestas / Re:Bloques que reaparecen al azar por la room
« en: Diciembre 01, 2020, 07:55:54 pm »
Nose porque este fallando, intenta cambiar el 10 por un 11, aunque si no es eso lo que falla, entonces intenta de este otro metodo
/// Donde sea que lo hayas puesto
if !instance_exists(obj_bloque)
{
  var i, posx, posy;
  i = 0;
  repeat(10) {
    posx[i] = (irandom_range(32, 416)/32)
    posy[i] = (irandom_range(32, 160)/8)
    if (i > 0) {
      while(posx[i] == posx[i-1])
       posx[i] = (irandom_range(32, 416)/32);
      while(posy[i] == posy[i-1])
       posy[i] = (irandom_range(32, 160)/8);
    }
   instance_create(posx[i], posy[i], obj_bloque)
    // Aumentar indice
    i += 1;
  }
}

15
Preguntas y respuestas / Re:Bloques que reaparecen al azar por la room
« en: Diciembre 01, 2020, 06:41:52 pm »
Saludos Zhekken

Para resolver tu primera duda, sugiero
que cambies tu codigo por el siguiente
/// Donde sea que lo hayas puesto
if !instance_exists(obj_bloque)
{
  var i, posx, posy;
  i = 0;
  repeat(10) {
    posx[i] = random_range(32, 416)
    posy[i] = random_range(32, 160)
    if (i > 0) {
      while(posx[i] == posx[i-1])
       posx[i] = random_range(32, 416);
      while(posy[i] == posy[i-1])
       posy[i] = random_range(32, 160);
    }
    with(instance_create(posx[i], posy[i], obj_bloque) {
      if !place_snapped(32, 8)
      move_snap(32, 8)
    }
    // Aumentar indice
    i += 1;
  }
}

Páginas: 1 2 3 ... 15