CHIPMUNK en bennu

Started by Prg, January 12, 2011, 04:27:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Da error de output en el fichero externo al ejecutar.
De momento no quiero hacer mas pruebas, estoy hasta los huevetes xD

Prg

no has intentado compilar y correr los ejemplos oficiales de la libchipmunk? Se supone que usan openGL para pintar y la lib. Si se pudieran probar sabríamos si el problema está en la librería en c o en el módulo de bennu.
En caso de que esté en la libChipmunk pues entonces sería necesario pedir ayuda en el foro oficial.

El emulador que comentaba es para probar las librerías en él y ver la línea que da el problema, para poder rastrear el error. Lamentablemente con lo que me has comentado del error y las pruebas que estoy haciendo, no me doy cuenta de en dónde puede estar el problema, sobre todo porque funciona bien en pc tanto en windows como en ubuntu.

También quiero comentarte que ya tengo compilada la nueva versión de la libchipunk (la versión 6.0 beta) y ya ajusté el código de la mod_chipmunk a esta versión. Aún hay algunas cosas que quiero revisar como un mensaje que me da por consola en el modo debug (han habido muchísimos cambios y la ayuda no está actualizada). Pero antes de pasártela me gustaría saber si el error está en la libchipmunk o en la modchipmunk además de que aún hay cosas que no funcionan en esta nueva versión y quiero corregir los ejemplos de bennu para que implementen alguna de las opciones que suplen lo que ya no está.

Parece que la nueva versión ha optimizado muchas cosas...
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

FreeYourMind

Tomate tu tiempo a finiquitar todo lo que tengas pendiente, despúes cuando todo este OK y completo, con sus ejemplos todos terminados, nos ponemos con los ports y pruebas en las consolas :)

kim-elet-o

Prg no se si darte un beso en la boca, o invitarte a mujeres de moral distraida (mmmmmmh te dare un beso en la boca, que mi economia no esta para excesos...  :D :D :D), bueno al grano, hace tiempo que quiero hacer un pinball en bennu (es que las maquinas del millon o petacos me chiflan un monton), y hasta ahora el mayor problema era simular la fisica de la bola y de los elementos fisicos de la maquina, ya desesperado me he puesto a bucear en el foro, y Oooh Sorpresa!, me encuentro con tu joya que ademas viene de serie en el ppa de josebita, estoy que me salgo de feliz. un Karmazoo de parte mia, y gracias por todo el esfuerzo de portar el motor de fisicas a BennuGD.

:D :D :D :D :D :D :D
|/
|\im-elet-o el yayo programador.

Prg

#349
Hola  :)

Olvidemos lo del beso XD

He comenzado, y casi terminado, el port a chipmunk 6, tengo muchos avances, faltan aproximadamente 2 o 3 funciones por ahí que no entiendo muy bien qué hacen y además necesité eliminar la funcionalidad de dormir los cuerpos con signal(s_freeze || s_sleep..

además se presenta un problema al dormir los objetos con sleep() (función oficial de chipmunk) cuando tocan otro objeto...

Por lo pronto comparto la nueva versión con la nueva versión de la libchipmunk, sobre los problemas que tengo preguntaré en el foro oficial de la librería.

mod_chipmunk de chipmunk 6.0.0
http://www.megaupload.com/?d=XSWK2R6V

saludos
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

karma... no entendi bien lo del avance.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Quote from: Prg on August 11, 2011, 03:59:37 AM
Hola  :)

Olvidemos lo del beso XD

He comenzado, y casi terminado, el port a chipmunk 6, tengo muchos avances, faltan aproximadamente 2 o 3 funciones por ahí que no entiendo muy bien qué hacen y además necesité eliminar la funcionalidad de dormir los cuerpos con signal(s_freeze || s_sleep..

además se presenta un problema al dormir los objetos con sleep() (función oficial de chipmunk) cuando tocan otro objeto...

Por lo pronto comparto la nueva versión con la nueva versión de la libchipmunk, sobre los problemas que tengo preguntaré en el foro oficial de la librería.

mod_chipmunk de chipmunk 6.0.0
http://www.megaupload.com/?d=XSWK2R6V

saludos

muchas gracias por el trabajo que estas haciendo, Se ve muy impresionante! :D KARMA!!
Working on Anarkade. A couch multiplayer 2D shooter.

Prg

#352
Quote from: SplinterGU on August 11, 2011, 04:12:41 AM
karma... no entendi bien lo del avance.
es que esta nueva versión de Chipmunk trajo muchos cambios, y me tocó cambiar muchas funciones (y hacer otras que ya no estaban), entonces hay tres o cuatro funciones que aún me falta implementar o eliminar del api, estoy estudiando qué hacer con ellas, pero no se les extrañará (la mayoría se eliminó debido a que se mejoró internamente la librería para aumentar su velocidad en dispositivos móviles, y si no se eliminaron se cambió el tipo y cantidad de parámetros, así que estudio esto...).

saludos :)

---

Acabo de ver un video de física estilo Jelly, en la versión 6.0.1 ... XD

http://www.youtube.com/watch?v=McvG32qEoSo

revisaré también los cambios que se necesitan para esta versión...

También hay una versión multitouch para iphone

http://www.youtube.com/watch?v=m5nO1bcvyTY

Parece corriendo en un emulador, quizá sea esta la solució para compilar mod_chipmunk para las consolas...

Video de los constraints (qué son y qué forma tienen)

http://www.youtube.com/watch?v=ZgJJZTS0aMM&feature=related

