2013-06-22 2 views
1

Я искал, как рисовать строку на экране, используя Allergo 5, и знал о al_draw-textf(), который, как говорили, работал как printf() в stdio.h. Поэтому, когда я хочу, чтобы напечатать строку в окне консоли я пишу printf("%s" , string_name); Но когда я пишу этуAllegro 5 al_draw_textf()

al_draw_textf (шрифт, al_map_rgb (255, 255, 0), 250, 250, ALLEGRO_ALIGN_LEFT, "% s", Num);

ничего не отображается на дисплее. Когда я меняю %s на %d и переменную num на целое число, он правильно рисует значение num. Я делаю что-то не правильно или эта функция используется только для целых переменных?

+0

Можете ли вы показать соответствующий пример своего кода? –

+0

Я уже исправил эту проблему. Я должен был объявить переменную 'num' как' const char * 'вместо строки – Sam379

+1

@ Sam379, вы можете использовать метод' c_str() ', если вы используете строки C++ для передачи строки, совместимой с C, в Allegro. – Matthew

ответ

1

Если все, что вы хотите сделать, это сделать постоянную строку без форматирования, просто используйте:

void al_draw_text(const ALLEGRO_FONT *font, 
    ALLEGRO_COLOR color, float x, float y, int flags, 
    char const *text) 

Хотя то, что вы делаете все еще должны работать, так что если выше не помогает, вам нужно чтобы отправить больше кода.