NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Zvuky, hudba, klávesnice a myš v MonoGame

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
vodacek
Tvůrce
Avatar
Odpovídá na Petr Šťastný
vodacek:9.6.2016 7:12

toto bude spíše chyba, že ti chybí nějaká knihovna, ohledně tohoto zkus napsat na forum monogame - tam svedou poradit lépe

 
Odpovědět
9.6.2016 7:12
Avatar
Petr Šťastný
Tvůrce
Avatar
Petr Šťastný:16.6.2016 18:43

Ahoj, potřebuji pomoct (zase :D) V monogame mi nefungovaly zvuky a ten pipeline byl takový ... no zajímavý :D

Takže jsem si nainstaloval XNA game studio a všechno funguje jak má :-) Jenom nevím, jak udělat tohle:

Mám ve hře dvě komponenty (herní obrazovky). Z obrazovky 1 přepínám na obrazovku 2. Ale mám problém: Na obrazovce 1 i 2 jsou tlačítka na stejných souřadnicích (a chci je tam kvůli 'designu' nechat). Takže když na obrazovce 1 kliknu na tlačítko, přehodí se to na obrazovku číslo 2 a tam se klikne na další tlačítko.

Nevíte, jak to vyřešit? Napadlo mě si to prostě udělat tak, že při klikání na tlačítko obrazovky 1 si uložím čas a nedovolím klikání na obrazovce 2, dokud neuplyne třeba vteřina. Ale asi to nebude ten nejlepší způsob. Bylo by to pomalé a složité, nemám pravdu? :-)

 
Odpovědět
16.6.2016 18:43
Avatar
Petr Šťastný
Tvůrce
Avatar
Petr Šťastný:16.6.2016 18:49

EDIT: A s tím souvisí problém, že mám klasická tlačítka, která nic nedělají (tedy myšleno nepřevádí pohled na jinou stránky). A na těch, když držím tlačítko, slyším hnusné pištění (používám SoundEffect pro klikání na tlačítka). Jak se toho mám zbavit?

if (rect_Back.Contains(new Point(hra.mys.X, hra.mys.Y)) && hra.mys.LeftButton == ButtonState.Pressed)
            {
                //
                // ...
                //
                seff_Click.Play();
                hra.PrepniHerniObrazovku(hra.komp_menu);
            }
 
Odpovědět
16.6.2016 18:49
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Petr Šťastný
Petr Šťastný:17.6.2016 14:47

Tak dobrý, stačilo v Hra.cs vytvořit bool ButtonAllowed, v Update podmínku, že když myš není zmáčknutá, hodím ButtonAllowed na true a když se zmáčkne tlačítko, hodit ButtonAllowed na false. Tlačítko jde samozřejmě zmáčknout, jenom když je ButtonAllowed true;

Že mě to nenapadlo hned :-)

 
Odpovědět
17.6.2016 14:47
Avatar
Patrik Pastor:21.6.2019 15:36

Jak vlastne funguji ty Pointy? Chapu druhou cast podminky, kde se kontroluje, zda se mys stiskla, ale jak to ze je prvni cast podminky obdelnikRobota­.Contains(new point)?

jak muze obdelnik obsahovat nejaky point, kdyz jsem ho nevytvoril. Nebylo by lepsi misto Contains aby byla metoda jako Exists? nebo Finds? jako naleza nebo existuje. Ale prece ten point jeste neni vytvoreny aby se volala metoda "obsahuje" (contains), to nedava smysl

 
Odpovědět
21.6.2019 15:36
Avatar
Jiří Pivec
Člen
Avatar
Odpovídá na Patrik Pastor
Jiří Pivec:10.12.2021 16:58

Třída Rectangle obsahuje metodu Contains, která v tomto případě používá přetížení s parametrem Point.
Metodu Contains tedy voláš na instanci třídy Rectangle nikoli na třídě Point a instanci třídy Point vytváříš přímo v parametru klíčovým slovem new.
new Point(mys.X, mys.Y)
Struct Point má parametry int x a int y (v tomto případě poloha kurzoru myši).

Na třídě Rectangle nejsou metody Exists ani Finds. Ne že by sis je tedy nemohl napsat :)

Pokud Ti není jasné, jak některé třídy fungují a jaké metody obsahují, označ si třídu(nebo metodu) a stiskni F12 (pravé myšítko -> Go To Definition).

Odpovědět
10.12.2021 16:58
„Kdo se umí smát sám sobě, má právo se smát všemu ostatnímu, co mu k smíchu připadá.“ J.W.
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 6 zpráv z 16.