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}}
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

Utiliza la funcion move_towards_point (x, y, sp) que mueve un objeto a x,y pero con una velocidad sp.

`•.¸¸.•´´¯`••._.•(Algunos se divierten jugando,)•.¸¸.•´´¯`••._.•
`•.¸¸.•´´¯`••._.•(yo me divierto creando juegos.)•.¸¸.•´´¯`••._.•

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?
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

#3 Octubre 23, 2012, 05:44:11 PM Ultima modificación: Octubre 23, 2012, 06:05:48 PM por noshy
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.

`•.¸¸.•´´¯`••._.•(Algunos se divierten jugando,)•.¸¸.•´´¯`••._.•
`•.¸¸.•´´¯`••._.•(yo me divierto creando juegos.)•.¸¸.•´´¯`••._.•

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  :'(
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

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.
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

#8 Noviembre 07, 2012, 01:34:19 AM Ultima modificación: Noviembre 07, 2012, 01:36:02 AM por penumbra
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