Hola soy nuevo en el foro. Hace un mes que descubri el game maker y estoy haciendo mi primer juego de plataformas pero tengo algunas dudas.
1. ?Qu? hay que hacer para que el protagonista del juego coja un objeto y luego lanzarlo contra sus enemigos?
2. Otra duda es esta. Me gustar?a que cuando un enemigo este cerca del protagonista ?l le ataque de un espadazo (o cualquier objeto).
Hola y bienvenido a CGM :)
Bueno, una forma de hacer al personaje coger un objeto es definiendo una variable en el create del personaje, digamos:
Objeto personaje->Create
[gml]arrojable=noone
[/gml]
Entonces, si presionamos la tecla 'X', por ejemplo, y si el objeto en cuestion esta suficientemente cerca, hacemos:
Objeto personaje->Press 'X'
[gml]if arrojable = noone { //no tengo otro objeto arrogable en la mano
obj=instance_nearest(x,y,objeto)
if distance_to_object(obj) < 16 then { //se esta suficientemente cerca
arrojable=obj
}
}
[/gml]
Entonces, hacemos que el objeto 'acompa?e al personaje':
Objeto personaje->Step
[gml]if arrojable != noone { //tengo un objeto arrojable!
arrojable.x = x //sumar/restar cantidad a x dependiendo donde llevo el objeto
arrojable.y = y //sumar/restar cantidad a y dependiendo donde llevo el objeto
}[/gml]
Finalmente, para arrojarlo, debes a?adir el sgte codigo al presionar 'X':
Objeto personaje->Press 'X'
[gml]if arrojable = noone { //no tengo otro objeto arrogable en la mano
obj=instance_nearest(x,y,objeto)
if distance_to_object(obj) < 16 then { //se esta suficientemente cerca
arrojable=obj
}
} else { //tengo un arrojable
arrojable.direccion = dir //dir=0 derecha, dir=180 izquierda
arrojable.speed = sp //definir sp segun velocidad de lanzamiento
arrojable = noone //ya no lo tengo
}
[/gml]
Lo demas ya sabras como hacerlo :)
Respecto de lo segundo, puedes checkear la distancia al personaje y actuar, asi:
Objeto Enemigo->Step
[gml]
if distance_to_objet(x,y,personaje) < distancia_de_ataque and espera = 0{
//realizar algun ataque, por ejemplo disparar bala
b=instance_create(x,y,bala)
b.direction = point_to_direction(x,y,personaje.x, personaje.y)
b.speed = sp
espera = 100 //poner espera para proximo disparo
}
if espera > 0 espera =-1
[/gml]
Obviamente debes inicializar las variables correspondientes en el create para que funcione.
Espero que esto te sirva :)
Saludos,
JMG.-
Gracias por la respuesta pero me ha pasado esto y no se como solucionarlo. En mi segunda pregunta, la del enemigo atacando, me sale esto.
FATAL ERROR in
action number 5
of Step Event
for object object260:
COMPILATION ERROR in code action
Error in code at line 1:
if distance_to_objet(x,y,Protagonista) < distancia_de_ataque and espera = 0{
^
at position 4: Unknown function or script: distance_to_objet
Y el otro problema, el de coger un objeto y lanzarlo, cuando le doy al bot?n para cogerlo, el objeto desaparece y cuando quiero lanzarlo pues ocurre esto.
(http://img845.imageshack.us/img845/5374/ranaysusamigos201103112.png)
El objeto que lanza mi personaje aparece en el cielo.
[gml]distance_to_object(x,y,Protagonista) [/gml]
Sorry :-[
En cuanto lo del lanzamiento, no sabria decirte.
Puedes postear el codigo, o mejor, el gmk?
Aqu? tienes el c?digo de lanzar el objeto.
if arrojable = noone { //no tengo otro objeto arrogable en la mano
obj=instance_nearest(x,y,bombona)
if distance_to_object(bombona) < 16 then { //se esta suficientemente cerca
arrojable=bombona
}
} else { //tengo un arrojable
arrojable.direccion = 0 //dir=0 derecha, dir=180 izquierda
arrojable.speed = 10 //definir sp segun velocidad de lanzamiento
arrojable = noone //ya no lo tengo
}