![]() |
Не пишется текст на текстуре
И снова я.))) Пытался своими силами разобраться в чём прикол, но не смог, по этому надеюсь на помощь тут, вы меня столько раз уже выручали.) В общем пытаюсь на текстуре через буфер текстур написать надпись. Вот отрывок кода:
tex=LoadTexture("batt_menu_sub2.tga",2) SetBuffer TextureBuffer(tex) ;Cls Color 190,190,190 Rect 10,10,300,50 Color 0,0,0 font=LoadFont ("Arial",34) SetFont font Text 0,0,",kf ,kf ,kf" Color 255,255,255 SetBuffer BackBuffer EntityTexture batt_menu_sub,tex так вот, прямоугольник рисуется, но ненормально, точнее у меня текстура всего-то 330 на 79 пикселей, однако прямоугольник не занимает и четверти текстуры, хотя должен занять всю. А вот текст кообще не выводится, какого бы размера шрифт я не ставил.( Из-за чего это может быть? И ещё, можно лди как-то избавиться от моргания экрана при этом? Заранее всем огромное спасибо. |
Ответ: Не пишется текст на текстуре
при загрузке текстуры в блитц она автоматически масштабируется под размер кратный двум, то есть было у тебя разрешение 330 на 79, а стало 512 на 128.
|
Re: Не пишется текст на текстуре
А не подскажешь как тогда мне написать текст на текстуре? Очень надо, неохота создовать 50 разных текстур различающихся только надписью.
|
Re: Не пишется текст на текстуре
Сейчас подогнал размеры самой текстуры под 256х64, теперь прямоугольник как положено рисуется, а теста всё равно нет, хотя я вижу что и шрифты меняются и тп, но на текстуру он не записывается.(
|
Re: Не пишется текст на текстуре
понял в чём проблема.((( Текст не пишется на текстуру если она с альфа каналом загружена.( Если без альфы гружу то текст рисуется. Блин.((( Кто-нить знает как это обойти?
|
Ответ: Не пишется текст на текстуре
столкнулся с похожей проблемой еще несколько лет назад,
решения так и не нашел... следующий исходник практически везде работает нормально, но иногда пишет на текстуре только первое слово и на этом все заканчивается Function errtex() dela=CreateTexture(256,256) SetBuffer TextureBuffer(dela) ClsColor 32,32,255:Cls font222=LoadFont("Tahoma",78,1) SetFont font222:Color 255,255,255 Text 45,40,"Error":Text 10,110,"texture" SetBuffer BackBuffer() :ClsColor 0,0,0 FreeFont font222:SetFont font:Return dela End Function |
Re: Не пишется текст на текстуре
Эммм... не совсем понял что возвращает эта функция и как она поможет мне писать текст на моей уже существующей текстуре? Если не сложно можешь подробнее описать её применение?
|
Re: Не пишется текст на текстуре
Ладно, фиг с ним, буду исспользовать без альфы текстуру. ТОгда другая проблема. мне надо что бы на каждой новой кнопке в типе писался разный текст который берётся из массива. Но у меня получается что у всех одна и таже текстура на которой друг на друга наложен весь их текст.( Вот код:
For i=1 To 100 If items$(i,2)>0 sub_count=sub_count+1 sub_y#=sub_y#+0.04 e.submenu=New submenu e\item_name$=items$(i,1) e\item_step=sub_count e\batt_menu_sub=CreateSprite(camera) e\xscale#=0.1 e\yscale#=e\xscale#/4.35 ;tex666=CreateImage(256,64) e\tex=LoadTexture ("batt_menu_sub.jpg") ScaleSprite e\batt_menu_sub,e\xscale#,e\yscale# SpriteViewMode e\batt_menu_sub,2 ;Color 90,90,90 ;Text 15,15,",kf ,kf ,kf" ;Color 255,255,255 SetBuffer TextureBuffer(e\tex) ;Cls ;Color 150,150,150 ;Rect 10,10,200,40 Color 210,210,210 font_item=LoadFont ("Arial",16) SetFont font_item Text 15,15,items$(i,3) Color 255,255,255 SetBuffer BackBuffer EntityTexture e\batt_menu_sub,e\tex PositionEntity e\batt_menu_sub,-0.28,sub_y#,0.9 FreeTexture e\tex EndIf Next Как сделать так что бы текстура разной была на каждой следующей кнопке, а не все надписи сливались на одно теекстуре? |
Ответ: Не пишется текст на текстуре
теперь ты снова столкнулся с проблемой, которая постигла и меня... :-)
по задумке автора блица текстура с одним и тем же именем не грузится 2 раза, дабы избежать повторов |
Ответ: Не пишется текст на текстуре
Цитата:
|
Re: Не пишется текст на текстуре
Так, ну с проблемой не рисования разных текстур я разобрался.)
L.D.M.T. vbmenu_register("postmenu_141921", true); Лови код, может пригодится.) For i=1 To 100 If items$(i,2)>0 sub_count=sub_count+1 sub_y#=sub_y#+0.04 e.submenu=New submenu e\item_name$=items$(i,1) e\item_step=sub_count e\batt_menu_sub=CreateSprite(camera) e\xscale#=0.08 e\yscale#=e\xscale#/4.35 e\tex=CreateTexture(256,64) img=LoadImage ("batt_menu_sub.jpg") ScaleSprite e\batt_menu_sub,e\xscale#,e\yscale# SpriteViewMode e\batt_menu_sub,2 SetBuffer TextureBuffer(e\tex) Cls DrawImage img,0,0 Color 210,210,210 font_item=LoadFont ("Arial",21,1) SetFont font_item Text 15,20,items$(i,3) Text 200,20,items$(i,2) FreeFont font_item Color 255,255,255 SetBuffer BackBuffer EntityTexture e\batt_menu_sub,e\tex PositionEntity e\batt_menu_sub,-0.28,sub_y#,0.9 FreeTexture e\tex EndIf Next Вот. ТОесть в кратце мы создаём пустую текстуру такого же размера как и та что пытались загрузить, а нашу текстуру грузим как имейдр и потом просто в буфер текстуры рисуем нужную текстуру из имейджа, потом поверх текст, запекаем и очищаем экран перед следующим проходом. ТОгда при каждом повторе и создании нового элемента типа у нас текстура будет с разным текстом.) |
Часовой пояс GMT +4, время: 18:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot