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 - DarkKRuleR

436
Preguntas y respuestas / Bordes de sierra en 3D
Enero 19, 2014, 08:04:06 PM
Buenash! Alguien sabe cómo solucionar esto?



es la recta donde colisionan de forma precisa un wall y un floor en un ángulo de 90º. Aparece así cuando lo miras desde ciertos ángulos... éstas son mis inicializaciones:

d3d_start();
d3d_set_hidden(true); //no dibujes lo que no se ve (es tapado por otras cosas)
d3d_set_lighting(true);
d3d_set_culling(false); //clave para ver todas las caras de los polígonos, walls y suelos
d3d_set_shading(true); //iluminacion mas suave
texture_set_interpolation(false); //A TRUE TAMPOCO SOLUCIONA LOS BORDES DE SIERRA
d3d_set_fog(true, c_black, 1000, 1200);
437
WAHH, gracias! Era justo eso! Tenía mal definidas las normales en los muros (pensaba que las puse bien) y me olvidé cambiarlas en suelos y paredes... así se ve perfecto!



aunque no entiendo por qué el muro de la esquina inferior derecha no se ve (el de la izquierda sí). Quizás sea porque su y es mayor que 720, y antes jugué con ese número, pero me lo he mirado bien y no veo razón para que falle... dudo que podáis saber eso, quizás es error mío, o sí es algo que podéis saber, no lo sé. Por ahora la duda principal resuelta, nunca olvidar las normales :D
438
Buenas, pues tengo esto en el objeto controlador, evento draw:

with(objLight) {
    ... ... ...
    for (i = 0; i < 3; i += 1) { //todas hacen luz
        d3d_light_enable(HUD.numLight, true); d3d_light_define_point(HUD.numLight, x, y, 50, xxx, xxx);
        HUD.numLight += 1;
    }
    ... ... ...
}


el controlador hace, para cada objeto objLight, define una luz puntual en sus coordenadas x y. El juego es vista plataformas, así que x y coorresponden a coordenadas 2D prácticamente. Aquí la room:



La vista 3D será igual que como se ve en la room: el personaje es el cuadrado rojo, la luz es el cuadrado azul con la bombilla, y las lineas amarillas delimitan la sala. Aquí la imagen:



Como podéis ver, vemos al personaje, segun la room abajo del todo en el suelo (vemos como el suelo lo corta), y arriba la sala delimitada. El problema? la luz estaba en el centro de la sala, y como véis, al ejecutarlo la luz se situa... bueno, del centro para arriba es lo único que alumbra.

Si le sumo, por ejemplo, 400 a la y, pasa esto:



Parece correcto pero... no tiene sentido sumarle a la y por la cara, debo descubrir por que se le resta la y tanto... alguien le ve sentido? El rango es de 3000 en el caso de la imagen

Antes me funcionaba cuando dibujaba walls y floors con d3d_draw_floor, y comenzó a fallar cuando lo sustituí por primitivas haciendo vertice a vertice trianglestrips en vez de hacer draw de floors y walls, a lo mejor influye... pero la cuestion es que ayer mismo me funcionaba perfectamente.
439
Solucionado cambiando la depth de aquello que dibuja el wall, es decir, el orden en que se dibujan los walls en 3d. Podéis cerrarlo o eliminarlo!
440
Preguntas y respuestas / Re:Cortar una textura
Enero 17, 2014, 07:31:08 PM
Bueno, gracias por todo, pero creo que será mejor hacerlo manualmente. Hacerlo así me obligaria a ir por rectangulos, y quedaria mas realista hacerlo libremente. Algo mas de trabajo pero si lo organizo bien quedará guay. Creo que mejor cerrar esto, pronto vere que tal va :D
441
Preguntas y respuestas / Re:Cortar una textura
Enero 17, 2014, 07:11:14 PM
pues si, sigue sin ir... por ahi dice

Las superficies no funcionan correctamente en modo 3D. Puedes usarlas mientras no estés en modo 3D (llamando a la función d3d_end() antes de usarlas) pero una vez que empieces a usar el modo 3D de nuevo las superficies se destruirán automáticamente.

