Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro 5] Wprowadzanie tekstu w aplikacji.

Ostatnio zmodyfikowano 2014-05-05 17:40
Autor Wiadomość
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ę.
P-109192
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
P-109193
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.
P-109196
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 ;) ).
P-109197
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.
P-109198
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().
P-109199
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.
P-109260
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.
P-109261
« 1 » 2
  Strona 1 z 2 Następna strona