ciao a tutti, sono nella "M"
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...
grazie in anticipo
Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci riesco
- 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
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.
Spoiler
Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri
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.
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.
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri
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.
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.
- 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
che tristezza questi newbie
eppure mi sembra tutto giusto...
Re: Ragazzi aiuto! ellissoide 3D in un gioco 2D... non ci ri
è 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.
scusa ancora e scusate anche voi del forum.
- 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
scuse accettate, l'avevo detto che non ero sicuro("premetto che non sono un grande esperto").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.
Comunque la prossima volta che rispondo la probabilità di errore sarà minore.
Spoiler
Chi c’è in linea
Visitano il forum: Nessuno e 33 ospiti