SideMessage (Notifikace)

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
SaberCZ
Příspěvky: 5
Registrován: listopad 25, 2013, 5:32 pm
Facebook: http://facebook.com/pavelka.dave
Bydliště: Ostrava, Czech republic
Kontaktovat uživatele:

SideMessage (Notifikace)

Příspěvek od SaberCZ » březen 21, 2014, 4:07 pm

Obrázek
!!! POZOR: Pouze pro GameMaker: Studio !!!

Obrázek O co jde?
Tak jsem pro Vás vytvořil takový vlastní systém notifikací (já tomu říkám side message :D), jako je tomu ve Windows 8. Snažil jsem se jej napodobit z klasických Win8, ale zároveň nechat programátorům plnou konfiguraci jeho vzhledu a nastavení. Vše je dokonale zakomentované, takže si myslím, že problém s užíváním mít nebudete. Komentáře jsou sice v angličtině (snažím se, aby tomuto rozuměl i cizinec), ale to pro Vás zajisté problém nebude :)

Obrázek Co je důležité?
  • Aby jste jakýmkoliv způsobem nepřejmenovávali: objekty, sprity, fonty a skripty
  • Neupravovali si skripty!
  • Ale naopak upravili v obj_sideMessage:
    • v Create eventu defaultní hodnoty pod sekcí USER VARIBLES
    • ve Step eventu akce v sekci USER CONFIGURATION OF ACTIONS
  • V "obj_sideMessageController" upravit:
    • v Create eventu defaultní hodnoty pod sekcí USER VARIBLES
  • A samozřejmě upravit/smazat/vzít si inspiraci z obj_sideMessageTester
  • Fonty měnit můžete, ale zanechte název
Obrázek Použití
Poté co si vložíme do projektu skripty, objekty, fonty a sprity, tak nastává chvíle, kdy musíme do místnosti, kde chceme používat SideMessage přidat objekt obj_sideMessageController. Poté v jakémkoliv objektu voláme skript pomocí:

Kód: Vybrat vše

scr_sideMessageCreate("nadpis","text",šířka,ohraničení(true/false),
close_timer(true/false),"action","argument");
V tomto případě jde o volání SideMessage, který barvu, čas zavření atd. bere z defaultních hodnot objektu obj_sideMessage. Tyto si můžete přenastavit v Create eventu v sekci USER VARIBLES.
Pokud chcete ale pouze jeden, či několik speciálních SideMessage, tak musíte použít následující skript:

Kód: Vybrat vše

scr_sideMessageCreateExt("nadpis","text",šířka,ohraničení(true/false),
close_timer(true/false),"action","argument",close_after(room_speed * sekundy),
color(tělo zprávy),color_font(barva textu),color_font_header(barva nadpisu),
color_outline(barva ohraničení),color_close(barva zavíracího tlačítka),
color_close_bg(barva pozadí zavíracího tlačítka));
V tomto skriptu již konfigurujete také čas zavření a také barvy všech částí.

Obrázek Jak nastavit akci
V obj_sideMessage je sekce USER CONFIGURATION OF ACTIONS. Zde je podmínka, která ověřuje, jestli jsme na zprávu klikli a poté se provede následující switch:

Kód: Vybrat vše

switch (action)
{
    case "open_chat": //demo action
        {
            if (arg != "") //if argument was used
                show_message("Chat with " + string(arg));
            else
                show_message("New chat");
            break;
        }
}
Pokud tedy jako akci nastavíme zprávě "open_chat", tak prvně ověříme, zda-li je přiřazen argument. Pokud je, tak necháme zobrazit hlášku, kde je napsán tento argument. Pokud není, tak necháme zobrazit pouze hlášku "New chat".
Takovýchto akcí si můžete vytvořit kolik chcete.