tambien he probado hacer un d3d_end y un d3d_start, y entre medio asignar al array las texturas obtenidas pero nada...
442
Preguntas y respuestas / Re:Cortar una textura
Enero 17, 2014, 07:00:16 PM
Gracias! He creado un script con ese codigo, lo ejecuto en create, rellenando un array para guardar cada una de las texturas recortadas, y así en draw dibujo cada uno. El problema es que se ve todo el sprite en negro. Será eso de que estando el 3D activado no se pueden utilizat surfaces?
443
Preguntas y respuestas / Re:Cortar una textura
Enero 17, 2014, 06:08:46 PM
Por ejemplo dividir un muro en 10 partes y dibujar cada parte desplazada ligeramente. Con eso obtendría un muro diagonal. Jugando con eso podría dar curvas y todo tipo de efectos, por ello necesito poder partir un sprite en muchas partes rectangulares por código. Las surfaces no se llevan bien con el 3D, voy haciendo pruebas pero por ahora nada
444
Buenas! Pues uso sprite_get_texture para usarla en walls 3d, y mi pregunta es, cómo puedo cortar esa textura obtenida a partir de un sprite, por ej darle 4 coordenadas y que me haga un recorte rectangular. Con eso y un bucle podría, por ejemplo, dibujar un wall aparentemente plano que se vea curvo, haciendo muchos subwalls. Para eso necesitaría poder partir por código la textura, a mano sería para morirse y poco eficiente.

PD: Mirando un poco he visto que con surfaces podría hacerse, pero no tengo ni idea. Estoy mirando tutoriales, si lo logro aviso para cerrar
445
Gracias, era justo lo que me temía (recordé la iluminacion por vertices de clase e hice una prueba)

efectivamente es eso xD me hice dos bucles para dividir cada cuadrado en varios... sigue siendo raro, consume más y las texturas se ven mal... así que estoy condenado a quedarme con lo otro por lo que veo

el personaje no es un modelo, son sprites dibujados con d3d_draw_floor, y los muros marrones tambien son floors

PD: TENGO LA SOLUCIÓN! Fog, niebla. Hace "círculos" perfectos, es genial! El problema es que debería poder marcar las coordenadas de inicio de la fog en el personaje, pero me cuenta la fog en la cámara, y no en el personaje... el centro debería ser él. Estoy mirando, si consigo poner el centro de la niebla en el personaje y no en la cámara podría estar todo solucionado



no se puede poner la niebla como origen del personaje, así que por ahora tengo luces direccionales para luz ambiente, y la niebla hace las sombras para que haya tonalidades distintas. Lo doy por solucionado =D
446
Buenas, tengo lo siguiente:



tengo una luz en un punto con un radio bastante amplio, y las paredes que veis en la imagen son muchos cuadrados juntos. Alguna idea de por qué se ve ese extraño efecto en la luz en vez de verse un círculo de luz?
447
Muchas gracias! Acabo de inicializar el 3D y se ve hermoso, de aquí saldrá algo grande!

sí, tenía casi exactamente la misma cámara, excepto que mi vector de up era 0, 1, 0, obviamente un error (nunca entiendo en que sentido van las y's en el 3D de game maker así que voy por prueba y error).

EDITO: PERFECTO! Tenía problemas sin sentido, hasta que cambié donde tenía y por un 720-y, iba perfecto, pero todo estaba invertido, quité todos los 720... Y VA PERFECTO!! Es raro pero se solucionó todo! Muchas gracias, tema totalmente solucionado! Si esque las y's del 3D de game maker me confunden...

pd. como curiosidad, me va perfecto con:

x = display_mouse_get_x() - window_get_x() - 32*0;
y = display_mouse_get_y() - window_get_y() - 24*0;

tanto si la altura de la camara es 1000 (perfecta) como 2000, la precision es exacta... seguro que es necesario restar un numero?
448
Buenash! Quiero rescatar un viejo plataformas que tengo y le veo mucho potencial. Era en 2D simulando 3D con unos malabares increíbles, y quiero pasarlo a verdadero 3D, que me ahorrará muchos problemas. Ejemplo:



En ese caso el entorno es totalmente en 3D, pero la VISTA es IGUAL que lo que verías en la room. Es decir, hacer el juego en 3D, pero misma jugabilidad 2D, mis personajes serían sprites 2D igualmente, pero fondos 3D. Podría seguir usando la posición del ratón sobre la room? Es fundamental...
449
Preguntas y respuestas / Re:Game maker no reacciona
Septiembre 29, 2013, 01:15:20 AM
Madre! Tras mucho me he dado cuenta, efectivamente el problema era mío!!! Gracias ^^
resulta que tanto yo como el enemigo compartimos objBrazo, entonces el brazo cambiaba la variable de todos los brazos (pensando en que sólo habría los míos) y mis brazos, no afectados por el tiempo parado, afectaban al brazo del rival, por eso sus brazos se movian aun parando el tiempo, porque los mios si se movían y se lo transferían. Y otro error era debido a una cosilla en begin step, pero lo arreglé rapidamente evitando que se ejecutara en el momento de parar tiempo.

Qué cosas tiene la programación, cuando lo vi flipé xD todo es darse cuenta...
450
Preguntas y respuestas / Re:Game maker no reacciona
Septiembre 27, 2013, 07:20:35 PM
No sé yo si subir mi editable para que cualquiera se lo baje... :( llevo bastante trabajo en él

si dices que el error lo tengo yo y no game maker... algo se me escapa entonces? hmmmm