Un oggetto persistent SETTINGS tiene tutti i dati relativi
view_wview e v_xview sono fissi a seconda del formato della risoluzione (4x3, 16x9) in modo da mostrare la stessa porzione di livello a chiunque giochi con lo stesso formato.
Detto quest ho provato con
800x600 (4x3)
e
1024x768(4x3)
e sia a schermo intero sia in modalità finestra funziona perfettamente: viene visualizzata la stessa porzione di schermo con risluzione più grande o più piccola.
Per il principio d'induzione suppongo funzioni per tutte le risoluzioni 4x3
MA
appena ho provato una risoluzione 16x9
1600x900
ho ottenuto la finestra grande 1600x900 (tutto ok) con due bande nere e la view grande...boh comunque un formato 4x3
idem a schermo intero.
Posto qui i vari codici, dopo averli sistemati li posterò nella sezione codici per renderli di pubblico dominio:
SETTINGS
CREATE
Codice: Seleziona tutto
ini_open(nomefile)
if not ini_section_exists("Resolution")
{settings_init_resolution()}
res_format=0//ini_read_real("Resolution", "res_format", 1)//0=4x3, 1=16x9
res_w=1024//ini_read_real("Resolution", "res_w", 1600)
res_h=768 //ini_read_real("Resolution", "res_h", 900)
fullscreen=false //ini_read_real("Resolution", "fullscreen", true)
ini_close()
ROOM START
Codice: Seleziona tutto
//Gestione VIEW
view_wport[0]=res_w
view_hport[0]=res_h
window_set_size(res_w, res_h)
if res_format=0
{
view_wview[0]=1024 //4x3
view_hview[0]=768
display_set_gui_size(1024, 768)
}
else if res_format=1
{
view_wview[0]=1184
view_hview[0]=666 //copyright Stefano <16x9
//amici che partono da un numero a caso ed arrivano a 666 quando calcolano il formato
display_set_gui_size(1184, 666)
}
if fullscreen
{window_set_fullscreen(true)}
Codice: Seleziona tutto
draw_text(16, 0, /*"c_view "+*/view_current)
draw_text(16, 12, /*"xv"+*/view_wview[0])
draw_text(16, 24, /*"yv"+*/view_hview[0])
draw_text(16, 36, /*"wp"+*/view_wport[0])
draw_text(16, 48, /*"hp"+*/view_hport[0])
draw_text(16, 60, /*"xv"+*/view_wview[view_current])
draw_text(16, 72, /*"yv"+*/view_hview[view_current])
draw_text(16, 84, /*"wp"+*/view_wport[view_current])
draw_text(16, 96, /*"hp"+*/view_hport[view_current])
e rimane 7 anche dopo aver aggiunto queste righe al room_start:
Codice: Seleziona tutto
for(i=1; i<8; i++)
{view_visible[i]=false}
view_visible[0]=true
Altra domanda:
se imposto la risoluzione di Windows in un formato 4x3 ed il gioco a 4x3 (nello schermo 16x9 risulta stretchato ovviamente) si vede bene, se invece Windows è in 16x9 ed il gioco 4x3 vengono disegnate le bande laterali (fin qui tutto ok) MA c'è un lag orizzontale poco sopra metà schermo, la prima parte è tipo uno step avanti alla metà inferiore... just... wtf
Comunque risolto il primo problema questo nemmeno si pone, nessuno con uno schermo in un formato selezionerebbe risoluzioni in formati diversi xD