Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 20.08.2008, 13:19   #1
JoKeR_13
Оператор ЭВМ
 
Регистрация: 09.04.2007
Сообщений: 28
Написано 2 полезных сообщений
(для 2 пользователей)
Консоль

Народ, захотелось мне в игре по нажатии тильды выводить консоль с возможностью писать команды. Никто не сталкивался случайно с проблемой. Может кто видел готовую библиотеку?
(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 13:36   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Консоль

О_о.
консоль это нечто настолько сильно завязанное на конкретной игре, что думаю нет смысле писать либу.

пример прооооостейшей консоли есть тут:
http://www.forum.likosoft.ru/showthread.php?t=49
(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 13:50   #3
JoKeR_13
Оператор ЭВМ
 
Регистрация: 09.04.2007
Сообщений: 28
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Консоль

а как сверху экрана затенить область? по нажатию тильды?
(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 14:10   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Консоль

используй FastDraw. рисуй черный прямоугольник с некой альфой.
(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 14:36   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Консоль

FastImage оно называется а не FastDraw
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 20.08.2008, 14:43   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Консоль

точно, FastImage.
(Offline)
 
Ответить с цитированием
Старый 29.08.2008, 17:29   #7
JoKeR_13
Оператор ЭВМ
 
Регистрация: 09.04.2007
Сообщений: 28
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Консоль

Решил поделиться своей нароботкой.
Огромное СПАСИБО Grover за его статью в Blitz Et Cetera
В данном примере работают 2 команды
  1. help - выводит справку
  2. showfps true|false - отображение FPS (If shFPS=1 Then Text 0,0,"FPS: "+fps)
Для начала я об'являю переменные
; Консоль
Global ConsFlg=0
Const Kolcmd=9 ; количество отображаемых строк консоли
Dim  cmdbuff$(Kolcmd) ; ? Кол-во строк
Global shFPS=0; 0 - не показывать FPS, 1- показывать
Создаем основные функции
Function  InitConsole$()
    cur_pos%=Len(s$)
    view_text$=""
    X1=4
    gh=GraphicsHeight ()/2-8
    fh=FontHeight() +1
    strok%=(gh/fh)-1
    While Not KeyHit (28)
        Cls 
        Color  200,200,200
        Rect 0,0,GraphicsWidth (),GraphicsHeight ()/2,1
        Color  0,0,0
        Rect 2,2,GraphicsWidth ()-4,GraphicsHeight ()/2-4,0
        For i=0 To strok-1
            Text 4,X1+(i*(FontHeight ()+1)),cmdbuff(i)
        Next 
        view_text$=Left(s, cur_pos)
        view_text$=view_text$+"|"
        view_text$=view_text$+Right(s,Len (s)-cur_pos)
        Text 4,GraphicsHeight ()/2-4-20,">"+view_text
        Flip
        k=WaitKey ()
        Select  True
        Case (k>31) And (k<127)
            temp$=s$
            S$=Left (temp$,Cur_pos)+Chr(k)+Right (temp$,Len(temp$)-cur_pos)
            cur_pos=cur_pos+1
        Case  k=8
            If cur_pos<>0 Then 
                temp$=s$
                s=Left (temp$,cur_pos-1)+Right (temp$,Len(temp$)-cur_pos)
                cur_pos=cur_pos-1
            EndIf
        Case k=4
            If cur_pos<>Len(s) Then
                temp$=s$
                s$=Left (temp$,cur_pos)+Right (temp$, Len(temp$)-cur_pos-1)
            EndIf
        Case k=31
            cur_pos=cur_pos-1
            If cur_pos<0 Then cur_pos=0
        Case k=30
            cur_pos=cur_pos+1
            If cur_pos>Len (s$) Then cur_pos=Len(s)
        Case k=1
            cur_pos=0
        Case k=2
            cur_pos=Len(s)
        End Select
    Wend
    Viewport 0,0,GraphicsWidth (),GraphicsHeight ()
    Return s$
End Function

; Обрабатываем команду из консоли
Function  CommandConsole(Cmd$)
    For i=0 To Kolcmd
        If cmdbuff(i)="" Then     Exit
    Next
    If i>Kolcmd Then
        Sdvig()
        i=Kolcmd
    EndIf    
    cmdbuff(i)=">"+Cmd$
    ; Обрабатываем команду
    Com$=ConsoleCMD$(cmd$)
    Param$=ConsoleCMDParam$(cmd$)
    Select  True
    Case Com="help"
        CommandConsole(">help, showfps")
    Case Com="showfps"
        If Param="true" Then
            shFPS=1
            CommandConsole(">FPS On")
        ElseIf  Param="false" Then
            shFPS=0
            CommandConsole(">FPS Off")
        Else
            CommandConsole(">Неверный параметр "+Param)        
        EndIf          
    End Select 
End Function 

; Сдвигаем матрицу команд
Function Sdvig()
    For i=0 To Kolcmd-1
        cmdbuff(i)=cmdbuff(i+1)
    Next
    cmdbuff(kolcmd)=""
End Function 

; Вытаскиваем команду
Function ConsoleCMD$(cmd$)
    l=Instr(cmd," ",1)
    If l=0 Then
        Return cmd
    Else Return Left(cmd, l-1)
    EndIf
End Function 

; Вытаскиваем параметры
Function ConsoleCMDParam$(cmd$)
    l=Instr(cmd," ",1)
    If (l=0) Or (l=Len(cmd)) Then
        Return ""
    Else Return Right (cmd,Len(cmd)- l)
    EndIf 
End Function
В обработчике нажатия клавиш пишем следующую строку
If  KeyDown (87)=1 Then  CommandConsole(InitConsole$()); Отображаем консоль F11
Очень буду признателен за критику кода, но слишком на меня не нападайте плз.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (09.05.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консоль из ДЛЛ Mr_F_ C++ 1 07.08.2009 22:27
Сообщение+консоль Dark_Fox 2D-программирование 3 30.06.2009 11:52
Как создать консоль? Trilliput Blitz3D 35 16.01.2008 00:57


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com