forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Вывод титров и создание диалогов с NPC (http://forum.boolean.name/showthread.php?t=14361)

Aikon 06.03.2011 22:00

Вывод титров и создание диалогов с NPC
 
Поделитесь идеями как проще сделать?

Допустим есть диалог:
- Привет, Вася
Игрок должен выбрать:
[сказать] Привет, Колян!
[сделать] Дать в рожу

По идее сами диалоги вполне удобно будет хранить в xml. Как сделать вывод текста в нужном месте? И чтобы выбирать ответ можно было мышкой.

Пока такая вот идея:
текст выводится стандартно. Под ним, на камеру вешаю несколько прозрачных "кубиков" по числу ответов, располагающихся точно под текстом, с возможностью выбирать мышкой. Далее обрабатывать нажатие на "кубик".

Так же буду рад, если кто хорошими исходниками поделится, чтобы осознать, как лучше делать. Посмотрел WorldWar[Tanks] - тихий ужас, хотя игра очень даже, судя по картинкам (у меня не запустилось).

Program23 06.03.2011 22:04

Ответ: Вывод титров и создание диалогов с NPC
 
Причем здесь WorldWar[Tanks]?Не вижу связи между WorldWar[Tanks] и названием темы.

LLI.T.A.L.K.E.R. 06.03.2011 22:07

Ответ: Вывод титров и создание диалогов с NPC
 
Это не ЗД.
Лучше не кубики, а GUI-кнопки (со свойствами типа "текст" и "скрипт-действие")

зы: дай мне библиотечку Blitz3D+xml

Скрипты:
http://blitzetc.blitzmax.ru/index.ph...BF%D1%82%D1%8B

Подходящего gui пока предложить не могу.
Но мне по нраву DevilGUI, тип как Windows. Можно свои скины делать.

Aikon 06.03.2011 22:25

Ответ: Вывод титров и создание диалогов с NPC
 
LLI.T.A.L.K.E.R., GUI-либа наверно какая то нужна? Свое писать лень.
XML - http://www.blitzbasic.com/Community/...hp?topic=46647

Program23, ни при чем, просто привел пример не очень хорошего (с моей точки зрения) кода. Прежде чем новый проект начать, хочу посмотреть как народ пишет, чтобы может пару идей своровать (про триггеры очень хорошие идеи были).

IGR 07.03.2011 00:04

Ответ: Вывод титров и создание диалогов с NPC
 
ну кубики это слишком !! Можно просто квады !!
Можно вообще "воображаемы" ректанглы для каждого варианта ответа, и проверять вхождение курсора в ректангл и клики !!
Небольшая трабла у тебя будет с многострочными вариантами ответов !! Ширина будет фиксированая а висоту уже нужно расчитать !!

Aikon 07.03.2011 01:31

Ответ: Вывод титров и создание диалогов с NPC
 
IGR, а не подскажешь можно ли выводить текст на квады, а не экран, в Blitz?

Alex_Noc 07.03.2011 01:37

Ответ: Вывод титров и создание диалогов с NPC
 
квады + проецирование на них текста -1
текст + текст ширина+ тексты высота - 2 (высчитывай координаты мыши)
это методы - спрогать думаю знаешь как не 5 лет тебе всеже

IGR 07.03.2011 01:56

Ответ: Вывод титров и создание диалогов с NPC
 
так обычным текстом выводить !! Не думаю что уж десяток строк текста тормозить !! Зачем заморачиватся !!

Alex_Noc 07.03.2011 06:36

Ответ: Вывод титров и создание диалогов с NPC
 
если хочешь чтоб текст поворачивался вместе с квадом -ИЗУЧИ ПОНЯТИЕ ТЕКСТУРА!
Если надо чтобы текст был виден на экране когда виден обьект в камеру - ИЗУЧИ ПРОЕЦИРОВАНИЕ ТЕКСТА НА ОБЪЕКТ!
ГО В СПРАВКУ!!!

RegIon 07.03.2011 09:59

Ответ: Вывод титров и создание диалогов с 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


Reks888 07.03.2011 13:47

Ответ: Вывод титров и создание диалогов с NPC
 
Цитата:

Сообщение от Aikon (Сообщение 181616)
Так же буду рад, если кто хорошими исходниками поделится, чтобы осознать, как лучше делать. Посмотрел WorldWar[Tanks] - тихий ужас, хотя игра очень даже, судя по картинкам (у меня не запустилось).

:-D WorldWar[Tanks] не имеет никакого отношения к диалогам :-D

is.SarCasm 07.03.2011 20:42

Ответ: Вывод титров и создание диалогов с NPC
 
Он наверно про кричащих ботов:
"Сергей: Мы все погибли"
"Колян: в отаке!"


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

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