Letní akce! Lákají tě IT školení C#, Javy a PHP v Brně? Přihlas se a napiš nám do zpráv kód "BRNO 500" pro slevu 500 Kč na libovolný brněnský kurz. Lze kombinovat se slevami uvedenými u školení i použít pro více kurzů. Akce končí 28.7.

Hra s dvěma a více jazyky.

Ostatní jazyky GameMaker Ostatní Hra s dvěma a více jazyky.

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Jako první vytvořte nový projekt a přidejte 3 sprity.1 sprite bude znázorňovat hráče,druhý sprite bude znázorňovat vlajku česka a třetí sprite bude zázorňovat vlajku GB(velká británie). Pak vytvoříme nový script a do něj napíšeme:

switch (global.language)
{
    case "cs-CZ":         //Přepína do cs verze
        return argument0;
    break;

    case "en-GB":        //Přepíná do en verze
        return argument1;
    break;

}

A script uložíme pod jménem script_language. Jako další vytvoříme objekt hráč. Přidáme event create a z záložky control execute code(šedý papír bez šipky) a do něj:

switch (global.language)
{
    case "cs-CZ":
        hello = "Dobrá práce!Už ti zbývá pouze projít do brány a výhra je tvoje!";
//zobrazí text v češtine.
    break;

    case "en-GB":
        hello = "Good job! It remains only to pass through those gates and to win is yours!";//zobrazí text v angličtině.

    break;
}

Jako další přidáme event key press a left button. Pak opět execute code a do něj

show_message(hello);//zobrazí zprávu hello(viz. víše)

To máme s objektem hráč hotové.

Jako další vytvoříme objekt cz a sprite přidělíme vlajku cs. Pak přidáme event key press a left button a z control set variable (šedý čtverec) a napíšeme.

do variable: global.language a do value: "cs-CZ"

Pak dejte ok a do left button přidejte go to next room.

Pak stejným způsobem vytvoříme i anglickou verzi ale změna bude v set variable v value nebude "cs-CZ" ale "en-GB"

Pak již stačí vytvořit 2 místosti a do 1 dáte vlajku cz a en a do druhé dáte objekt hráče. Doufám že tutoriál vám pomůže s vícejazyčnou hrou.


 

Stáhnout

Staženo 317x (14.83 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

 

Článek pro vás napsal jakub
Avatar
Jak se ti líbí článek?
4 hlasů
Autor se věnuje programování v HTML,CSS a nově i v jazyce LabView
Miniatura
Všechny články v sekci
GameMaker - Ostatní
Miniatura
Následující článek
Mandelbrotova množina v Game Makeru
Aktivity (1)

 

 

Komentáře

Avatar
gamesis
Redaktor
Avatar
gamesis:19.4.2012 23:03

Zajímavě řešené :) Ale podle mého názoru trochu "zbytečně dlouhé" Ale to už je věc zvyku.
Osobně bych třeba místo "switch" používal IF (přece jenom "switch" zabere víc místa v kódu a když už bych ten přepínač používal, variabilní "global.language" bych si nevolil string ale integer (nebo real) 1=cz; 2=en; ...
Ale jak řikám, je to jenom o zvyku :) Jinak pěkný tutoš ;)

 
Odpovědět 19.4.2012 23:03
Avatar
jakub
Redaktor
Avatar
Odpovídá na gamesis
jakub:20.4.2012 12:34

Dk za radu,ale jak říkáš, je to o zvyku a já ssem an tohle navyklí :)

Odpovědět 20.4.2012 12:34
Uvnitř jsou všichni stejní...
Avatar
Kešu
Redaktor
Avatar
Kešu:30.8.2012 21:47

Já osobně používám na všechny texty externí textové soubory, je to daleko rychlejší.

Odpovědět  +1 30.8.2012 21:47
All your base are belong to us!
Avatar
Andree Pyro
Redaktor
Avatar
Andree Pyro:5.8.2017 21:41

Já jsem si např. vytvořil metodu (script) getText, do jehože parametru se vždy zadalo jen id stringu. Zde byly definované všechny texty ve všech jazycích. Díky tomu jsem do kódu vždy jen napsal tuto metodu a o to, jaký string to vrátilo, se postarala již metoda sama. Zejména mi to ušetřilo spoustu místa :)

Příklad metody:

stringID = argument0;

switch (global.language) {
        case "CZ":
                switch (stringID) {
                        case 0:
                                return "Ahoj";
                        case 1:
                                return "Vítejte!";
                        default:
                                return "NO STRING";
                }
        case "EN":
                switch (stringID) {
                        case 0:
                                return "Hi";
                        case 1:
                                return "Welcome!";
                        default:
                                return "NO STRING";
                }
        case "DE":
                switch (stringID) {
                        case 0:
                                return "Hallo";
                        case 1:
                                return "Wilkommen Sie!";
                        default:
                                return "NO STRING";
                }
        default:
                return "WRONG LANGUAGE";
}
Odpovědět 5.8.2017 21:41
Boj sa tých, ktorí sú ticho. Oni sú totiž tí jediní, ktorí skutočne myslia.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:6.8.2017 12:22

Nabudes to mit lepsi pres pole? Prvni rozmer urci jazyk, druhy vetu.... Sakra ono je to srary 5 let...

Editováno 6.8.2017 12:23
Odpovědět 6.8.2017 12:22
Čím víc vím, tím víc věcí nevím.
Avatar
jakub
Redaktor
Avatar
Odpovídá na David Hynek
jakub:27.8.2017 16:06

Ano, kdybych měl stejný článek napsat znovu, udělal bych to úplně jinak. :-D V doby, kdy jsem publikoval tento článek mi bylo 11 let, v té době jsem bohužel o polích , jejich používání a podobně moc nevěděl :-D

Odpovědět  +1 27.8.2017 16:06
Uvnitř jsou všichni stejní...
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na jakub
David Hynek:1.9.2017 10:45

:) v 11 ? Je skvělé, že jdeš dál a makáš na sobě. Umět opustit zažité a naučit se novému je dnes velmi důležité. Kdo to dokáže je daleko vpředu. :) Ať se daří

Odpovědět  +1 1.9.2017 10:45
Čím víc vím, tím víc věcí nevím.
Avatar
jakub
Redaktor
Avatar
Odpovídá na David Hynek
jakub:9.9.2017 9:45

Snažím se na sobě makat ,no :) Díky :)

Odpovědět 9.9.2017 9:45
Uvnitř jsou všichni stejní...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.