Тема: Исходница
Показать сообщение отдельно
Старый 07.07.2010, 16:00   #8
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Исходница

Функция выводит текст по буквам (написана для проекта "Часовёнок")

Dim currenttext$(99)
Dim position(99)
Dim oldtexttime(99)

;...

Function writetext(id,txt$,x,y,delayt)
If position(id)=0 position(id)=1
	If position(id)<=Len(txt) And MilliSecs()-oldtexttime(id)>delayt
		currenttext(id)=currenttext(id)+Mid(txt,position(id),1)
		position(id)=position(id)+1
		oldtexttime(id)=MilliSecs()
	EndIf
	Text(x,y,currenttext(id))
	If position(id)>Len(txt) Return 1
End Function
txt - текст, id - id текста, x,y - координаты, delayt - задержка между выводом букв. Функция возвращает 1, если тект выведен полностью

Пример использования:

Dim currenttext$(99)
Dim position(99)
Dim oldtexttime(99)

Repeat
	writetext(1,"Привет! :)",20,20,100)
	writetext(2,"Этот текст ниже",20,40,100)
	If writetext(3,"После того, как выведется этот текст",20,60,100)
		writetext(4,"Будет выведен этот",250,60,100)
	EndIf
Until KeyHit(1)

Function writetext(id,txt$,x,y,delayt)
If position(id)=0 position(id)=1
	If position(id)<=Len(txt) And MilliSecs()-oldtexttime(id)>delayt
		currenttext(id)=currenttext(id)+Mid(txt,position(id),1)
		position(id)=position(id)+1
		oldtexttime(id)=MilliSecs()
	EndIf
	Text(x,y,currenttext(id))
	If position(id)>Len(txt) Return 1
End Function
P.S. Если кому-то надо, могу выложить вариант с типами вместо массивов
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (07.07.2010)