Creo que el problema está en el evento step, probá cambiando keyboard_check_pressed(vk_right) por keyboard_check(vk_right)
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
17
Preguntas y respuestas / image_speed en draw_sprite
Marzo 06, 2019, 02:01:22 AM
Quería saber como se puede variar la velocidad de un sprite usando draw_sprite. Lo logré de la siguiente manera:
Pero no creo que sea la mejor manera de hacerlo, hay alguna otra forma?
Código [Seleccionar]
draw_sprite(spr_player_idle,image_index*image_speed,room_width/2,150);
Pero no creo que sea la mejor manera de hacerlo, hay alguna otra forma?
18
Preguntas y respuestas / Re:Profundidad de Tiles
Febrero 09, 2019, 02:36:55 AMCita de: 3dgeminis en Febrero 08, 2019, 05:58:58 AM
Utiliza tile_layer_find para obtener la id del tile y tile_set_depth para cambiar la profundidad del tile.
Gracias por responder, intento con el siguiente código pero me da error cuando ejecuto
Código [Seleccionar]
var tile;
tile = tile_layer_find(100000, 32, 736);
tile_set_depth(tile, -1000);
EDIT: Ya lo solucioné, me había faltado "if tile" antes de tile_set_depth
19
Preguntas y respuestas / Profundidad de Tiles
Febrero 08, 2019, 02:51:26 AM
Hola, quería saber como cambiar la profundidad (depth) de los tiles, pero no en el editor del Room,ya que si lo hago ahí me modifica el depth de todos los tiles y solo quiero modificar el de algunos tiles solamente, para que se vean delante del jugador y el resto detrás. Lo había logrado hace mucho con codigo pero perdí el proyecto y no recuerdo bien como lo había hecho en su momento.
P.D.: Por cierto, el nuevo diseño de la página esta genial
P.D.: Por cierto, el nuevo diseño de la página esta genial
20
Preguntas y respuestas / Re:problema con distance to object
Diciembre 11, 2018, 04:58:50 AMCita de: Johann en Diciembre 11, 2018, 02:27:48 AM
Esa función no toma en cuenta los ejes por separado sino como un vector.
Debes tomar el componente X del vector que tiene como magnitud el valor que retorna distance_to_object pero necesitas el angulo de inclinación que tiene, lo obtienes con point_direction.
[gml]
var dir = point_direction(x, y, obj_blaze.x, obj_blaze.y)
var dist = lengthdir_x(distance_to_object(obj_blaze), dir);
[/gml]
Gracias por responder. O sea que debería reemplazar el código que habia puesto con
Código [Seleccionar]
var dir = point_direction(x, y, obj_blaze.x, obj_blaze.y)
var dist = lengthdir_x(distance_to_object(obj_blaze), dir);
if dist <= 5
{
//Acción del enemigo
}
21
Preguntas y respuestas / problema con distance to object
Diciembre 11, 2018, 02:13:23 AM
Hola estoy haciendo un beat 'em up y hasta ahora todo bien. El problema es que en uno de los estados de los enemigos, para que se acerquen al jugador y lo ataque uso move_towards_point y luego para chequear la distancia uso el código
Pero sucede que cuando el enemigo se acerca la distancia aplica tanto al eje x como al eje y, y estoy utilizando mascaras de colisiones que son rectangulos en los pies de los personajes, entonces cuando el enemigo golpea lo hace en un eje y diferente al del jugador. Como puedo modificar la distancia para que el eje y sea parejo en ambos (jugador y enemigo)?
Código [Seleccionar]
distance_to_object(obj_blaze) <= 5
Pero sucede que cuando el enemigo se acerca la distancia aplica tanto al eje x como al eje y, y estoy utilizando mascaras de colisiones que son rectangulos en los pies de los personajes, entonces cuando el enemigo golpea lo hace en un eje y diferente al del jugador. Como puedo modificar la distancia para que el eje y sea parejo en ambos (jugador y enemigo)?
22
Preguntas y respuestas / Re:Instancias se superponen entre si.
Noviembre 25, 2018, 02:43:56 AMCita de: Alfacoy en Noviembre 22, 2018, 02:39:25 PM
Niu! Ahora si. Muchisimas gracias.
Es mi primer mes en el Game Maker y armando juegos jaja. Entonces esto me deja en claro 2 cosas:
1 - Que los Timeline crean las instancias sin tomar en cuenta su mascara de colisión.
2 - Que el mejor momento de comprobar si VA A colisionar una instancia es en el CREATE del Objeto. Yo hasta ahora usaba el create sólo para variables del objeto.
Muchisimas gracias enserio :)
En este caso sí era necesario usar el evento create, pero cuando se necesita estar chequeando colisiones constantemente, esto se hace en el evento step
23
Preguntas y respuestas / Re:Hacer que el enemigo te ataque y se aleje
Noviembre 23, 2018, 03:23:41 AM
Podrías usar move_towards_point(jugador.x, jugador.y, 2) por ejemplo. Tendrías que reemplazar "jugador" por el nombre que le hayas puesto al objeto de tu jugador y el 2 por la velocidad que quieras. Y luego tendrías que hacer que se aleje usando hspeed, vspeed o tus propias variables que controlen las velocidades horizontales y verticales. Es una de las formas más simples de hacerlo.
Lo que te recomiendo en el caso que no lo estés haciendo es empezar a programar a los objetos usando estados, te va a ser mucho más fácil hacer este tipo de movimientos, tanto para tu jugador como los enemigos.
En en el caso del enemigo que queres hacer, tendría dos estados: uno para acercarse al jugador y otro para alejarse.
EDIT: Me olvidé de mencionar que también lo que podrías hacer es luego de que el enemigo se acerque al jugador se active una alarma y cuando esta llegue a cero se aleje, luego activas otra alarma para que cuando llegue a cero se acerque y asi sucesivamente.
Lo que te recomiendo en el caso que no lo estés haciendo es empezar a programar a los objetos usando estados, te va a ser mucho más fácil hacer este tipo de movimientos, tanto para tu jugador como los enemigos.
En en el caso del enemigo que queres hacer, tendría dos estados: uno para acercarse al jugador y otro para alejarse.
EDIT: Me olvidé de mencionar que también lo que podrías hacer es luego de que el enemigo se acerque al jugador se active una alarma y cuando esta llegue a cero se aleje, luego activas otra alarma para que cuando llegue a cero se acerque y asi sucesivamente.
24
Preguntas y respuestas / Re:Problema con hp del enemigo
Noviembre 17, 2018, 07:20:24 AM
Era eso! Me estaba considerando el objeto enemigo en general, al cambiarlo a "other" me reconoce cada instancia, gracias!
25
Preguntas y respuestas / Re:Colisión de ataque con enemigo
Noviembre 17, 2018, 07:19:20 AM
Gracias! estaba desarrollando un método parecido pero el tuyo me sirvió mejor
26
Preguntas y respuestas / [SOLUCIONADO] Problema con hp del enemigo
Noviembre 17, 2018, 06:06:53 AM
Lo que ocurre es que tengo un enemigo al que le asigne una variable "hp" en el evento create y cuando el jugador lo golpea este disminuye, pero cuando pongo en el room dos o mas instancias de un enemigo todas comparten el mismo hp. Si golpeo a una instancia y le queda el hp en 3, luego voy a golpear a otra instancia y también tiene el hp en 3.
No se supone que cada instancia de un objeto es individual y que cada una hace uso de su propias variables?
No se supone que cada instancia de un objeto es individual y que cada una hace uso de su propias variables?
27
Preguntas y respuestas / [SOLUCIONADO] Colisión de ataque con enemigo
Noviembre 14, 2018, 05:25:04 AM
:GMS:
Estoy haciendo un Beat 'em up similar al Streets of Rage, y en el momento que el jugador ataque al enemigo tengo un problema: lo que yo quiero hacer es que el jugador solo pueda atacar al enemigo cuando esten alineados en el eje y, lo que hice fue crear un objeto en el sprite de ataque que colisione con el enemigo, como en este video https://youtu.be/vJ6ksNLLFiQ?t=710
La diferencia es que en un beat 'em up el personaje tambien puede moverse hacia arriba y hacia abajo, y lo que sucede es que si por ejemplo el jugador esta en una posición de y más arriba o abajo que el enemigo, este es igualmente golpeado debido a que el objeto que colisiona con el enemigo lo toca. Como puedo hacer para que el enemigo solo sea afectado por el ataque solo cuando el jugador y el enemigo esten alineados en el eje y?
Estoy haciendo un Beat 'em up similar al Streets of Rage, y en el momento que el jugador ataque al enemigo tengo un problema: lo que yo quiero hacer es que el jugador solo pueda atacar al enemigo cuando esten alineados en el eje y, lo que hice fue crear un objeto en el sprite de ataque que colisione con el enemigo, como en este video https://youtu.be/vJ6ksNLLFiQ?t=710
La diferencia es que en un beat 'em up el personaje tambien puede moverse hacia arriba y hacia abajo, y lo que sucede es que si por ejemplo el jugador esta en una posición de y más arriba o abajo que el enemigo, este es igualmente golpeado debido a que el objeto que colisiona con el enemigo lo toca. Como puedo hacer para que el enemigo solo sea afectado por el ataque solo cuando el jugador y el enemigo esten alineados en el eje y?
28
Preguntas y respuestas / Re:¿Página para aprender GML?
Septiembre 13, 2017, 09:33:30 AM
Hola, fijate en Youtube que hay muchísimos tutoriales y muy buenos para empezar a programar en GML, tanto en inglés como en español.
29
Preguntas y respuestas / Re:Consulta sobre "switch"
Mayo 27, 2016, 02:49:25 AMCita de: NiuWeb en Mayo 27, 2016, 02:42:42 AM
No te entiendo bien, pero supongo que lo que intentas hacer se puede escribir algo así:
[gml]
if(keyboard_check_pressed(vk_anykey)) {
switch(keyboard_lastkey) {
case vk_left:
//Mover a la izquierda
break;
//case bla bla bla...
}
}
[/gml]
Jaja si, era medio difícil de explicar, pero eso es exactamente lo que buscaba, gracias!
30
Preguntas y respuestas / Consulta sobre "switch"
Mayo 27, 2016, 02:25:51 AM
Necesito hacer varios "switch" con keyboard_check_pressed, variando en cada caso las direcciones arriba, abajo, etc.
El problema es que usando la variable "keyboard_key" solo reconoce como si se mantenieran presionadas la teclas (keyboard_check) en vez de (keyboard_check_pressed) y no veo otra variable que especifique eso
Como puedo hacer?
El problema es que usando la variable "keyboard_key" solo reconoce como si se mantenieran presionadas la teclas (keyboard_check) en vez de (keyboard_check_pressed) y no veo otra variable que especifique eso
Como puedo hacer?