Obrázek Vlastnosti
  • Program si pamatuje 2 view, tzn. zobrazí pouze tolik zpráv, kolik se vejde na výšku a další požadavky na novou zprávu si zapamatuje a zobrazí je po zavření ostatních zpráv. Těchto zpráv si zapamatuje tolik, kolik se jich vejde na výšku pro další zobrazení.
  • Můžete měnit barvu pozadí, barvu fontu, barvu nadpisu, barvu ohraničení, barvu tlačítka pro zavření, barvu pozadí tlačítka pro zavírání, když na ní najedete myší
  • Program je plně přizpůsoben pro systémy iOS, Android a Windows Phone (tlačítko pro zavření je zobrazeno na těchto zařízeních neustále, ne pouze po najetí na zprávu)
  • Header zprávy se automaticky zkrátí, aby nepřesahoval maximální délku.
  • Tělo se zvětšuje podle délky textu.
  • Můžete nastavit, aby se zpráva dala zavřít pouze po zmáčknutí tlačítka zavřít, nebo se může zavřít po Vámi nastaveném čase.
  • Můžete vypnout / zapnout ohraničení
  • Důležitou vlastností je nastavení akcí a předávání parametrů po kliknutí na zprávu
Obrázek Screenshot
Obrázek
Přílohy
SideMessage.rar
SideMessage - Verze 1.0 (GMZ, EXE)
(2.59 MiB) Staženo 95 x

Uživatelský avatar
hráč
Příspěvky: 225
Registrován: srpen 6, 2011, 8:52 am
Facebook: http://facebook.com/
Kontaktovat uživatele:

Re: SideMessage (Notifikace)

Příspěvek od hráč » březen 21, 2014, 4:30 pm

Zajímavé ale myslím že by bylo fajn kdyby ty zprávy automaticky skákaly nahoru.. třeba nechceš nějakou zprávu zavřít =) a když je jako poslední tak už se žádná neukáže...
Screenshot 2014-03-21 16.29.07.png
Neposedný liškovlk!
Obrázek

Uživatelský avatar
SaberCZ
Příspěvky: 5
Registrován: listopad 25, 2013, 5:32 pm
Facebook: http://facebook.com/pavelka.dave
Bydliště: Ostrava, Czech republic
Kontaktovat uživatele:

Re: SideMessage (Notifikace)

Příspěvek od SaberCZ » březen 21, 2014, 7:19 pm

Jo, to je určitě problémem :D Vím o něm, ale neměl jsem čas si s tím až tak vyhrát :) Snad v příští verzi :)

PS: Díky za feedback ;) Moc si toho cením :)

Uživatelský avatar
Firejs
Příspěvky: 743
Registrován: srpen 9, 2011, 10:21 am
Facebook: http://facebook.com/
Bydliště: Brno
Kontaktovat uživatele:

Re: SideMessage (Notifikace)

Příspěvek od Firejs » duben 3, 2014, 7:28 pm

Rozhodně zajímavý, ale určitě by se na tom dalo ještě hodně zapracovat. :)

Bohužel mě teď nenapadá žádný nápad na využití, takže víc poznatků nedám.
Stejně dobře, jako jíme zvířecí těla, bychom mohli jíst i lidská. Diogenes
Máme novou krevetu! http://www.kreveta.net
Registrován: Ned 13. Úno 2005 12:04:06

Uživatelský avatar
SaberCZ
Příspěvky: 5
Registrován: listopad 25, 2013, 5:32 pm
Facebook: http://facebook.com/pavelka.dave
Bydliště: Ostrava, Czech republic
Kontaktovat uživatele:

Re: SideMessage (Notifikace)

Příspěvek od SaberCZ » duben 7, 2014, 6:02 pm

Vidíš :D Zapomněl jsem napsat nápady na využití :D Tak určitě se to dá požít místo show_message_async :) Hodí se třeba pro achivementy. Prakticky vše, co chcete oznámit uživateli :) Určitě se taky dá použít např. jako zpráva od nějakého uživatele, nebo warning (díky změny barev je to velmi jednoduché). Využití je široké. Já se snažím celkově udělat komponenty vlastní pro GML, jelikož dělám například i v C#, kde ve Form, či WPF jsou komponenty jako textbox, radiobutton atd. Snad se to bude někomu hodit :D

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 2 hosti