|
23.09.2011, 17:35
|
#1
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Вывод текста
Помогите разобраться....
По книге Станислава Горнакова пробывал выводить текст так там у него одни ошибки. Он предназначен для старого DXSDK. Я так и немогу понять как создать текст в С++, с помошщью какой команды.
ЗЫ как вывести цифры на экран, прейдется преобразовывать типы (из int в char и т.д)?
|
(Offline)
|
|
23.09.2011, 17:40
|
#2
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вывод текста
|
(Offline)
|
|
23.09.2011, 17:54
|
#3
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Вывод текста
Я имел ввиду вывод текста в 3D приложение
|
(Offline)
|
|
23.09.2011, 22:49
|
#4
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Вывод текста
По книге Станислава Горнакова
|
сожги книгу и автора, по возможности...
|
(Offline)
|
|
24.09.2011, 11:53
|
#5
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Вывод текста
Сообщение от falcon
сожги книгу и автора, по возможности...
|
Уже ей непользуюсь месяца полтора где-то. Сам кодю и решаю задачи.
Но все же как быть с текстом?
|
(Offline)
|
|
24.09.2011, 22:11
|
#6
|
Бывалый
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений (для 858 пользователей)
|
Ответ: Вывод текста
Неужели так сложно нагуглить самому что-то типа:
http://www.toymaker.info/Games/html/text.html
прейдется преобразовывать типы (из int в char и т.д)?
|
Да прЕЙдется.
|
(Offline)
|
|
25.09.2011, 12:33
|
#7
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Вывод текста
Сообщение от Mind
прейдется преобразовывать типы (из int в char и т.д)?
|
Нет, преобразование тут не поможет. Читай itoa, ftoa и подобные
|
(Offline)
|
|
25.09.2011, 13:53
|
#8
|
Нуждающийся
Регистрация: 08.05.2008
Сообщений: 87
Написано 9 полезных сообщений (для 15 пользователей)
|
Ответ: Вывод текста
можно еще char(n+48 ) в цикле
|
(Offline)
|
|
25.09.2011, 14:39
|
#9
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Вывод текста
Сообщение от Mhyhr
|
Такой метод я знаю. Я не пойму как в таком случае вывести число из переменной.Если с преобразованием то какой командой? stroka=reinterpret_cast<LPCWSTR>(perem)?
Сообщение от genroelgvozo
можно еще char(n+48 ) в цикле
|
нафига?
Сообщение от ПАВЕЛ
Нет, преобразование тут не поможет. Читай itoa, ftoa и подобные
|
Что это такое?
ЗЫ есть ли еще какя-нить команда для вывода текста в 3D приложение кроме Drawtext ?
|
(Offline)
|
|
25.09.2011, 14:59
|
#10
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Вывод текста
Сообщение от genroelgvozo
можно еще char(n+48 ) в цикле
|
это проканает при системе кодирования числа "1-байт-1-цифра"
т.е. 123 задаётся как
char n[3];
n[0]=1;
n[1]=2;
n[2]=3;
и выводится как
for(short i=0;i<sizeof(n);i++){
cout<<char(n[i]+48)<<endl;
}
48 - кодовая разница по ASCII между '0' и 0
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
25.09.2011, 16:29
|
#11
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Вывод текста
48 - кодовая разница по ASCII между '0' и 0
|
Понял спс.
|
(Offline)
|
|
28.09.2011, 10:33
|
#12
|
Нуждающийся
Регистрация: 08.05.2008
Сообщений: 87
Написано 9 полезных сообщений (для 15 пользователей)
|
Ответ: Вывод текста
ну так можно получать разряды из числа а не хранить их в массиве
ну а вообще да лучше наверное itoa, хотя мне кто то говорил что там фишки не хорошие есть
|
(Offline)
|
|
28.09.2011, 10:59
|
#13
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Вывод текста
Сообщение от genroelgvozo
ну так можно получать разряды из числа а не хранить их в массиве
|
Что-то в голове рождается не очень красивый код, со скачками по адресам и кучей битовых операций, а в итоге:
Сообщение от genroelgvozo
ну а вообще да лучше наверное itoa, хотя мне кто то говорил что там фишки не хорошие есть
|
Ну, наверное, проблемы с переполнением переданного char буфера
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
21.12.2011, 20:13
|
#14
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Вывод текста
Вот краткая функция вывода текста:
void InitMyText(IDirect3DDevice9* dev,HFONT hFont)
{
if (hFont == NULL)
hFont = CreateFont(30,10,0,0,FW_NORMAL,0,0,0,1,0,0,0,DEFAULT_PITCH | FF_MODERN,L"Arial");
if (pFont == NULL)
D3DXCreateFontIndirect(dev,&hv,&pFont);
}
void DrawMyText(LPCWSTR str,int x,int y,int x1,int y1,D3DCOLOR MyColor)
{
Rec.left = x;
Rec.top = y;
Rec.right = x1;
Rec.bottom = y1;
pFont -> DrawText(0,str,-1,&Rec,DT_WORDBREAK,MyColor);
}
Вопрос в том как только выводить цифры? Где-то читал что надо делать так:
void PrintInt(int a, int x, int y,D3DCOLOR MyColor)
{
char textint[33];
_itoa_s(a,textint,10);
pFont -> DrawText(0,textint,-1,&Rec,DT_WORDBREAK,MyColor); // Ругается
}
Ругается потому что не совпадает тип char с типом LPCWSTR.
Вот и не пойму что делать. Подскажите.
|
(Offline)
|
|
21.12.2011, 21:35
|
#15
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Вывод текста
а ты попробуй DrawTextA, а вообще переключи в свойствах проекта использовать unicode, на многобайтовую. Или wchar_t textint[33]
UPD:
wchar_t* textint = new wchar_t[33];
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:42.
|