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

[SFML] Okno z tekstem...

Ostatnio zmodyfikowano 2012-10-08 20:20
Autor Wiadomość
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
P-66440
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ć.
P-66441
ridic14
Temat założony przez niniejszego użytkownika
» 2012-10-08 19:35:00
Spróbuję nad tym pomyśleć...

:)
P-66442
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ć :)
P-66443
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
P-66444
DejaVu
» 2012-10-08 20:07:03
Jeden temat = jeden problem. Komunikacja sieciowa != okno do wprowadzania tekstu.
P-66447
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.
P-66450
« 1 »
  Strona 1 z 1