Uso de acelerómetro en iphone y chipmunk

http://www.youtube.com/watch?v=1gqJQiaK82o&feature=related

Un último de deformación de terrenos..

http://www.youtube.com/watch?v=oacZwUGP11c&NR=1
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

Otro puntazo descomunal la librería de física 2D, hacía unas semanas que no me leía el foro entero, pero afirmo que más del 50% de las sugerencias para Bennu 2.0 están cubiertas :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

josebita

Gracias por la actualización :)

Prg

#355
nueva versión... aproveché para cambiar algunas cosas internas, descubrí otras que haré más adelante...

http://www.megaupload.com/?d=HDY5MA5Q

01:21 p.m. 21/08/2011
-se agregan los callbacks
-se cambian los constraints de los procesos a listas ligadas
-se agregan las funciones de eliminación de cuerpos del handler
-se agregan los test 11 a 13 (ejemplos del uso de callbacks)
-se corrigen algunos bugs
-se actualiza a la versión 6.0.1 de chipmunk


faltan por hacer
-función para eliminar shapes manualmente
-Que al cambiar el valor de la local static, se transforme el cuerpo actual a estático.
-shapes internas en listas ligadas (fara facilitar la eliminación manual)

Probada en mi ubuntu y en windows. No se si tengo la última versión de bennu, creo que no. Espero no haya problemas, si los hay avisen y me bajo la última versión.

pd: Recomiendo el test13, muestra cómo crear callback (o algo parecido) para crear objetos unidos por constraints que se rompen (al estilo cuerdas que conectan objetos)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

josebita

Genial, justo hoy he empezado a integrar tu nueva versión en mi rama monolítica.

l1nk3rn3l


Prg

Se me había olvidado comentar.
Desde un callback no eliminen los constraints o los shapes. Normalmente para eso  se usa algo llamado postStepCallback, pero en bennu se obtiene el mismo resultado usando algo como:

[code language="bennu"]process bla(id2)
begin
frame;
//código para eliminar algo del motor
end
[/code]

véase el test 13 para más información

[code language="bennu"]process borraJoint(joint)
begin
frame
     RemoveConstraint(getConstraintFatherA(joint) <>0 ? getConstraintFatherA(joint) : getConstraintFatherB(joint),joint);// esta linea la agrego porque algunos constraints los uní al cuerpo estático del fondo, cuyo id (en los constraints) se maneja como 0.
end

function postSolve(int joint)
begin

// If the force is almost as big as the joint's max force, break it.
if(constraintGetImpulse(joint)/SpaceGetCurrentTimeStep() > 0.9*GETCONSTRAINTF(joint,CP_C_MAXFORCE));
   borraJoint(joint);
end
end[/code]


Otra nota
Los callbacks reciben como primer parámetro un id de una estructura. Esta estructura es memoria dinámica y sólo está al alcance dentro del callback y deja de estar al alcance cuando se ejecuta el callback (la primera vez). Con esto intento decir que no deben almacenar el id en una variable fuera del callback, lo que requieran deben obtenerlo con las funciones adecuadas y almacenarlo en alguna estructura o algunas variables, de lo contrario pueden estar accediendo a memoria que ya se liberó... ustedes saben lo que sucederá... XD

Las funciones que trabajan con el primer parámetro son:

{"GETARBITERCANTCONTACTPOINTS", "I", TYPE_INT, modArbiterGetNumContactPoints},
    {"ARBITERISFIRSTCONTACT", "I", TYPE_INT, modArbiterIsFirstContact},
    {"GETARBITERNORMAL", "IIPP", TYPE_INT, modArbiterGetNormal},
    {"GETARBITERPOINT", "IIPP", TYPE_INT, modArbiterGetPoint},
    {"GETARBITERDEPTH", "II", TYPE_FLOAT, modArbiterGetDepth},
    {"GETARBITERTOTALIMPULSEWITHFRICTION", "IPP", TYPE_INT, modArbiterTotalImpulseWithFriction},
    {"GETARBITERTOTALIMPULSE", "IPP", TYPE_INT, modArbiterTotalImpulse},

    {"SETARBITERSURFACEVELOCITY", "IFF" , TYPE_INT, modArbiterSetSurfaceVelocity},
    {"GETARBITERSURFACEVELOCITY", "IPP" , TYPE_INT, modArbiterGetSurfaceVelocity},
    {"SETARBITERFRICTION", "IF" , TYPE_INT, modArbiterSetFriction},
    {"GETARBITERFRICTION", "I" , TYPE_FLOAT, modArbiterGetFriction},
    {"SETARBITERELASTICITY", "IF" , TYPE_INT, modArbiterSetElasticity},
    {"GETARBITERELASTICITY", "I" , TYPE_FLOAT, modArbiterGetElasticity},
    {"MODARBITERPROCESSA", "I" , TYPE_INT, modArbiterProcessA},
    {"MODARBITERPROCESSB", "I" , TYPE_INT, modArbiterProcessB},

para más información pueden ver el test11 y test12


En breve (espero) la ayuda escrita actualizada... XD

Saludos
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

josebita

#359
Prg, estaba intentando compilar la nueva versión de tu módulo para mi PPA pero me he encontrado con problemas porque el binario compilado me suelta constantes violaciones de segmento, pero la versión .so que incluyes en el paquete me funciona bien....
¿Cómo compilas tú? ¿Hace falta algún flag de compilado en particular?.


PD: Es que el proyecto de codeblocks no me va, tampoco...