Hola, a ver si alguien me puede ayudar.
Me estoy iniciando en el 3D y como tenia problema con las texturas y demas, tras ver varios ejemplos me decidí por hacerlo asi, que sería mas bien buscando un 5D o 2.5D, vamos como los actuales Marios de Nds:

Personaje principal, create y
d3d_start();
draw_set_color(c_white);

Para iniciar el 3D y en el objeto en cuestion solo:
Draw y:
var tex;
tex=sprite_get_texture(sprite_index,image_index);
draw_set_alpha(1);
d3d_draw_block(x+32,y+32,32,x,y,0,tex,1,1);
d3d_draw_block(x+32,y+32,64,x,y,32,tex,1,1);
d3d_draw_block(x+32,y+32,96,x,y,64,tex,1,1);
d3d_draw_block(x+32,y+32,128,x,y,96,tex,1,1);

Para que utilice el sprite por sus 4 partes y asi de la sensacion de profuncidad. El problema es que al crearlo todo el mundo se vuelve como en un espejo, es decir, el suelo esta en el techo, aunque el personaje cae bien sobre el suelo, es decir lo que seria en todo caso el cielo. Si pongo por ejemplo un sprite con una S, pasa a ser un 5, todo del reves.
A ver si alguien sabria decirme como solucionarlo jeje

Te falta establecer una proyección en el evento Draw con d3d_set_projection o sus variantes.

#2 Septiembre 01, 2015, 07:17:50 PM Ultima modificación: Septiembre 01, 2015, 07:33:12 PM por alvarito8788
Me estoy acercando poco a poco jeje estoy usando el siguiente codigo:
d3d_set_projection ( view_xview +( view_wview / 2 ), view_yview +( view_hview / 2 ), view_wview , view_xview +( view_wview / 2 ), view_yview +( view_hview / 2 ), 0 , 0 ,- 1 , 0 );

El problema es que lo que antes debia estar en la esquina inferior derecha pasaba a la izquierda y del reves como en un espejo, ahora lo que estaba abajo a la derecha se queda abajo pero del reves, el personaje en vez de estar en la parte mas externa del sprite se pasa al mas profundo y el sprite está del rebes, boca abajo.
(AÑADO DOS FOTOS MEJOR PARA QUE SE VEA EL ANTES Y EL DESPUES XD)

En lo que respecta a que los sprites estén boca abajo, ¿consideraste que la posición 0,0 en una proyección corresponde al extremo inferior izquierdo y no al superior izquierdo? Puede ser que necesites hacer un mirror vertical de los sprites. He trabajado muy poco con 3D pero eso es lo que dice el manual en la descripción de d3d_vertex_texture.


Cierto, esa era la opción principal que vi, no la pensé con código, sino haciendo la room del revés y metiendo las texturas invertidas haciéndolas con photoshop para que se viesen bien.
Ahora se me abre otro "frente de batalla" más jeje, es decir, podría o a través del código que me has dicho intentar que todo volviese a su sitio, a ver si consigo que salga todo como en la room lo pongo pero en ese semi 3d,  o a ver si a través del otro código que pase en el mensaje anterior consigo terminar de poner bien la cámara.  Lo cierto es que he seguido investigando un poco con el otro código,  el que pase en el mensaje anterior que llegue a el a través de clamud y me he dado cuenta de que no está del revés sino que la cámara si nos fijamos esta mirando como desde el lado contrario por así decirlo no mira de frente sino de espaldas y con la cámara del revés a la imagen primera, así que el objetivo que tendría que conseguir sería rotar la cámara y hacerle un giro de 180 grados a la imagen... bueno sea como sea muchas gracias por los aportes y ahora que me has dado esa otra opción la estudiaré también :D lo que vaya avanzando y demás lo iré publicando por aquí para que sirva también ya para los demás y podamos seguir ayudándonos y eso ^-^

Hola  :D, yo creo que el problema de los bloques esta en el dibujado:
d3d_draw_block(x_inicial,y_inicial,z_inicial,hasta_ que_x_dibujar,hasta_que_y_dibujar,z_hasta_donde_dibujar,textura,repetir_textura_x,repetir_textura_y);
Viendo tu codigo:
d3d_draw_block(x+32,y+32,32,x,y,0,tex,1,1);
Aqui dice:
Dibujar desde x+32 hasta "x" y desde y+32 hasta "y"

O sea que se dibujara hacia atrás,asi como esta foto:



si lo dibujas con tu codigo: d3d_draw_block(x+32,y+32,32,x,y,0,tex,1,1);
se verá como el cuadro "azul" y si lo dibujas:
d3d_draw_block(x,y,32,x+32,y+32,0,tex,1,1);
se verá como el cuadro "rojo".

Espero que esto te pueda ayudar, Saludos  :D