|
|||||||||||||||||||
| Foros de discusión » Dlls | Fecha y hora actual: Mar Sep 07, 2010 3:18 am |
![]() |
Sonar.DLL |
| Sonar.DLL |
sr.whiteskull![]() Experto
|
Código de la función Sonar hecha en C
Sonar.CPP
Sonar.RC
|
||||||||||||||||||
|
|||||||||||||||||||
Habatar![]() Moderador
|
El código está interesante. Tengo que repasarmelo cuando tenga más tiempo.
Pero una cosa, ¿para que vale? Tanto tiempo que ya no me acuerdo. |
|||||||
Pasky![]() Experto
|
JAJAJAJA...Habatar...mas matao.
Eso era antes un codigo en DBP para buscar rutas desde un punto A hasta un punto B usando una cuadricula (tabla de nodos) en la que se ha marcado que cuadriculas son transitables y cuales no. Entonces un algoritmo busca el camino mas rapido desde A a B pasando por cuadriculas transitables y evitando las que no. Ese algoritmo desarrollado en DBP era rapido, pero en C ya es la repera. La declaracion de la cuadricula (tamaño) y la marcacion de los nodos no transitables corre por cuenta del programador en DBP. La DLL solo sirve para buscar la ruta. Le falta una cosilla pero ya se la pondremos. Le falta que nos deje en algun sitio la cuadricula a la que hay que dar el siguiente paso. Por cierto, es muy dificil optimizar un codigo en c++, vale? Sobre todo cuando no se sabe C. Aun asi he conseguido bajar bastante los tiempos (no espereis milagros) entre un 25 y 50%. Estoy ahora trabajando en una version mas definitiva y en una demo en DBP mas real de lo que seria una aplicacion de la DLL. Hasta que no haga trabajar a la DLL de seguido, llamandola dentro de un bucle, como se haria en un programa real, no sabre los tiempos medios reales de ejecucion. Hablo de tiempos medios porque he incorporado una variable tipo "register" y dependiendo de que este disponible o no el registro, la rutina tarda mas o menos. Tambien le he dicho al compilador que optimize al maximo la compilacion (a base de toquetearlo todo se va uno enterando de cosas), y eso me hace temer por las compatibilidades. Bueno, cuando tenga algo visible ya lo subo. Tal vez Habatar, sin querer, ha tocado el "quit" de la cuestion. ¿Para que sirve? Tal vez para nada. Tal vez para mucho. Pero era una cuestion que estaba ahi esperando una respuesta. Un reto. La red y los foros de programacion estan llenos de este tipo de rutinas. Cada vez que sacan una dicen que es la mejor y mas facil. Bueno, pues ahora yo digo que esta es la mejor y la mas facil. No me siento culpable de desear mi segundo de gloria (un segundo compartido, por supuesto). Y ademas, y sobre todo, está lo bien que me lo estoy pasando con todo esto. Y aprendiendo. Que el C++ se aprende asi, a tortazos, cuando no hay otros medios. El Pathfinding es como el K2. Y un grupo de al filo de lo imposible de www.darbasic.es ha coronado su cima. He dicho. (Como me gusta lo melodramatico, xD) Hasta lueguito. |
|||||||
Habatar![]() Moderador
|
JaJaJA
Si, ahora ya me he acordado de todo. Estos lapsus que me dan... |
|||||||
sr.whiteskull![]() Experto
|
AH ok... claro... es verdad en las declaraciones, en algunas, puedes poner register, utilizando los registros directamente... cuando estén libres, cierto se gana mucha velocidad Pasky...es q eres un crack optimizando macho... te voy a llevar el coche pa q le saques un par de caballos más...
*sobre todo, gana montón en los bucles... ejem:
|
|||||||||
| una Pregunta tonta. |
Epocem![]() Iniciado
|
Yo soy nuevo en DBPro, estoy entrando en la parte pathfinding, quisiera saber como usar esta dll para mi juego.
El juego es un fps, ya controlo bien las camaras, con ayuda de chafari pude colisionar.... ahora necesito saber como hago para que los enemigos (hechos en 3Ds Max) me busquen y posteriormente me disparen. Si no es mucho pedir, le pido el favor me guien en este campo... ya he visto el radr de sonar, pero la verdad no le he podido atinar a este.... De ante mano gracias. |
|||||||
|
||||||||
DarkSoul![]() Experto
|
Buenas, estoy haciendo algunas pruebas de pathfinding intentando usar varios metodos y combinaciones (en DBpro, nada de dlls). Me gustaría ver el código de Sonar pero el que se hizo primero en DBpro (creo que en un principio se creó en DBpro, ¿no?), si alguien lo tiene por ahí, agradecería que me lo pasara, lo he buscado pero no lo encuentro por ningún sitio.
Un saludo |
|||||||
|
||||||||
Pasky![]() Experto
|
Para DBP aqui esta el codigo, pero no te lo recomiendo, salvo que lo quieras estudiar para pasarlo a otro lenguaje de programacion.
http://www.telefonica.net/web2/paskyprog/rutina4/rutina004.html En ese enlace lo mas util es el manual sobre Sonar, para saber que es y como funciona. Para descargar los ejemplos con la DLL ves a: http://www.telefonica.net/web2/paskyprog/Sonar/Sonar.html Salu2. |
|||||||
DarkSoul![]() Experto
|
Muchas gracias Pasky. Tan solo quiero estudiar el código, estoy intentando "mezclar" varios sistemas de pathfinding, agregando lo mejor de cada uno y tal (un simple experimento) y finalmente si tengo algo de más tiempo, pasarlo a una dll hecha en C++. Sobre lo de que no me recomiendas usar la rutina en DBP, ¿puede deberse a que es lenta? (supongo que sí es así dependiendo el fin con el que se vaya a usar). En fin..., si sigo con el experimento, expondré aquí la dll.
Un saludo y gracias de nuevo! |
|||||||
|
||||||||
| Sonar.DLL |
|
||
|
| Foros de discusión » Dlls | Fecha y hora actual: Mar Sep 07, 2010 3:18 am |