simulatorone wrote:
Seguro que los calculos matematicos con Float son super precisos, y la bola se movera de manera casi real!
En realidad casi lo tengo solucionado, pero es ponerse con el sistema float y el mapa de durezas, creo que con esas 2 combinaciones son la leche!
Yo tambien estoy esperando con ansias la nueva Beta de Gemix, traera muchas mejoras y bugs corregidos!
Si, va a beneficiar tu juego con los nuevos calculos FLOAT.
El mes siguiente si sale todo bien como hemos planteado, ya tendreis la beta disponible.
Simulatorone he estado testeando tu pinball a fondo y veo una mejora muy buena para el, me explico:
Las palas que se activan con CONTROL y ENTER en la partida principal, osea, lo que tu controlas para que empuje la bola..
Veo que les falta un parametro vital para el calculo de la inercia añadida a la bola por el golpe contra estas, estas palas, si no es asi me corriges, da la sensación de que cuando pulsas la tecla simplemente cambian de angulo? y se ponen en posición hacia arriba para darle el empujon a la bola, yo te propongo lo siguiente.
En vez de ese movimiento brusco, haz que el efecto final que se va a ver sea el mismo, pero que tengan velocidad exponencial, osea.. que cuando pulsas la tecla se inicie el movimiento con aceleracion X de la pala correspondiente y que durante el movimiento hasta su posicion final la velocidad disminuya, en consecuencia como puedes imaginar esta "VELOCIDAD DECRECIENTE" ha de ser un dato GLOBAL, asi la bola, al colisionar con esta, vera su aceleracion modificada en funcion de la velocidad que tuviera la pala, esto es algo dificil de ajustar, ya que si la bola toca la pala cuando esta esta arriba la velocidad añadida a la bola ha de ser muy poca, por esto, y dado que he currado con Hydraulica proporcional en la industria, te voi a dar unos datos que te van a ser buenos para el ajuste de velocidades y aceleracion de las palas. Ahora mismo te hago la grafica y te la culgo a continuación, creo que si añades lo que te voi a pasar, este juego va a ganar muchisismo en jugabilidad tio.
Dame unos minutos que te hago las graficas de movimiento proporcional faciles de entender y te las cuelgo para que las estudies un rato, veras que tu problema de que parece poco realista se soluciona jeje.
Last edited by erkosone on Sat Aug 28, 2010 10:30 am, edited 1 time in total.
He decidido por echarle mano de nuevo a este proyecto.
Volveré hacer el motor de la física des de 0.
Ya con la ultima versión de Gemix 6.5.2
Despues de currarme el motor(parte) del jugo Sonic de plataformas 2D, Rosie The Rascal.
Estoy motivado y con ganas de experimentar de nuevo, espero no volverme loco como la ultima vez.
hora gemix es mas rapido,potente, estable y tiene un monton de funciones matematicas, FLOAT y DOUBLE!
Tambien organizare mejor las cosas y los menus los rediseñare de otra forma.
pero primero quiero empezar directamente con las fisicas, poco a poco, cosas basicas y poco a poco se ira analizando, probando y experimentando.
Esta vez utilizare 2 metodos: Colisiones, Overlap o FGET_DIST. segun sea necesario, y tambien mapa de durezas RGB.
Y quiero programarlo a 60FPS, por si acaso utilizare esta configuración: SET_FPS(60,1);
Por si hay equipos que no puedan con los 60FPS, pues que al menos hagan FrameSkip.
Usa un motor de colisión entre circulos y lineas, es sencillo y rápido, si no.. será una chapuzada curiosa.
Los códigos los colgué en su día en la sección 'recursos'.
Simplemente tienes que tirar unas lineas en las zonas donde hay colisión, y crear una bola "perimetrizada a lineas" y ya lo tienes, también tienes el código de rebotes con inercia/aceleración/gravedad.
Animo con ello!
no es para nada sencillo , juntar las dos fisicas(fisica entre objetos y fisica de terreno) es muy dificil , eso si simular la fisica de un pinball cojiendo como idea tu sonic, lo veo mas factible.
erkosone wrote:Usa un motor de colisión entre circulos y lineas, es sencillo y rápido, si no.. será una chapuzada curiosa.
Los códigos los colgué en su día en la sección 'recursos'.
Simplemente tienes que tirar unas lineas en las zonas donde hay colisión, y crear una bola "perimetrizada a lineas" y ya lo tienes, también tienes el código de rebotes con inercia/aceleración/gravedad.
Animo con ello!
Física, circle shape. (abierto a mejoras..)
http://www.gemixstudio.com/forums/viewtopic.php?f=103&t=3604
[CODE] Ejemplo de uso simple, Physics2D
http://www.gemixstudio.com/forums/viewtopic.php?f=103&t=3611
[CODE] Simple Verlet Physic´s (física dinámica aplicada)..
http://www.gemixstudio.com/forums/viewtopic.php?f=103&t=3616
[CODE] Collision_Line()
http://www.gemixstudio.com/forums/viewtopic.php?f=103&t=3619
He oido que este tipo de juegos,se usan colisiones Vectoriales, tipo BOX2D
Pero en gemix no tengo ni idea de eso.
Tu lo has intentado de convertir el codigo a gemix, pero necesitaria ayuda para entender tu codigo, me refiero en usarlo
Solo se me ocurre utilizar mapa de durezas, GET_DIST,OVERLAP y cosas tipicas
Naturalmente usare FLOATS o Double segun
Bueno te explico lo que tienes que aprender antes de hacer el pinball, no lo hagas con esos recursos tío.. va a ser algo antinatural.. pero si te funciona bien pues tu mismo, aunque cuando comprendas algo mas de física te darás cuenta que lo mejor es hacerlo de la forma mas natural posible:
Pasos para poder implementar un pinball:
1 - Conocer y entender como funciona un sistema de 'constrains', esto aunque parece algo oscuro y malvado descubrirás que es lo mas sencillo del mundo, se trata sencillamente de crear un objeto a partir de otros objetos básicos como es el objeto 'linea' que cubre todas tus necesidades practicamente.
La forma de implementar tu motor de física dependerá de tus gustos, pero te puedo aconsejar que estudies la implementación de 'Verlet' que es una de las mas claras y básicas, trata sobre comportamientos de objetos a bajo nivel y este tío en especial no explica con formulas muy sencillas "de primaria".
- Una vez entiendas como se traza una linea dados dos vectores(x,y), osea dicho cutremente, cuando sepas trazar trayectorias, ya tendrás el primer paso, luego mira como se aplican la gravedad/inercia/cinética a esa linea, es un poco mas teórico y pesado pero es un cacho carne que se trata bien.
Luego de esto tienes que mirar como unir lineas entre si por sus "puntas?", a esto se le llama en física 'constrain' y es simplemente y llanamente aplicar la cinemática inversa a lineas para que cuando nueves una la otra haga lo que haría en el mundo real, es muy sencillo, se basa en angulos y sin/cos/tan, solo que puede parecer muy difícil por que si no te lo explican bien no te darás cuenta de que casi todos o TODOS los cálculos siempre son repetitivos, y se basan en pasar de angulos en GRADOS a RADIANES, una vez en radianes la cosa es de risa.. sumar y restar angulos XD.. y luego se vuelve a pasar a grados..
Pues cuando tengas tu sistema de constrains montado solo tienes que aprender el siguiente paso, que es las colisiones, empieza por aprender a comprobar la intersección entre lineas en un plano 2D, eso es muy sencillo ya lo verás.. y luego cuando ya sepas ver cuando se cruzan 2 lineas pues simplemente ya te puedes imaginar.. haces objetos con lineas y encima le pones el gráfico que te salga del chichi, todo el motór irá por lineas, y los objetos serán lineas unidas por constrains para formar objetos..