Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - brunoxzx

511
Cita de: Zeit en Agosto 11, 2011, 04:34:15 PM
Hola, utiliza { } para agrupar los else asi como los for, saludos.
No hay ningun for XD.

y bueno kaliman777 yo solo te puedo decir que para cosas como esa existe el "switch" si no sabes que es busca en el manual.
512
Bueno te hice un simple script para obtener el objeto (argument0) mas cercano que tenga una variable (argument1) verdadera.
[gml]
//argument0 nombre del objeto buscar
//argument1 nombre de la variable
//ej: scr_instance_nearest(objeto,"z")

var retorna, prioridad;
retorna=-4
prioridad=ds_priority_create()
with(argument0){if variable_local_exists(argument1){if variable_local_get(argument1){
ds_priority_add(prioridad,id,distance_to_object(other))}}}

if !ds_priority_empty(prioridad){
retorna=ds_priority_find_min(prioridad)}
ds_priority_destroy(prioridad)
return retorna
[/gml]
513
Preguntas y respuestas / Re: Vectores Normales [3D]
Agosto 10, 2011, 06:19:57 AM
Si, creo que ese es el equivalente (al fin a?adieron point_distance_3d), espero que lo que te di te haya servido de algo.
514
Preguntas y respuestas / Re: Vectores Normales [3D]
Agosto 10, 2011, 05:19:16 AM
Pues bueno la verdad no soy nada bueno para explicar, te dejo como recuerdo que era el c?digo para generar mis terrenos, te pasar?a el c?digo como es, pero cuando intento abrir mi juego gm me da un error que dice que el archivo no existe (que raro, si pierdo ese juego pierdo varias d?as de trabajo) pero bueno aqu? el c?digo as? sabr?s si estas haciendo algo mal.


La verdad no recuerdo mucho sobre como inicie las variables pero lo mas importante esta aqui.
[gml]
for(i=0;i<global.tama?o_x-1;i+=1){
for(j=0;j<global.tama?o_y-1;j+=1){

x1=i
y1=j
z1=z[i,j]

x2=i+1
y2=j
z2=z[i+1,j]

x3=i
y3=j+1
z3=z[i,j+1]

nx1 = (y3-y1)*(z2-z1)-(y2-y1)*(z3-z1);
ny1 = (z3-z1)*(x2-x1)-(z2-z1)*(x3-x1);
nz1 = (x3-x1)*(y2-y1)-(x2-x1)*(y3-y1);
fac1=sqrt((nx1*nx1)+(ny1*ny1)+(nz1*nz1));
nx1 /=fac1;
ny1 /=fac1;
nz1 /=fac1;

normal_x[i,j]=nx1
normal_y[i,j]=ny1
normal_z[i,j]=nz1
}}[/gml]

Bueno ya echo todo eso sigue dibujar mi terreno.

[gml]for(i=0;i<global.tama?o_x;i+=1){
for(j=0;j<global.tama?o_y;j+=1){

//64 es el tama?o de cada cuadrado
d3d_primitive_begin(pr_trianglefan)

d3d_vertex_normal(i*64,j*64,z[i,j],normal_x[i,j],normal_y[i,j],normal_z[i,j])

d3d_vertex_normal(i*64+64,j*64,z[i,j],normal_x[i+1,j],normal_y[i+1,j],normal_z[i+1,j])

d3d_vertex_normal(i*64+64,j*64+64,z[i+1,j+1],normal_x[i+1,j+1],normal_y[i+1,j+1],normal_z[i+1,j+1])

d3d_vertex_normal(i*64,j*64+64,z[i,j+1],normal_x[i,j+1],normal_y[i,j+1],normal_z[i,j+1])
}}[/gml]

Creo que era un poco distinta la manera como se dibujaba el terreno, pero b?sicamente eso es todo, espero que con eso entiendas como va acomodados los valores de las normales en tus modelos.
515
Preguntas y respuestas / Re: Vectores Normales [3D]
Agosto 10, 2011, 02:04:47 AM
Uff bueno te dir? que hace 5 minutos pensaba que si era el mismo vector para los  3 v?rtices, pero luego me puse a escribir el c?digo que usaba para obtener las normales de mi terreno aqu? mismo en el post para ense??rtelo como ejemplo y cuando iba por la mitad me di cuenta de que si, es un vector distinto para cada v?rtice.
516
Preguntas y respuestas / Re: Vectores Normales [3D]
Agosto 10, 2011, 01:16:41 AM
Pues que bueno que ya lo entendiste sin que te explicara mas  :-*.

