forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Небольшая проблема с CreateImage (http://forum.boolean.name/showthread.php?t=1202)

Stranger 28.07.2006 13:12

Небольшая проблема с CreateImage
 
Код:

image=CreateImage(70,20)
SetBuffer ImageBuffer(image)
Color 255,255,255
Rect 0,0,70,20
Color 0,0,0
font1=LoadFont ("impact",20)
SetFont font1
Text 0,0,"Открыть"
FreeFont font1

SetBuffer FrontBuffer()
DrawImage image,100,100
WaitKey()
End

Нужно, чтобы в белом прямоугольнике писалось слово "Открыть", но Блиц пропускает последнюю букву, хотя видно, что для нее пространство еще есть. В чем может быть проблема?

ZanoZa 28.07.2006 15:54

Re: Небольшая проблема с CreateImage
 
Проблема,как я понимаю, в глячности команды text с русскими шрифтами.
С англ. шрифтами всё в порядке.
Кстати, если использовать шрифт "Times New Roman cyr", то у текста вообще отсекает 2 буквы :)

ZanoZa 28.07.2006 16:06

Re: Небольшая проблема с CreateImage
 
Просто сделай image побольше :)

impersonalis 28.07.2006 16:59

Re: Небольшая проблема с CreateImage
 
Блитц не корректно отображает кирилические шрифты. Это давно известно. Есть различные методы решения самы простой -"в лоб":
Код:

Graphics 800,600,32
SetFont LoadFont("arial cyr",20)
TEXTS$= "Нужно, чтобы в белом прямоугольнике писалось слово ''Открыть'', но Блиц пропускает "
Text 0,0,TEXTS$
For I=1 To Len(TEXTS)
        Text 0+StringWidth(Left(TEXTS,I-1)),40,Mid(TEXTS,I,1)
Next
Flip
WaitKey()
End

Первая строчка, которая выводится без премудростей - обрывается на предпоследнем слове; вторая - выодится полностью.

Stranger 29.07.2006 13:50

Re: Небольшая проблема с CreateImage
 
impersonalis, спасибо, теперь понял, как это сделать. Раньше не замечал такой полезной команды как StringWidth.


Часовой пояс GMT +4, время: 14:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot