forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Пульсирующая яркость активных объектов (http://forum.boolean.name/showthread.php?t=8651)

ELIAS 11.07.2009 19:59

Пульсирующая яркость активных объектов
 
Наверное все видели, что в играх такие объекты как аптечки, оружие, различные бонусы часто подсвечиваются. Причем меня интересует именно тот случай когда эта подсветка пульсирует. То есть где то за 2-3 сек. объект плавно переходит от обыкновенного состояния к подсвеченному и обратно. Но как плавно менять освещённость/яркость объекта. Я так понял что в блитце такой команды нет, но может можно что-то придумать хитрохакрученное, или же, возможно, такое можно сделать с помощью сторонних либ?

NitE 11.07.2009 20:07

Ответ: Пульсирующая яркость активных объектов
 
createlight()
lightrange()
entityfx()
entitycolor()
entityshininess()
спрайты
и т.д.

MiXaeL 11.07.2009 20:15

Ответ: Пульсирующая яркость активных объектов
 
Достаточно EntityColor и по синусу от Millisecs() менять

ABTOMAT 11.07.2009 20:20

Ответ: Пульсирующая яркость активных объектов
 
Ещё Sin()

ELIAS 11.07.2009 20:58

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

createlight()
lightrange()
entityfx()
entitycolor()
entityshininess()
спрайты
и т.д.
createlight(),lightrange(): у меня в игре слишклм много тких объектов(более 100), блитз даже столько источников света не позволит сделать, да и в любом случае источник света - не экономно..

entityfx(): ты про параметр 1/полная яркость говоришь? Но я хотел плавно менять яркость(да и амбиент - это не совсем то что нужно, просто пропадают все тени - не годится, объект должен оставаться объемным).

entityshininess(): ???
Спрайты: ???

Entitycolor - Вот это вариант!!! но есть проблемы
1) про какой ещё синус вы тут говорите??? пишу EntityColor Cube, Sin(MilliSecs), Sin(MilliSecs), Sin(MilliSecs) - черный навсегда.
2) Entitycolor неприменим к объектам на которые наложен brush!!!

ABTOMAT 11.07.2009 21:08

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

Sin(MilliSecs)
В блитце надо ставить скобки у любой команды, которая возвращает какое-либо значение, иначе будет всегда 0:

Код:

Sin(MilliSecs())
Кроме того, да будет вам известно, синус изменяется в пределах от -1 до 1, поэтому ты никакого результата не увидишь, надо чтобы значение менялось от 0 до 255. Для этого умножаем значение синуса на 128 и прибавляем 127, чтобы избавиться от отрицательного знака. Или сначала прибавляем 1 и умножаем на 128 и прибавляем 1 (т.к. 0-255, а не 0-256):

Код:

(Sin(MilliSecs())*128)+127
Кроме того это значение будет меняться слишком быстро, надо уменьшить скорость изменения входного параметра на синус (а именно - Миллисекас), например, в 10 раз:

Код:

(Sin(MilliSecs()*0.1)*128)+127
Всё, вот теперь работает:
Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

cam = CreateCamera()
PositionEntity cam,0,0,-5
cube = CreateCube()
CreateLight()

Repeat
        TurnEntity cube,1,1,1       
        EntityColor Cube, (Sin(MilliSecs()*0.1)*128)+127,0,0

        RenderWorld
        Flip
Until KeyHit(1)
End

Учи матчасть.
И вообще, советую почитать:

ELIAS 11.07.2009 21:18

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

И вообще, советую почитать:
Обязательно почитаем уже в этом году.

А как же быть с брашами? браши я в максе создаю! и экспортирую пайплайном
Не бонусы не сложные - есть вариант просто быстро переделать в максе блитз-браши в обыкновенные максовские стандартные материалы, но просто интересно мне что можно придумать - возможно пригодится потом))

tormoz 11.07.2009 21:36

Ответ: Пульсирующая яркость активных объектов
 
EntityBlend aptechko,3

ELIAS 11.07.2009 21:54

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

EntityBlend aptechko,3
Зачем это?

tormoz 11.07.2009 23:51

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

Сообщение от ELIAS (Сообщение 110720)
Зачем это?

Пульсирующая яркость активных объектов
:wallbash:

H@NON 11.07.2009 23:53

Ответ: Пульсирующая яркость активных объектов
 
это флаг смешивания брашей. Это дает возможность воздействия браша цвета на браш с текстурой.

ELIAS 12.07.2009 13:16

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

(Sin(MilliSecs()*0.1)*128)+127
А почему не (Cos(MilliSecs()*0.1)*128)+127
???

jimon 12.07.2009 13:21

Ответ: Пульсирующая яркость активных объектов
 
ELIAS
а какая разница ? почитай учебник по алгебре за 9 класс, там тебе обьяснят что cos(A) = sin(Pi/2-A) где Pi/2 радиан это 90 градусов
из этого следует что sin и cos ведут себя в общем себя одинаково

ps. что-то зачастили отсылы в учебники 9-11 класса, меня вот в универ отсылали, говорили там научат, неужели школьная система образования скотилась в полную какашку ?
или все школьники вместо учёбы теперь хотят курить, пить и заниматся сексом ?

ABTOMAT 12.07.2009 13:40

Ответ: Пульсирующая яркость активных объектов
 
Цитата:

Сообщение от ELIAS (Сообщение 110759)
А почему не (Cos(MilliSecs()*0.1)*128 )+127
???

Один и тот же эффект в принципе.
Косинус (альфа) - это синус (90°-альфа)
Читай книжку, которая на картинке.

З.Ы. Jimon, да, скатилась дальше некуда.

falcon 12.07.2009 17:37

Ответ: Пульсирующая яркость активных объектов
 
Да не школьники скатились... а образование ценность стало терять в глазах школьников... ща если приглядеться детям ваще че угодно разрешено...(и алкоголь заприщают покупать только по телевизору)
ну вот собственно... сложилось у них мол "нахера мне это надо" а результат - отсутствие не только знаний но и стремления к их получению..
я до 11ого класса ваще ра3.14дяем был... теперь и пить и курить бросил.. и очень жалею об упущеном времени... т.к. учебники за 9-10 класс пришлось перечиывать в 11ом :)
но всем моим одноклассникам - поуху


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

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