[sfml 1.6] RichEdit z sf:String
Ostatnio zmodyfikowano 2012-12-25 00:20
Admixior Temat założony przez niniejszego użytkownika |
[sfml 1.6] RichEdit z sf:String » 2012-12-24 03:33:33 Witam, Spotkał się ktoś kiedyś z tym jak rozwiązać problem (w optymalny sposób) z różnym formatowaniem tekstu w SFML 1.6. Chciałbym zmienić kolor jednej literki. Problemem dodatkowym jest faktu że tekst jest pochyły.
|
|
DejaVu |
» 2012-12-24 04:35:34 Rozwiąż go w jakikolwiek sposób :P (patrz: inny kolor tekstu = nowy łańcuch znaków = nowe renderowanie). |
|
Admixior Temat założony przez niniejszego użytkownika |
» 2012-12-24 12:23:54 Myślałem już nad utworzeniem nowego sf::String ale są problemy. Skąd wziąć bezwzględną pozycję jednego znaku skoro tekst jest pochylony (nie pochyły) o ok.: 4 stopnie. Gdybym utworzył w tej samej pozycji co pierwotny sf:String to zaś byłby problem, bo szerokość spacji jest inna niż pozostałych znaków. |
|
DejaVu |
» 2012-12-24 12:54:08 to wyobraź sobie, że najpierw rysujesz tekst 'normalnie', a dopiero później go pochylasz (chociażby za pomocą drugiego argumentu metody Draw. |
|
Admixior Temat założony przez niniejszego użytkownika |
» 2012-12-25 00:00:21 Niezbyt rozumiem o co chodzi. Mam kod mniej więcej taki: sf::String tekst = "abcadlo z pieca spadlo"; tekst.SetRotation( 15 ); tekst.SetFont( czcionka ); tekst.SetSize( 50 );
i teraz chciałbym zmienić literkę "c" w "pie ca" na kolor czerwony sf::String czerwony = tekst; czerwony.SetColor( sf::Color::Red );
Spacji nie mogę zastosować bo czcionka nie jest równa pod względem szerokości. Myślałem też żeby w miejsce tylko jednego znaku wstawić nowy, lecz funkcji GetCharacterPos nie mogę użyć bo zwraca pozycję relatywną względem początku Return the visual position of the Index-th character of the string, in coordinates relative to the string (note : translation, center, rotation and scale are not applied) |
Wiec tu pies pogrzebany. @DejaVu: Mógłbyś podać jakiś przykład lub funkcje których powinienem użyć? //PS. Korzystam z sfml 1.6 i zmiana w tej chwili nie wchodzi w opcje :( |
|
DejaVu |
» 2012-12-25 00:20:32 Wywal 'set rotation' i wyświetlaj 3 teksty - początek, czerwoną literę, koniec. Tam gdzie masz wywołane rysowanie (metoda Draw) dodaj sf::Transform jako drugi argument, uwzględniający rotację. |
|
« 1 » |