El siguiente script cuando el objecto lo utiliza va directamente a esa posición y me gustaria que no vaya directamente que parezaca que se este moviendo.
(AL COLISIONAR CONTRA EL JUGADOR)
if place_empty(other.hspeed,other.vspeed) {x+=8*other.hspeed y+=8*other.vspeed}}
Utiliza la funcion move_towards_point (x, y, sp) que mueve un objeto a x,y pero con una velocidad sp.
Cita de: noshy en Octubre 23, 2012, 05:14:35 PM
Utiliza la funcion move_towards_point (x, y, sp) que mueve un objeto a x,y pero con una velocidad sp.
Hice esto y el objeto se va a esa direccion pero no para que hago para que luego se detenga?
chequea las variables x , y, cuando sean iguales al punto donde quieres que llegue pornle speed = 0.
saludos
EDITO:
Adjunte un ejemplo, espero te sirva.
Cita de: noshy en Octubre 23, 2012, 05:44:11 PM
chequea las variables x , y, cuando sean iguales al punto donde quieres que llegue pornle speed = 0.
saludos
EDITO:
Adjunte un ejemplo, espero te sirva.
Pero como hago que otro objeto lo pueda empujar(al object0) y chutar?Estuve mucho tiempo estando editando tu ejemplo pero no me sale :'(
No sé si esto es lo que deseas hacer:
Suponiendo que tienes un objeto llamado "pelota" y quieres que el objeto "jugador" modifique el movimiento del objeto "pelota". En el evento STEP de "jugador" escribes
pelota.x += valor_deseado1
pelota.y += valor_deseado2
Obviamente, eso debe ocurrir sólamente cuando el jugador golpea a la pelota, es decir, cuando hay una colisión de la pierna del jugador con el objeto pelota.
si es lo que dice penumbra yo lo que modificaría (mas que "x" e "y") sería la dirección y speed del obj pelota
Cita de: penumbra en Noviembre 05, 2012, 12:00:34 AM
No sé si esto es lo que deseas hacer:
Suponiendo que tienes un objeto llamado "pelota" y quieres que el objeto "jugador" modifique el movimiento del objeto "pelota". En el evento STEP de "jugador" escribes
pelota.x += valor_deseado1
pelota.y += valor_deseado2
Obviamente, eso debe ocurrir sólamente cuando el jugador golpea a la pelota, es decir, cuando hay una colisión de la pierna del jugador con el objeto pelota.
Cita de: pikamaker en Noviembre 05, 2012, 12:57:08 AM
si es lo que dice penumbra yo lo que modificaría (mas que "x" e "y") sería la dirección y speed del obj pelota
repito estoy creando un juego de futbol top down y necesito un script que se utilize para mover la pelota el codigo que uso es:
(La PELOTA AL COLISIONAR CONTRA EL JUGADOR)
if place_empty(other.hspeed,other.vspeed) {x+=8*other.hspeed y+=8*other.vspeed}}
pero este codigo no es relativo es decir la pelota no va a una direccion va saltando a un direccion y eso se nota, lo que necesito es cambiar este script para que al mover la pelota sea relativo es decir que pareza que la pelota se esta moviendo.
Ya veo lo que te pasa.
Desconozco si hay una función en GM que automáticamente devuleva la dirección dependiendo de las teclas que pulses (y su duración), si no existe, tienes que crear una para definir el ángulo con el que dispara el jugador. Tal vez ya tengas ese script, no lo sé, pero que la vista sea top-down ayuda a simplificar las cosas.
Me parece que lo más fácil es usar "tramposamente" la gravedad, para hacer que el balon avance poco a poco al punto de destino. Supongamos que tenemos la variable "angulo" (ángul ode disparo) y "límite" (límite de velocidad para el balón)
other.graviy = 3 //Defines un valor adecuado para la velocidad del disparo
other.gravity_direction = angulo //La dirección del disparo según las teclas presionadas
if (vspeed > limite) or (hspeed > limite) //Evitar que...
{
vspeed = limite //el balón adquiera velocidades...
hspeed = limite //exageradas como en "Los supercampeones"xD
}
Creo que también se pueden usar estas funciones si no deseas usar la gravedad para mover el balón (yo nuca las he usado hasta ahora)
motion_set(dir,speed) Sets the motion with the given speed in direction dir.
motion_add(dir,speed) Adds the motion to the current motion (as a vector addition).
Hay que frenar el movimiento del balón poco a poco, para simular un tiro real
if (vspeed > 0) or (hspeed > 0)
{
vspeed -= friccion //Ajusta friccion a un valor conveniente, según tus necesidades
hspeed -= friccion
}
¿Funciona? Quién sabe ;D