Показать сообщение отдельно
Старый 07.03.2011, 09:59   #10
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вывод титров и создание диалогов с NPC

Небольшая трабла у тебя будет с многострочными вариантами ответов !! Ширина будет фиксированая а висоту уже нужно расчитать !!
и ширину посчитать можно..если шрифт имговский...
так обычным текстом выводить !! Не думаю что уж десяток строк текста тормозить !! Зачем заморачиватся !!
если рендрить текст в текстуру а потом её натягивать...ОЧЕНЬ тормозит..сам проверял..(хз почему)...
-
вот небольшой коддик...как дравить имаговский фонт (без фастимга)....(бла..небольшой баг..нельзя загрузить из папки не прописав её в тхт'шке фонта..)
сам фонт Вложение 12902
Function loadFontimage(filename$)
    Local f, i, l$, r$, Animimage$, AnimTextureFlags, Texture

    filename=Replace (filename,"/", "\")
    f = ReadFile(filename)
    If f=0 Then Return 0
     Font=CreateBank(12) 
    While Not Eof(f) 
        l=Trim(ReadLine(f))
        i=Instr(l,"=",1)
        If Len(l)>0 And Left(l,1)<>";" And i>0 Then
            r=Trim(Right(l,Len(l)-i))
            l=Upper(Trim(Left(l,i-1)))
            Select l
                Case "ANIMIMAGE"
                        AnimImage=r
                Case "FRAMEWIDTH"
                    FrameWidth=Int(r)
                Case "FRAMEHEIGHT"
                    FrameHeight=Int(r)
                Case "WIDTH"
                    Width=Int(r)
                Case "HEIGHT"
                    Height=Int(r)
                Case "KERNING"
                    Kerning=Int(r)                
            End Select
        EndIf
    Wend
    CloseFile f
    fnt=LoadAnimImage(animimage,FrameWidth,FrameWidth,0,256)

PokeByte font,0,FrameWidth
PokeByte font,1,Frameheight
PokeByte font,2,Width
PokeByte font,3,height
PokeByte font,4,kerning
PokeInt font,5,fnt
Return font
End Function 

Function DrawImText(Font%,texts$,x%=0,y%=0,midl=True)
If Len(texts$)>0
If font%>0 
Font_%=PeekInt(font%,5) 
fw=PeekByte(font,2)
fh=PeekByte(font,3) 
ker=PeekByte(font,4)
If Midl>0 Crip#=((fw-ker)*Len(texts$))/2 Else crip#=0
For i=1 To Int(Len(texts$))
f=Asc(Mid(texts$,i,1))
DrawImage font_%,(x%+(fw-ker)*(i-1))-crip,y%-fw,f
Next
EndIf
EndIf
End Function

 Function FreeFontImage(Font%)
FreeImage PeekInt(font%,5) 
FreeBank font%

 End Function
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 02.06.2011 в 13:42.
(Offline)
 
Ответить с цитированием