Pero lo que mas te recomiendo es que aprendas C++, por que en ese lenguaje tienes todo esto por toda internet bien explicado, una vez que sepas C++ y entiendas algún ejemplo no te costará mucho trabajo traerte el ejemplo a gemix, yo aprendí c++ y luego monkey y ahora puedo traerme cualquier código "salvando las diferencias por que monkey es oop" a gemix, y eso me hace feliz XD..
Deberías plantearte ya que con el nivel que tienes necesitas dar el siguiente paso.. no pierdas mas tiempo, decidete y para unos meses para comer algunas galletas de c++, sin eso vas a ir a ciegas toda la vida
lo siento pero es que no me entero de nada, prefiero ir experimentando poco a poco, intentar simular un comportamiento bueno de la bola.
lo que si me dado cuenta mirando los PRG de este proyecto(del año 2010), que no esta NADA obtomizado, y el codigo es muy muy rebuscado y liante. Ademas consume una burrada de memoria ram.
ademas usando Gemix.... 5.7 y 6.0 beta .... dios >_<
quiero que prueben este primer test de Colision de la Bola contra paredes de CUALQUIER FORMA ANGULO TAMAÑO.
De momento esta en fase de pruebas, mejoras y correcion de bugs. En este test, simplemente haremos caer 1 bola des del oyo, caerá hasta toparse con una de las 2 paredes.
Una de las paredes se puede mover usando el teclado, mover,angulo y el tamaño.
Añado en el test distintas formas de Paredes que pueden probar...
El objetivo de este test es ajustar y corregir la colision Vertical Y sobre las paredes(o objetos duros,por ejemplo un fliper)
Se que este test es pobre, pero es que lo estoy programandolo des de 0.
Y actualmente tengo preguntas acerca del ORDEN de Correcion de cordenadas XY al colisionar con las paredes: -Que se debe ajustar primero las cordenadas X o Y???
-Las piezas de paredes pueden mover la bola? Plataformas moviles, paredes, puertas y Flipers. Actualmente funciona a suerte de que cuando movemos la pieza, la bola se mueve junto con ella... pero de momento en vertical Y
Algunas veces este test, puede fallar las colisiones... y la bola atraviesa el objeto de manera erronea...
De todas formas de momento estoy probandolo de este metodo un tanto Brusco por COLLISION(se que es la cosa mas lenta) , gracias a esto me permite averiguar una colision con Paredes con formas. En cambio si lo hubiera echo con OVERLAP (podeis modificarlo en el PRG) NO puede detectar las formas, pero si el Angulo,Size,shear y flags...
Puede que al final, para que me sea mas sencillo la programacion, y tenga que sacrificar las paredes con Formas, es posible que llege a usar Mapa de Durezas... creo que es mucho mas rapido a la hora de comprobar... ademas que me chiva del color RGB de las colisiones por color MAP_GET_PIXEL.
Segun el juego de Megadrive de Virtual Pinball, solo hay paredes con angulos concretos: [0],[22.5],[45],[67,5],[90] y el tamaño de las paredes es el mismo. Recuerdo que me estoy basandome en las fisicas de este juego:
You do not have the required permissions to view the files attached to this post.
Tiene muy buena pinta: pues la verdad es que graficamente no es nada, lo importante es que pueda currarme las fisicas.
la fuerza de la gravedad ya la tiene en Y vertical. El problema que que las colisiones no son precisas, aun que quisiera u_u y por eso algunas veces la bola se traspasa el muro por error.
colision con mas bolas(si lo quieres complicar): mmmm... es muy complicado, ademas que antes deberia terminar con las fisicas de la bola xD
Aun no hay inercias de pendientes, esa info la tiene que obtenerla de la Pared que colisiona, obteniendo un Angle de esa pared o/y direcion de velocidad XY.
Depende de la Direcion de la Bola. Actualmente lo muevo por cordenadas XY(Float), en Angle no uso de momento...
Es decir, que hay 2 velocidades: XSP (horizontal), YSP (Vertical)
Si la bola va a: XSP=0 YSP=10; quiere decir que va Hacia abajo en un Angulo de 90º con esta funcion me averigua ese Angulo de direcion de la Bola.
y lo multiplico por 1000, para obtener mayor precision del angulo.
una vez sabido el angulo de la bola, en cuanto colisiona con una pared... la pared tambien tiene un Angulo. Esto se calcula el Angulo de la Bola + el Angulo de la pared... y se hace el Nuevo Angulo de Destino/Rebote de la Bola Ese Angulo se debe convertirse en nuevos valores XSP (horizontal), YSP (Vertical). un ejemplo grafico:
y con varios angulos de paredes y angulos de trayectoria de la bola diferentes:
Lo que si, necesito Averiguar es la Velocidad de la Bola Pero en una Variable Float VEL.
Esto deberia obtenerlo calculando XSP (horizontal)entre YSP (Vertical). calculamos XSP=0 YSP=10; >> es igual a: VEL=10; PEro no es lo mismo que esto: calculamos XSP=10 YSP=10; >> es igual a: VEL=10; mal! NO es lo mismo, ya que se esta moviendose en Diagonal a una distancia diferente.
y luego tengo un futuro problema y no se si es posible solucionarlo u_u Como es posible ajustar la colision en esos puntos... cuando la bola tiene un punto central de cordenada y un radio.
You do not have the required permissions to view the files attached to this post.
una cosa te digo ,otra vez, si vas a tratar de hacer unas fisicas realistas y buenas,te vas a encontrar muchos problemas . pero si es lo que quieres hacer adelante. pero si lo que quieres es hacer un juego tipo pinball ,no te comas la cabeza demasiado y resuelve los problemas como hiciste con el sonic y como habias comentado con angulos estandar por colores o algo asi., y cosas asi.
Otro Test, y solo con primitivas graficas, no hay collision, solo detecta el color de fondo de pantalla con GET_PIXEL Aqui no se puede mover el suelo de abajo, es pintado como fondo de pantalla.
Pero de momento hay 2 pruebas, pulsen Espacio para probar con la pared diagonal y otra la recta. Esto es simplemente para comprobar la colision y que no la traspase aun que valla la bola a mucha velocidad, jamas se la traspasará