MM yo creo que los vectores si tienen que estar normalizados (pero no estoy seguro), ya que la expresi?n para calcular la luz iluminaci?n es N*L (N=vector normalizado de tu triangulo) y L es la direcci?n de la luz normalizada.
517
Preguntas y respuestas / Re: Vectores Normales [3D]
Agosto 09, 2011, 11:53:31 PM
Pues yo lo hago usando una operaci?n que se llama cross product (que da como resultado un vector ortogonal a los otros dos (ortogonal es lo mismo que perpendicular pero en 3D)) y con eso ya b?sicamente tienes tu vector echo pero aun nos falta normalizarlo (a un vector se le llama normalizado cuanto tiene 1 de largo como cuando usas esto (lengdir_x(1,direction), para normalizar nuestro vecto lo ?nico que tenemos que hacer es dividir cada uno de sus componentes entre su largo y para obtener su largo usaremos el teorema de pitagoras.

Bueno tengo que hacer una salida de 10 minutos pero voy posteando, cuando llegue explico lo de mas, dejo el script.

[gml]
nx1 = (y3-y1)*(z2-z1)-(y2-y1)*(z3-z1);
ny1 = (z3-z1)*(x2-x1)-(z2-z1)*(x3-x1);
nz1 = (x3-x1)*(y2-y1)-(x2-x1)*(y3-y1);
fac1=sqrt((nx1*nx1)+(ny1*ny1)+(nz1*nz1));
nx1 /=fac1;
ny1 /=fac1;
nz1 /=fac1;[/gml]
518
Preguntas y respuestas / Re: Ayuda(Porfavor)
Agosto 06, 2011, 12:27:52 PM
Pues esto "<" significa "menor que" que creo que te lo ense?an en preescolar, y esto ">" es "mayor que", ej: [gml]if a<30{/*Bla bla bla*/}[/gml] que significaria si a es menor que 30 se hace lo que esta entre los corchetes y es lo mismo con ">" y pues si usas [gml]if a<>30{/*Bla bla bla*/}[/gml] seria si a es menor o mayor a 30 se hace lo siguiente, que seria lo mismo que [gml] if a!=30{/*Bla bla bla*/} // ! significa not[/gml]  con forme a lo de los arrays lee esto http://www.comunidadgm.org/index.php?topic=10502.0 y lo de devuelve el valor a la instancia la verdad no se a que te refieras con eso ?seguro que dec?a eso?
519
Pues como dice el manual gm solo guarda datos basicos y entre ellos no se incluye nada de Xtreme physics, por lo que no existe el "world1", as? que para resolver tu error creo que lo ?nico tienes que hacer es que al cargar tu juego vuelvas a ejecutar el evento create del objeto que crea el "world1".
520
todo bien pero no recomiendo dibujar el cuadrado sobre todo el room, es mucho mejor solo dibujarlo en la view as? que el c?digo deber?a ir as?.
[gml]draw_rectangle(view_xview,view_yview,view_wview,view_hview,false)[/gml]
521
Bueno pues no se por que usan la funcion sprite_assign() que lo que hace es crear una copia del sprite, si lo ?nico que quieren hacer es cambiar de sprite, para es lo ?nico que tienen que hacer es usar la variable sprite_index y asignar all? el nombre del sprite.

Ejemplo
[gml]sprite_index=spr_enemigo_izq[/gml]

y listo as? se cambia de sprite.
522
Que bueno que les sirvi? y que bueno que los 2 aprendieron algo nuevo.
523
Bueno yo creo que seria una mejor soluci?n crear un objeto que sea pariente de los objetos que vas a chequear, despu?s chequear con instance_nearest() cual es el objeto pariente mas cercano.

[gml]instance_nearest(x,y,par_objetos)[/gml]

Si no entendiste dejo adjunto
524
Intenta con instanace_nearest(x,y,obj) que devuelve la ID del objeto de tipo obj mas cercano al punto x e y, algo as? dice el manual.
525
Si, era texto plano cifrado en RC4 de echo lo que hacia el script era simplemente guardar el texto score=20 y despu?s lo encriptaba despu?s en la siguiente linea escrib?a score=20 y lo encriptaba de manera distina de tal manera que los 2 siempre ten?an que decir lo mismo, si no dec?an los mismo te dec?a que has modificado el archivo de texto.

Dejo archivo adjunto, tal vez este muy desordenado por que lo hice a lo r?pido.