Foros - Stratos

Stratos => Flash/Flex => Mensaje iniciado por: peplos en 15 de Febrero de 2013, 01:38:25 PM

Título: Flashpunk distancia entre 2 entities
Publicado por: peplos en 15 de Febrero de 2013, 01:38:25 PM
Hola. Por desgracia la página de flashpunk ha desaparecido o no se que pasa con ella.

Tengo el problema de que quiero calcular la distacia de 2 entities (jugador y enemigo).
Para cuando el jugador este cerca del enemygo, este dispare o se mueva... esas cosas

¿Como lo haceis? He estado intentandolo con metodos estaticos, pero no lo consigo.
Y me parece una locura meter un objeto de tipo enemigo o jugador en el otro...

quizas lo estoy calculando en un lugar no adecuado.....

Gracias :)
Título: Re:Flashpunk distancia entre 2 entities
Publicado por: Elthan en 19 de Febrero de 2013, 09:59:45 AM
Yo es un tema que siempre me pregunto si estoy haciendo bien. Normalmente lo que hago es declarar una variable estática que continene al personaje en la clase principal/main de tu proyecto. El problema habitual que te encontrarás es que tienes que asegurarte de declarar las variables estáticas antes de que dichas variables sean utilizadas en ningún sitio. Recuerda, el PJ puede ser declarado como variable estática pero la clase que lo defina no tiene por que serlo.

En cuanto a flashpunk ni idea, pero la distancia puedes calcularla usando el manido teorema de pitágoras o simplemente tirar de la función distance de la clase flash.geom.Point.
Título: Re:Flashpunk distancia entre 2 entities
Publicado por: peplos en 19 de Febrero de 2013, 06:48:30 PM
Ok. gracias.

Con metodos estáticos no puedo, porque tanto el jugador como los enemigos los saco de un fichero XML y por lo tanto van a una lista dinamica que contiene el "tipo" (pero no la clase) y las coordenadas.

Con point, me pasa el mismo problema. que no tengo donde declarar un objeto del tipo "enemy" o "player" ya que lo saco del XML que hace el OGMO Editor.

Pero gracias por el cable. es todo lo que se me habia ocurrido a mi :D

Seguire con ello :)

ACTUALIZO-------------------------------------------------------------------------------------
Ya tengo el codigo. para quien le interese

import flash.geom.Point;

distancia = Point.distance(player.getPoint(), enemigo.getPoint());

distancia de tipo number. y getPoint es una funcion (metodo...) que devuelve un punto.
distance es un metodo estatico de Point.

Vamos, que lo que intentaba hacer, ya estaba inventado.

Al menos funciona en un entorno de laboratorio (creandome los objetos a mano)
a ver como funciona descargando el XML que genera OGMO.

Thanks por todo el mundo que ha echado un ojo al post ;)