Polskie znaki, code::blocks, sfml

0

Witajcie. Mój problem jest taki, że nawet jak wpisze \206, co ma mi dać 'ć', to i tak dostaje inne znaczki. Korzystam ze środowiska Code::Blocks.
Dzięki z góry za pomoc!

1

Gdzie dostajesz te inne znaczki? Najlepiej jakiś kawałek kodu podaj.

0

Używam biblioteki SFML. Teksty wyświetlam w obiektach Text.

1

Jakiej czcionki używasz? Czy ta czcionka ma polskie znaki?
http://www.sfml-dev.org/tutorials/2.4/graphics-text.php

0

Czcionka impact.ttf. Gdy ją otwieram to na ekranie dumnie się pokazuje słynne "Załóć gęślą jaźń", więc chyba nie powinno być problemu ;/

1
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

int main() {
    sf::Font font;
    // if (!font.loadFromFile("./consola.ttf")) {
    if (!font.loadFromFile("./unicode.impact.ttf")) {
        return 2;
    }

    sf::Text text;
    text.setFont(font);
    text.setString(L"ĄŚĆŁŻŹĆŃżźćłąńśłóÓ");
    text.setCharacterSize(24);
    text.setColor(sf::Color::Red);
    sf::RenderWindow window(sf::VideoMode(300, 100), L"ĄŚĆŁŻŹĆŃżźćłąńśłóÓ");
    while (window.isOpen()) {
        window.clear();
        window.draw(text);
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed) {
                window.close();
            }
        }
        window.display();
    }

}

Używając unicode.impact.ttf z http://www.fonts2u.net/font-impact-free/96f8.htm dostaję: user image
Ale już używając Consolas... user image

Pff, sorry, lamer ze mnie. Mam przecież impact.ttf w czcionkach. :P user image

0

Ok. Może lamer jest ze mnie? :D w metodzie setString() zamiast ("aaa") wystarczyło napisać (L"aaa"), takiej 'L'-ki jeszcze nie używałem. Teraz działa, dzięki!!

A jeszcze jedno. Przykładowo tworząc taki obiekt mojej zdefiniowanej klasy: Przedmiot miecz("krótki miecz"), gdzie w konstruktorze podaję nazwę. Jeżeli chce ją wypisać w taki sposób: text.setString(miecz.nazwa) to jak to zrobić? bo nie działa 'ó'.

1

takiej 'L'-ki jeszcze nie używałem
Czarna eLka w kółeczku się mieni... ekhm. Wracając. :P

Jaki typ ma miecz.nazwa? Bo jeśli nie jest kompatybilny z std::wstring/ wchar_t[N] to nie pobangla. L"string" daje właśnie const wchar_t[N].

2.13.5 String literals [lex.string] napisał(a)

1 A string-literal is a sequence of characters (as defined in 2.13.3) surrounded by double quotes, optionally
prefixed by R, u8, u8R, u, uR, U, UR, L, or LR, as in "...", R"(...)", u8"...", u8R"(...)", u"...",
uR"~(...)~", U"...", UR"zzz(...)zzz", L"...", or LR"(...)", respectively.

0

zwykły string ;)

2

Nie ułatwiasz. :P Na przyszłość, podając jakąś informację postaraj się być bardziej konkretny. Co to znaczy "zwykły string" w kontekście SFML? Masz na myśli std::string czy sf::String? Jeżeli to pierwsze - zmień na std::wstring. Jeżeli sf::String - to problem może leżeć w inicjalizacji z użyciem "wąskiego" stringa.

http://www.sfml-dev.org/documentation/2.4.1/classsf_1_1String.php

0

Ok ziomek dzięki, działa :D

0

uff nie mój temat ale uratowaliście mi życie ;) męczyłem się z tym problemem już kilka godzin a potrzebowałem do pracy na http://www.eu.edu.pl/informatyka/
Pzdr

1 użytkowników online, w tym zalogowanych: 0, gości: 1