Pasa que soy nuevo en esto de Game Maker y son muchas las opciones que te dan para cada accion o sprite ???
Lo que ocurre es que quiero hacer un juego al estilo Megaman Zero pero no se como hacer para que la espada haga daño...
Me explicaron como disparar y que tengo que hacer su sprite a parte, pero no quiero disparar :-\
y otra duda es si tambien tengo que hacer un sprite de la espada a parte como la del disparo
Porfa, ayuden a este pobre aspirante a Makero :D jejeje
Si podes hacer que dispare es casi lo mismo para la espada solo que esta seguira al jugador de cruzar toda la pantalla.
Este objeto seria el que brinde la colision con los enemigos y seria invisible, y cuando termine la animacion se destruya.
Si ya tenes el sprite de atacando con la espada podes duplicarlo y borrar todo, imagen por imagen, menos la parte de la espada (a Zero no lo precisas solo la espada para la colision), no querras que al atacar la espalda o el pie o la caveza de Zero tambien haga daño :P .
El sprite no tiene porque con los colores, podes rellenarlo de negro ya que solo se usara de mascara de colision.
Cita de: 3dgeminis en Febrero 16, 2015, 04:34:48 AM
Si podes hacer que dispare es casi lo mismo para la espada solo que esta seguira al jugador de cruzar toda la pantalla.
Este objeto seria el que brinde la colision con los enemigos y seria invisible, y cuando termine la animacion se destruya.
Si ya tenes el sprite de atacando con la espada podes duplicarlo y borrar todo, imagen por imagen, menos la parte de la espada (a Zero no lo precisas solo la espada para la colision), no querras que al atacar la espalda o el pie o la caveza de Zero tambien haga daño :P .
El sprite no tiene porque con los colores, podes rellenarlo de negro ya que solo se usara de mascara de colision.
Ya que esta te pregunto, ¿como se podría comprobar la direccion del objeto espada en relacion al player? es decir, si el judador esta hacia la izquierda lo lógico es que el objeto espada tenga un sprite hacia la izquierda. Podria ser con image_xscale=-1 y viceversa, pero la cosa es como comprobaría el objeto espada la direccion del jugador
Si el dibujo original de la espada tiene la misma orientación que el dibujo original del jugador, Y si la espada siempre va a tener la misma dirección del jugador, no es necesario hacer una comprobación, solamente
STEP espada
[gml]image_xscale = obj_player.image_xscale[/gml] Si la espada no está orientada como el jugador, sino al revés, sólamente se agrega un signo "-" menos a
obj_player.image_xscaleSi de todas maneras, se quiere hacer una comprobación de la dirección del sprite del jugador, en cualquier objeto (no sólo en la espada)
STEP del objeto[gml]
var dir_sprite_player = sign(obj_player.image_xscale)
if (dir_sprite_player > 0)
{
//jugador mira a la derecha
}
else
{
//jugador mira a la izquierda
}[/gml]
Cita de: Alejandro4231 en Febrero 16, 2015, 03:56:48 AM
y otra duda es si tambien tengo que hacer un sprite de la espada a parte como la del disparo
Tienes dos opciones
a) Hacer un objeto aparte y asignarle un sprite con la animación de la espada
b) Hacer un sprite de tu jugador atacando con la espada (al momento de atacar, se cambiaría el sprite "normal" del jugador por el de atacar. Al finalizar el ataque, se cambiaría el sprite nuevamente al "normal". Esto no necesita una espada aparte.
Dependiendo del método que prefieras, es el código a usar. Esto es más o menos lo que se debe hacer si se elige a):
[spoiler]Para "disparar" la espada, tienes que crear un objeto espada y agregarle el sprite de la espada atacando (ya sea un sprite de una sola imagen o una animación. Suponiendo que al presionar la tecla "X" atacas con la espada (en el objeto jugador)...
[gml]
if (keyboard_check_pressed(ord('X') )
espadazo = 1
if (!keyboard_check(ord('X') )
espadazo = 0
if (espadazo)
{
if !instance_exists(obj_espada)
instance_create(x + 20*image_xscale , y, obj_espada) //Esto crea al objeto espada
}[/gml]
El objeto espada se debe borrar, de lo contrario va a seguir en la escena todo el tiempo. Suponiendo que es un sprite animado.
EVENTO ANIMATION END del objeto espada
[gml]instance_destroy()[/gml]
[/spoiler]