advance()

Discusión en general sobre Gemix.

Re: advance()

Postby CicTec » Sun Apr 04, 2010 8:38 pm

si es asi, creo que pide las coordenadas del primer pixel del mapa SRC que colisiona, a ver si no los confirma.
User avatar
CicTec
 
Posts: 16571
Joined: Thu Jul 31, 2008 10:18 pm

Re: advance()

Postby GINO » Sun Apr 04, 2010 9:24 pm

Si, y si puedes poner una imagen esquematica de lo que quieres (con 2 rectangulos colisionando por ejemplo y el pixel que quieres que se obtenga) mejor que mejor.
User avatar
GINO
 
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm

Re: advance()

Postby SimulatorOne » Mon Aug 16, 2010 8:17 pm

kozka wrote:ejem para la siguiente auque sea de pago o lo que sea xd afer si os acordais la de que collision
devuelva el (x y )del punto de colision entre graficos que
ya lo intente sacar yo haciendo chapucillas :angel:
y os lo comente hace tiempo y tal :angel: :angel:
seria la de dios... xd
:0' :0' :0'
y que os quiero mucho xd
:P


Hola kozka
creo que parte de tu solucion esta en 2 de mis juegos: el mas reciente esta en PYP el de pinball y el otro es el PistaMotors.

Ya que tiene fisicas de colisiones graficas aplicadas, solo usando collision y la combinacion de angle +advance...

por desgracia lo que pides es casi imposible, piensa que cuando hay colision de un grafico a otro, puede sobreponerse mas de un pixel de grafico a la vez, entre los 2 processos.
y tu piensas, que pixel saco??? si hay colision en mas de 1 pixel...

no se que tipo de resultado puede debolverte... una cordenada XY, lo veo imposible,ya que puede colisionar en mas de 1 pixel sobre el grafico. es decir... te devolveria mas cordenadas de esa colision.

depende de la forma del grafico de origen y de colision....

que puede debolverte 1 pixel solo? si es posible, pero no siempre :(

Yo lo unico que se, es que puedes mover ese proceso a nivel de pixel a pixel de 1, con advance(1) o usando cordenadas de XY+=1;
Asi es la unica manera que te devolveria ese pixel deseado de colision, pero depende de la forma del grafico, el angulo, el size,shear,los flags....

---------------------
Mira la unica manera de que sea posible, es que si sabiendo que las colisiones graficas se sobreponen en más de un pixel o solo un pixel.

es que haya un una tabla de variables globales o locales, de 2 dimensiones(XY)
y cuando se produzca la colision que escanea los pixeles sobre espuestos, devolviendo las cordenadas XY respecto a las pantalla(depende del ctype) en un modo 7 eso no funciona U_U. y las almacena en la tabla de variables.

Tabla_colision[X][1]=0,0;

if(ID_col=collision(type objeto));
Tabla_colision[0][0]=X;Tabla_colision[0][1]=Y;//pixel 1
Tabla_colision[1][0]=X;Tabla_colision[1][1]=Y;//pixel 2
Tabla_colision[2][0]=X;Tabla_colision[2][1]=Y;//pixel 2
...
...
end


de momento no se me ocurre la manera de hacer la comprobacion de que pixeles estan sobrepuestos
para llenar esa tabla.(ese codigo es un ejemplo muy sencillo para orientarte)
Asi se puede averiguar que pixeles estan colisionando(sobre espuestos) y que cordenadas X,Y.


Yo con el juego del PYP, llege al extremo de que quieria comprobar a nivel de pixel, la inclinacion del grafico colisionado.
pero no por su angle, no, por el angulo de la bola y comprobaba a nivel de pixel la inclinacion GRAFICA de ese processo.
pero no es preciso...

---------------------

La funcion que pides puede resolver muchos problemas, con un Colision que devuelve todos aquellos pixeles con la cordenada respeto a su ctype,en los pixeles sobrepuestos y que lo actualize en una tabla de 2 dimensiones X/Y
pero no sabria decirte cuanto pixeles podria escanear, depende del grafico.....
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: advance()

Postby SimulatorOne » Mon Aug 16, 2010 8:20 pm

shao wrote:Hola, me sucedio que
queria usar advance desde un proceso y aplicarlo en otro, ese mismo advance, pero por lo que
veo no es posible, ya que no acepta una id en sus parametros, me pasa que tengo un cañon al que tengo que hacerle un retroceso cada vez que dispara y pense en hacer en otro proceso ese mismo retroceso y me encontre con este problema,
al final lo solucione con get_distx y get_disty pero lo que quiero decir es que no estaria mal poder usar "advance" para mover
otro proceso que no sea el que lo use.
Es solo una sugerencia.



Muy bueno!
Ni me hubiera ocurrido.

Aplicarlo tambien ya que estamos en XAdvance();

;)
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 7 guests

cron