hola a todos

estoy haciendo un juego donde tengo un personaje que se mueve con fisicas, y tengo objetos con fisicas tambien, hasta ahora todo perfecto  :-[

mi problema biene cuando quiero que dispare en direccion al mouse. cuando no utilizo fisicas (no activo la casilla de physics word) utilizo normalmente:
move_towards_point(mouse_x,mouse_y,15); (para que se mueva la bala)
image_angle=point_direction(x,y,mouse_x,mouse_y); (para que se vea en el angulo correcto)

pero si uso las fisicas, esto deja de funcionar  ???
alguien sabe como puedo conseguir lo que quiero??

ah y otra cosa mas...
alguien sabe como hacer para modificar mediante codigo los puntos de colision?? me refiero a esos puntos que podes ubicar manualmente cuando tenes un objeto que utilice fisicas, que el boton dice "modify collision shape"

espero que se entienda y que alguien tenga la solucion, llevo varias horas intentando solucionarlo  :-\

muchas gracias

#1 Noviembre 22, 2014, 02:10:52 AM Ultima modificación: Noviembre 22, 2014, 02:13:21 AM por penumbra
Cita de: gabyT en Noviembre 22, 2014, 01:01:53 AM
pero si uso las fisicas, esto deja de funcionar  ???
alguien sabe como puedo conseguir lo que quiero??
Si estás intentando usar física y no has leído DETENIDAMENTE la sección correspondiente en el manual, te vas a topar con problemas como estos mas de una vez.

CitarSelecting this option will radically change the behaviour of your object when an instance of it is placed in a room, as this switches on the object's physical properties and means that its "traditional" movement and collision functions are no longer valid
Este párrafo indica que las funciones "tradicionales" de movimiento no funcionan cuando se usa fisica. En tu caso, estás usando image_angle. Esta es una variable tradicional que no debe ser usada para física. Hay una variable que hace lo mismo, pero que sí funciona con física: phy_rotation. Variables de física:
http://docs.yoyogames.com/source/dadiospice/002_reference/physics/physics%20variables/index.html

Sobre la forma de la shape, hay distintas funciones.
physics_fixture_set_box_shape
physics_fixture_set_circle_shape
physics_fixture_set_edge_shape
physics_fixture_set_chain_shape
physics_fixture_set_polygon_shape
physics_fixture_add_point

El manual lista un ejemplo para crear un triángulo desde GML
[gml]
physics_fixture_set_polygon_shape(fix_Ship);
physics_fixture_add_point(fix_Ship, 0,0);
physics_fixture_add_point(fix_Ship, -40, 100);
physics_fixture_add_point(fix_Ship, 40, 100);
[/gml]

Hay que tener cuidado con las coordenadas de los vértices, ya que el motor de físicas no admite formas cóncavas

gracias por responder penumbra  :)
estuve viendo el manual que me dejaste y ahora entiendo un poco mas... aunque no entiendo muy bien ingles. aun no logre remplazar la función move_towards_point. no se me ocurre como  ??? 
alguna idea?? tampoco logre cambiar los puntos de colisión.  :-[ seguí el ejemplo que me dejaste, pero daba un error porque no existía la fixture "fix_ship" (o eso creo yo) entonces la cree, al principio del código puse "fix_ship=physics_fixture_create();" y dejo de dar error, pero tampoco funciono, sigue reconociéndome la fixture que le puse manualmente... como puedo alternar las fixtures??
muchas gracias a todos y sobre todo a penumbra que siempre esta respondiendo las preguntas de todos  ;D


ohh muchas gracias clamud, me alegraste el dia  :D ya puedo disparar, y pensar que lo lograste con tan poco codigo... yo en el intento use como 20 lineas y no me funciono!!! jajaja
que bueno es que halla personas que se tomen el tiempo de responder nuestros problemas  :)