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

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

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

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 20.03.2013, 09:13   #16
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,160
Написано 589 полезных сообщений
(для 2,136 пользователей)
Ответ: ввод текста в ксорсе

Сообщение от ProGamer Посмотреть сообщение
y=0
num=1
Dim old$(10000)
Repeat
k%=GetKey()
If k<>0
t$=Chr$(k)
t2$=t2$+t$
EndIf  	
If KeyHit(28)
num=num+1
old$(num)=t2$
t2$=""
y=y+12
EndIf 
For i=1 To num 
Text 0,y-(12*(i-2)),old$(i)
Next
Text 0,0,t2$
Flip
Cls
Until KeyHit(1)
End
код стал короче,регистр меняется при удерживании shift,при нажатии enter переход на новую строку
А теперь попробуй понажимать стрелочки и посмотри, что получится. Надо сделать фильтрацию ввода от непропечатываемых символов.
(Offline)
 
Ответить с цитированием
Старый 20.03.2013, 11:47   #17
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,160
Написано 589 полезных сообщений
(для 2,136 пользователей)
Ответ: ввод текста в ксорсе

Dim TextLine$(100)	; массив строк

Global LineIndex=0 ;индекс текущей строки в массиве
Global TextHeight=10 ;высота строки
Global Enter ;переменная равна 1 если был нажат Enter

FlushKeys()

Function UpdateInput(X, Y)
	Local Key=GetKey()
	
	Enter=False
	
	If Key	; Key>0

		If Key=13	;	enter
			LineIndex=LineIndex+1
			Enter=True
			
		Else If Key=8	;	backspace
			TextLine(LineIndex)=Left(TextLine(LineIndex), Len(TextLine(LineIndex))-1)
			
		Else If Key>=32 And Code=<126
			TextLine(LineIndex)=TextLine(LineIndex)+Chr(Key)
		EndIf
	EndIf
	
	For Index=0 To LineIndex
		Text X, Y+Index*TextHeight, TextLine(Index)
	Next
End Function

Graphics 1024, 768, 32, 1
SetBuffer BackBuffer()

While Not KeyHit(1)
	UpdateInput(100, 100)
	Flip
	Cls
Wend
Вот так примерно лучше сделать.

P.S. Ещё рекомендую ставить отступы в коде. Лишний раз Tab нажать не сложно, зато потом ошибки искать в разы легче.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ProGamer (21.03.2013)
Старый 20.03.2013, 16:18   #18
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 595
Написано 332 полезных сообщений
(для 1,299 пользователей)
Ответ: ввод текста в ксорсе

IgorOK,

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 150 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________


(Offline)
 
Ответить с цитированием
Старый 20.03.2013, 21:10   #19
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,160
Написано 589 полезных сообщений
(для 2,136 пользователей)
Ответ: ввод текста в ксорсе

Сообщение от Кирпи4 Посмотреть сообщение
IgorOK,

*** скрытый текст ***
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 700 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо IgorOK за это полезное сообщение:
Arton (20.03.2013), Gector (21.03.2013), Reizel (21.03.2013), SBJoker (20.03.2013), St_AnGer (20.03.2013)
Старый 21.03.2013, 00:01   #20
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: ввод текста в ксорсе

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5000000 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
(Offline)
 
Ответить с цитированием
Старый 21.03.2013, 05:03   #21
Владислав
ПроЭктировщик
 
Аватар для Владислав
 
Регистрация: 08.05.2011
Сообщений: 143
Написано 46 полезных сообщений
(для 218 пользователей)
Ответ: ввод текста в ксорсе

ты меня очень напугал своим кодом, ну и идеями..

вот держи простой код для консоли

Global CON_ENTERED$

Function DrawConsole()
	If CON_VISIBLE Char$ = xGetKey()
			
		If xKeyDown(14); backspace
			If Not CON_ENTERED = "" CON_ENTERED = Left(CON_ENTERED, Len(CON_ENTERED) - 1)
			Return False
		End If
	
		If xKeyHit(28); enter
			execute(CON_ENTERED)
			CON_ENTERED = ""
			Return False
		End If
	
		If Char CON_ENTERED = CON_ENTERED + Chr(Char)
	
		xText 10, 10, ">: " + CON_ENTERED
		
	End If
End Function

Function execute(command$)
         ; Тут с помощью select command
End Function
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ProGamer (21.03.2013)
Старый 21.03.2013, 07:11   #22
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 1,985
Написано 1,131 полезных сообщений
(для 2,723 пользователей)
Ответ: ввод текста в ксорсе

Владислав, пример кода от IgorOK более правильный ИМХО, потому что у него напечатаются только цифры/буквы/символы. И никаких спецсимволов. В Вашем коде нет ограничения на это. Но, у него нет ограничения на стирание символов. Так что, для более-менее полноценного результата, ваши коды нужно сложить
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Владислав (21.03.2013)
Старый 21.03.2013, 14:11   #23
Владислав
ПроЭктировщик
 
Аватар для Владислав
 
Регистрация: 08.05.2011
Сообщений: 143
Написано 46 полезных сообщений
(для 218 пользователей)
Ответ: ввод текста в ксорсе

Я не скажу что он менее или более правильный, он проще.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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