icosist
Newbie
Messaggi: 12
Iscritto il: 21/06/2011, 18:09
Specialità: Programmazione
Contatta:

Screen to Sprite (risolto)

Messaggio da icosist »

Salve! Sto cercando di salvare temporaneamente lo schermo di gioco in memoria (come sprite, background, surface o altro), in modo da poterlo disegnare in seguito. Premetto che nel mio progetto uso la modalità 3D di Game Maker; sapreste dirmi qual'è il sistema più efficace?
Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: Screen to Sprite

Messaggio da guidox »

Esiste la funziona screen_save... la puoi usare così:

Codice: Seleziona tutto

screen_save('test.png');
background_replace(TUOBACK,'test.png',false,false);
Poi puoi eliminare il file successivamente con

Codice: Seleziona tutto

file_delete('test.png');
ma ti consiglio di non farlo subito perché potrebbe non caricarlo bene... ;)
Immagine

Immagine
Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Screen to Sprite

Messaggio da Jak »

salvare su file e ricaricare è veramente una pessima idea specialmente per la lentezza.
Le surface sono fatte apposta per cose come questa(con la versione 8.1 di GM hanno aggiustato le surface nel 3d, se non hai la 8.1 allora forse è meglio se usi il metodo di guidox per compatibilità). Se non le conosci affatto il manuale è la cosa migliore in assoluto :sisisi:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
icosist
Newbie
Messaggi: 12
Iscritto il: 21/06/2011, 18:09
Specialità: Programmazione
Contatta:

Re: Screen to Sprite

Messaggio da icosist »

Purtroppo nel mio caso è fondamentale che il salvataggio dello schermo avvenga rapidamente.
Al momento ho GM 8.0.

Ho già provato con le surface: la mia idea era di impostare il target su una superficie alternativa allo schermo, in modo da poterla copiare facilmente quando necessario. Il problema è che la scena non viene renderizzata correttamente: i poligoni sembrano accavallarsi senza apparente ordine.

Idee?
Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Screen to Sprite

Messaggio da Jak »

icosist ha scritto:Ho già provato con le surfaces: la mia idea era di impostare il target su una superficie alternativa allo schermo, in modo da poterla copiare facilmente quando necessario. Il problema è che la scena non viene renderizzata correttamente: i poligoni sembrano accavallarsi senza apparente ordine.
E' possibile che, poichè hai gm8.0 ti dia quel problema(infatti l'hanno fixato solo dalla 8.1 in poi) ma tanto per dirla... hai pulito la surface con draw_clear() prima di disegnarci sopra?
Mi pare anche che puoi ottenere l'indice surface della finestra di game maker(sì, perchè anche quella è una surface alla fine), controlla se sul manuale cè la funzione apposita ma mi sembra di sì.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
icosist
Newbie
Messaggi: 12
Iscritto il: 21/06/2011, 18:09
Specialità: Programmazione
Contatta:

Re: Screen to Sprite

Messaggio da icosist »

Ho provato a pulirla: stesso risultato. Tra l'altro sul manuale c'è scritto che non è possibile copiare lo schermo su una surface.

A questo punto penso l'unica soluzione sia passare a GM 8.1.
Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Screen to Sprite

Messaggio da Tizzio »

icosist ha scritto:Ho provato a pulirla, stesso risultato. Tra l'altro sul manuale c'è scritto che non è possibile copiare lo schermo su una surface.
A questo punto penso l'unica soluzione sia passare a GM 8.1
esiste una dll che permette di usare le surfaces nel 3d nelle versioni fino a :gm8:
eccola http://gmc.yoyogames.com/index.php?showtopic=454468
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Screen to Sprite

Messaggio da Homunculus »

Ma la funzione background_create_from_screen(x,y,w,h,removeback,smooth) non va bene?
icosist
Newbie
Messaggi: 12
Iscritto il: 21/06/2011, 18:09
Specialità: Programmazione
Contatta:

Re: Screen to Sprite

Messaggio da icosist »

Ti ringrazio! Funziona piuttosto bene (si avverte un leggero rallentamento, niente comunque che possa compromettere la giocabilità).