[SFML] Okno z tekstem...
Ostatnio zmodyfikowano 2012-10-08 20:20
ridic14 Temat założony przez niniejszego użytkownika |
[SFML] Okno z tekstem... » 2012-10-08 19:28:04 Jeśli nie masz czasu przejdź do punktu 2
1.Aktualnie zajmuję się tworzeniem swojego^^ gui do sfml. Jest to moja pierwsza praktyka z obiektowością i poprawnym podziałem kodu na pliki... Mam na razie textbox'a czyli taki w którym można zmieniać tekst ale to wie każdy...
2.Chcę napisać box'a tylko do wyświetlania tekstu (coś jak w gg jeden box do wiadomości drugi do wysyłania...
3.Oczywiście docelowa rzecz to zawijanie wierszy...
Więc chodzi mi o teorię czyli jak by to zrobić.
4. Na razie nie mam pomysłu więc zapytam. I tu mam pierwsze pytanie, czy wszystkie znaki(a..z, A..Z) mają taką samą szerokość?
I pytanie główne:Chciałbym poznać jakąś teorię o tym zawijaniu wierszy lub o pasku przewijania.
Dzięki za przeczytanie |
|
DejaVu |
» 2012-10-08 19:31:13 Mhm... wydaje mi się, że ktoś na forum podawał prostą implementację pola tekstowego w SFML. Zawijanie wierszy itp. to nic innego jak czysta algorytmika. Odradzam bawić się w zawijanie wierszy (przynajmniej na początku), póki sam nie wpadniesz na pomysł jak to można zrobić. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-10-08 19:35:00 Spróbuję nad tym pomyśleć...
:) |
|
SeaMonster131 |
» 2012-10-08 19:41:43 I tu mam pierwsze pytanie, czy wszystkie znaki(a..z, A..Z) mają taką samą szerokość? |
Wydaje mi się, że nie, dlatego nie do końca to może wypalić :) |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-10-08 19:52:36 Właśnie mój pomysł na początku był taki ile najszerszych znaków zmieści się w jednej lini i potem jeśli będzie osiągnięty limit to do następnej linii...
A co do sfml network to DejaVu już dużo podpowiedział ale jak wiele mam wiedzieć o tym co było wypisane...
bo np wiem że serwer uczestniczy w przesyłaniu danych między klientami : klient <-> serwer <-> klient |
|
DejaVu |
» 2012-10-08 20:07:03 Jeden temat = jeden problem. Komunikacja sieciowa != okno do wprowadzania tekstu. |
|
Admixior |
» 2012-10-08 20:20:52 Możesz do tego użyć funkcji sf::String::GetCharacterPos(x); podajesz znak i zwraca Ci pozycję x i y górnego lewego rogu(<-trzeba zweryfikować!). Co do wysokości to jeżeli używasz wyimaginowanych czcionek to możesz zostać niemiło zaskoczony gdyż po prostu zwróci ci (liczba_enterów*GetSize()) Co nie będzie prawdą w specyficznych czcionkach(nie wiem jakiej czcionki używasz ale byś musiał sobie sprawdzić ręcznie czy każdy znak jest tej samej wysokości i wtedy robić program pod czcionkę).
Aby uzyskiwać bardziej poprawne pod względem wysokości (i ew. szerokości) wyniki jest GetRect(). Co zwraca cały kwadrat jaki zajmuje sf::String. |
|
« 1 » |