Pravidla Ucet
Nepřihlášen

Článek

Menu

Rozlišení pomocí ini
Napsal: NicharCZ
Přidáno: 18.09. 2010

Pomocí tohoto tutoriálu vás naučím, jak měnit rozlišení ve hře pomocí druhého exe souboru, ve kterém bude nastavení.

Napřed bych rád vás ujasnil, o co že tu jde. Vaše hra bude mít dva (.exe) soubory, jeden na spuštění hry a druhý na nastavení té hry. Samozřejmě budete mít i při ruce Vaše dva zdrojové soubory (Dva? Už víte proč.). Po tom už nebudete muset mít nastavení v menu přímo ve hře. Mimo to bude potřeba také (.ini) soubor. Co je to ini soubor se dozvíte zde, nebo zde. Pokud nevíte, kde (.ini) splašit, tak existují dvě jednoduchá řešení. První je, že si přejmenujete textový soubor (.txt) na (.ini). Pro koho je i tento způsob nad jeho schopnosti, tak si ho může stáhnout ode mě se ctí tady. Tak jdeme na to..


Settings a (.ini) soubor

Uděláme si aplikaci s názvem Setting nebo Nastavení/ie, jak chceme. V něm budou tři tlačítka (640x480; 1024x768; fulscreen), která se budou přepínat. Bude aktivní pouze jedno. Podle toho tlačítka se uloží proměnná do (.ini) souboru a potom opět načte přímo ve hře. Podle hodnot se změní nastavení hry, jednoduché ne? :) Napřed editujeme onen (.ini) soubor:

[resolution]
res=1
• resolution je potřebná sekce, bez které by nic nefungovalo
• res je proměnná, pomocí níž budeme měnit rozlišení. Není globální, protože lze ji načíst z (.ini) souboru.

Jde se na zmíněné Settings. Každé tlačítko bude fungovat na stejném principu, který vám zde předvedu. Je spousta variant pro tvorbu tlačítek. Vytvoříme si tlačítko but_01, který bude mít jeden sprite a dva subimages, první matný a druhý zvýrazněný. Co create tlačítka hodíme toto:

activate=false

Do stepu

if activate==true image_index=1
if activate==false image_index=0

if global.resolution!=1 activate=false else activate=true

A do left relased

if (global.resolution!=1) global.resolution=1
• global.resolution je proměnná, pomocí které budeme zapisovat do (.ini) souboru. Protože je to jenom Settings, není třeba optimalizace.

Tohle uděláme celkem třikrát pro tři tlačítka, které se budou přepínat. Jenom u druhého změníme všechny hodnoty týkající se global.resolution na 2 a u třetího na 3. Až budeme mít všechny tři přepínající se tlačítka, uděláme obj_ini_controller a do create:

ini_open("ini_soubor.ini.ini")
global.resolution=0

Do stepu:

if global.resolution==1
ini_write_real("resolution","res",1)
if global.resolution==2
ini_write_real(""resolution","res",2)
if global.resolution==3
ini_write_real(""resolution","res",3)

A do close button v other events

ini_close()

Tím se budou měnit hodnoty v (.ini) souboru podle toho, jaký čudlík byl naposledy aktivní. Zároveň po dalším otevření Settings se čudlíky nastaví na hodnotu, kterou jste si nastavily, protože načítají z (.ini) a podle toho se označují a naopak.



Game - Hra

No a hra samotná, do každého roomu ve hře dejte objekt, třeba ini_controller. Co create se vloží:

ini_open("ini_soubor.ini")

var resolution;
resolution=ini_read_real("resolution","res",0)

if resolution == 1
{
view_hport[view_current]=480
view_wport[view_current]=640
view_hview[view_current]=768
view_wview[view_current]=1024
window_set_size(640,480)
}
if resolution == 2
{
view_hport[view_current]=480
view_wport[view_current]=640
view_hview[view_current]=768
view_wview[view_current]=1024
window_set_size(1024,768)
window_set_position(0,32)
}
if resolution == 3
{
view_hport[view_current]=480
view_wport[view_current]=640
view_hview[view_current]=768
view_wview[view_current]=1024
window_set_fullscreen(true)
}

ini_close()

Tak, to je všechno. Po tomhle by vám vše mělo fungovat. Samozřejmě nikomu nebráním si udělat nastavení přímo v menu, každého věc. Mě se zalíbil tento způsob, který zaručeně funguje.

Časem udělám (.gmk) příklad
Nevím, jak funguje nastavení, při spuštění obou souborů najednou, při přechodu do jiného roomu by se mělo nastavení přenastavit.


By NicharCZ (vzhled článku se mi povedl napoprvé.. :D )
Klíčová slova: ini rozlišení rozlíšenie
 

Komentáře:

Napsal: Kmeto
Přidáno: 20.09. 2010

Pekny navod. Riesenia cez .ini sa mi pacia :)))

Trvalý odkaz

Napsal: NicharCZ
Přidáno: 19.09. 2010

Taky řešení.. Tyhle věci můžeš řešit mnoha způsoby, já představil jeden, který bezpečně zvládám.. Jo, a jinak díky..

Trvalý odkaz

Napsal: DDL Blue
Přidáno: 18.09. 2010

"vzhled článku se mi povedl napoprvé.. :D "

Borec :D

Já to řešil prostě tak, že sem si v menu udělal nastavení, a do globálných proměnných sem si uložil,m jak je to nastavený. S tím, že při vchodu do menu se otevřel ini soubor, a načetlo se to. Celá hra se pak dycky chovala podle těch proměnných...

Trvalý odkaz

Velkej Chytrák
Copyright (c) 2001-2010