Kudłaty Temat założony przez niniejszego użytkownika |
[Allegro 5] Wprowadzanie tekstu w aplikacji. » 2014-05-03 17:50:12 Witam. Zawzięcie walczę z napisaniem mojej trzeciej gry, tym bardziej chcę ją bardziej rozbudować. Mam następujące pytanie: Czy można jakoś prostym sposobem zrobić wpisywanie tekstu w aplikacji? Nie chodzi mi tutaj o konsolę. Na początkach wielu gier często widuje się wpisywanie nazwy gracza. Chciałbym takie coś zrobić u siebie. Mam pomysł jak to zrobić, ale zająłby mi kilka linijek. Istnieje jakiś prosty sposób wpisywania tekstu? Tak jak w konsoli std::cin tak istnieje coś w Allegro 5? Lub czy mogę wykorzystać do tego jakąś inną bibliotekę. |
|
oputyk |
» 2014-05-03 17:56:31 Już było mnóstwo identycznych, na ten sam temat, zakładanych postów na niniejszym serwisie... Allegro 5 Text |
|
Kudłaty Temat założony przez niniejszego użytkownika |
» 2014-05-03 18:06:09 Kiedy znaleźć nic nie mogę. Jak masz coś innego od youtuba (mam problemy z inernetem) to daj link. |
|
Chlorek |
» 2014-05-03 18:12:07 W allegro nie pisałem od bardzo dawna, ale sam nie przypominam sobie by była tego typu opcja (mogę się mylić). Jednak napisanie samemu czegoś takiego (to już podchodzi pod zrobienie GUI) to nie jest zły pomysł, takie ćwiczenia dobrze uczą programowania, a tu nie będzie chyba tak dużo kodu by uznać to za "nieopłacalne" do napisania samemu. Zrób sobie klasę np EditBox, która będzie przechowywała wpisane znaki, następnie przechwytujesz klawisze i dopisujesz. Oczywiście obudowujesz to ładnie w funkcje takie jak render(). Warto też dodać jakiś ogólny manager wszystkich elementów GUI, który np. pilnuje focus'a itd.. Przy odrobinie szczęścia i braku upierdliwych niespodziewanych błędów można napisać w kilka godzin (a te pare godzin w stosunku do pisania całej gry to chyba nie tak wiele ;) ). |
|
Kudłaty Temat założony przez niniejszego użytkownika |
» 2014-05-03 18:17:54 Myślę, że najprościej będzie to zrobić na ifach. Zrobię każdy if ze znakiem klawiatury, dodam zmienną typu bool aby dopiero po puszczeniu klawisza będzie można było wpisać nowy znak. Dodam coś z shiftem, ale to już będę bawić się w dodawanie do chara odpowiedniej liczby (kod ASCII) chyba to wystarczy. |
|
Chlorek |
» 2014-05-03 18:23:17 Wszystko rób jak tylko ci przyjdzie do głowy, ale robienie if'a dla każdego znaku to ostatnie co powinieneś robić. Już lepiej zrobić sobie mapę asocjacyjną <klawisz, znak>, ewentualnie vector<pair<>>. W każdym razie zrób sobie to oparte o klasę, będzie najładniej i wygodne do wykorzystania później.
#Edit Co do wielkich liter - zrób tylko wielkie, będzie mniej roboty. Zawsze możesz sprawdzić czy był też wciśnięty shift i zrobić wówczas toupper(). |
|
Kudłaty Temat założony przez niniejszego użytkownika |
» 2014-05-04 13:05:59 Jak zrobić tą mapę asocjacyjną? Pierwsze słyszę, a ciekawie brzmi. |
|
Wrzud |
» 2014-05-04 13:15:09 Zrób tablicę int(możesz potem dodać flagi klawisza) o wielkości tabeli ASCII i w ifach sprawdzaj zachowanie klawiszy. |
|
« 1 » 2 |