Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci riesco

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
go71games
Membro
Messaggi: 74
Iscritto il: 26/07/2012, 10:56
Specialità: grafico
Contatta:

Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci riesco

Messaggio da go71games »

ciao a tutti, sono nella "M" :paura:
vorrei inserire un ellissoide in una room dove ci sono solo oggetti 2D, e utilizzarla come sfondo.

non mi è chiaro se posso utilizzare contemporaneamente oggetti 2D e 3D insieme, perchè l'unico risultato che ottengo è quello di visualizzare l'ellissoide e basta. mi piacerebbe invece che questo si trovasse dietro (come una semisfera) e gli oggetti 2D davanti.
vi posto il codice dell'ellissoide:
CREATE:
d3d_start()
d3d_set_lighting(true)
d3d_set_hidden(true)
z = 0
ground_height = 0
direction_updown = 0
window_mouse_set(320,240)

STEP:
var xchange, ychange;
xchange = point_distance(320,0,window_mouse_get_x(),0)/5
if window_mouse_get_x() > 320
xchange = -xchange
direction += xchange
ychange = point_distance(0,240,0,window_mouse_get_y())/5
if window_mouse_get_y() > 240
ychange = -ychange
direction_updown += ychange
if direction_updown < -89
direction_updown = -89
if direction_updown > 89
direction_updown = 89
window_mouse_set(320,240)

DRAW:
d3d_set_projection(x,y,z+10,x+lengthdir_x(point_distance(x,0,x+lengthdir_x(128,direction_updown),0),direction),y+lengthdir_y(point_distance(x,0,x+lengthdir_x(128,direction_updown),0),direction),(z+10)-lengthdir_y(128,direction_updown),0,0,1)
draw_set_alpha(1)
draw_set_color(c_white)
draw_set_color(c_white)
d3d_draw_ellipsoid(-20,-20,-240,500,500,280,background_get_texture(bac_grid3),32,20,30)
d3d_light_define_direction(1,1,1,-1,c_ltgray)
d3d_light_enable(1,true)
d3d_light_define_direction(2,-1,-1,-1,c_gray)
d3d_light_enable(2,true)

ho copiato questo codice da un esempio online, quindi non ho idea del perchè si veda solo l'ellissoide... :oops:

grazie in anticipo

Avatar utente
mac12
Membro d'elite
Messaggi: 1124
Iscritto il: 18/09/2012, 17:32
Specialità: programmazione
Uso: GameMaker 8.1
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da mac12 »

Premetto che non sono un grande esperto, però secondo me il problema è questo: hai iniziato il 3d, quindi deve essere tutto in 3d. Potresti creare uno sprite con il disegno dell'elissoide e usarlo nel gioco 2d.

go71games
Membro
Messaggi: 74
Iscritto il: 26/07/2012, 10:56
Specialità: grafico
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da go71games »

che tristezza sto forum...
Game Maker può gestire perfettamente oggetti 2d e 3d contemporaneamente.
comunque ho trovato la soluzione, guardando sul forum inglese.
la posto per quelli a cui può servire:
1) fare 2 oggetti per la gestione del 2d e 3d e poi fare 1 oggetto solido 3d.
2)primo oggetto per la gestione:obj_d3d.
eventi per l'oggetto obj_d3d:
CREATE:
d3d_start()
d3d_set_lighting(false)
d3d_set_culling(false)
d3d_set_hidden(true)
texture_set_interpolation(false)
DRAW:
_x = view_xview + view_wview / 2
_y = view_yview + view_hview / 2
d3d_set_projection(_x,_y,view_wview,_x,_y+1,0,0,0,-1)
draw_set_color(c_white)
eventi per l'oggetto obj_d2d
DRAW:
d3d_set_projection_ortho(view_xview,view_yview,view_wview,view_hview,view_angle)

//QUESTO(SOPRA) E' IL CODICE CRITICO, CHE CONSENTE DI USARE UN MIX DI OGGETTI 2D E 3D


e poi mi creo un qualsiasi oggetto 3d, un solido o un modello, con le solite modalità del d3d.
in questo modo, il solido potrà essere usato come sfondo, per esempio, in un gioco a 2 dimensioni.

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da Homunculus »

Soluzione corretta, in realtà game maker lavora SEMPRE in 3d, ma di default ha una proiezione ortogonale che fa sembrare il mondo piatto e quindi in 2D. Il codice che tu hai trovato reimposta appunto la proiezione ortogonale manualmente (d3d_set_projection_ortho) permettendoti di disegnare prima in un mondo 3D e poi di riprendere regolarmente le funzionalità 2D di GM.

OT:
anche se il consiglio é errato, mac12 può benissimo esprimere la sua opinione, non rappresenta il forum quindi non vedo perché per questo etichettare il forum come "triste" francamente.

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da Sla »

che tristezza questi newbie
eppure mi sembra tutto giusto...

go71games
Membro
Messaggi: 74
Iscritto il: 26/07/2012, 10:56
Specialità: grafico
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da go71games »

è VERO scusate per la cafonaggine. il ragazzo che mi ha risposto è un nuovo utente e non meritava la mia brutalità.
scusa ancora e scusate anche voi del forum.

Avatar utente
mac12
Membro d'elite
Messaggi: 1124
Iscritto il: 18/09/2012, 17:32
Specialità: programmazione
Uso: GameMaker 8.1
Contatta:

Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri

Messaggio da mac12 »

go71games ha scritto:è VERO scusate per la cafonaggine. il ragazzo che mi ha risposto è un nuovo utente e non meritava la mia brutalità.
scusa ancora e scusate anche voi del forum.
scuse accettate, l'avevo detto che non ero sicuro("premetto che non sono un grande esperto").
Comunque la prossima volta che rispondo la probabilità di errore sarà minore.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti