On-line: PSP, SergKis, гостей 3. Всего: 5 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 28.07.09 08:22. Заголовок: Shadow


Всем, привет !

Нет ли у кого файла Shadow.obj (Пришлось, тут, вспомнить DOS ) ?

почта filnet (at) mail.ru

Спасибо: 0 
Цитата Ответить
Ответов - 4 [только новые]


постоянный участник


Пост N: 350
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.07.09 12:14. Заголовок: У меня нет, но в кни..


У меня нет, но в книге Спенсера по программированию на Clipper приведен код подобной функции. Если у вас есть доступ к этой книге, то вы можете взять оттуда. По крайней мере воспользоваться идеей. Если память не изменняет, то просто читается экран в области будущей тени, заменяется цвет на какой-нибудь темно-белый на сером или черном фоне и затем снова записывается на свое место.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 29.07.09 07:56. Заголовок: ********************..


*****************************
function shadow(v,l,n,p) //Реализация тени
*****************************
local qq1,qq2,j,co:=setcolor()
setcolor('+n/n')
qq1:=savescreen(v+1,p+1,n+1,p+1)
qq2:=savescreen(n+1,l+1,n+1,p)
if p<79
for j=1 to n-v+1
@ v+j,p+1 say substr(qq1,j*2-1,1)
next
endif
if n<24
for j=1 to p-l+1
@ n+1,l+j say substr(qq2,j*2-1,1)
next
endif
setcolor(co)
return nil


Спасибо: 0 
Цитата Ответить
постоянный участник


Пост N: 351
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.09 12:20. Заголовок: Мне представляется, ..


Мне представляется, что приведенный метод будет работать медленно. Правда на новых компьютерах это будет незаметно, а вот для старых компьютерпов я бы его не стал использовать.
Приведенный wad1 код навел меня на мысль, что вместо цикла с командой SAY, лучше использовать следующий прием.
С помощью SAVESCREEN() вы читаете область экрана, где будет распологоаться тень. Понадобится два раза применить эту функцию для тени справа от прямоугольника и для тени снизу от прямоугольника. Строка, которая будет содержать образ экрана, состоит из символов текста и символов атрибута цвета. Вот именно в этой строке вы все символы цвета заменяете на конкретный атрибут цвета тени (например, белый на сером). А затем вызываете функцию RESTSCREEN() с изменненой строкой.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 29.07.09 12:29. Заголовок: Спасибо. Нашел я уже..


Спасибо. Нашел я уже этот shadow.obj Знакомые попросили исправить в древней DOS проге какую-то ерунду.
Из исходников только .rmk файл. Там этот .obj и упоминался. В общем все заработало

Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 114
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет