![]() |
Как сделать туман войны?
Для стратегии, чтобы только вблизи юнита было видно карту.
Вообще чего-то туго... ни чего не получается. Сделал с простым туманом, типа если далеко от юнита приблизить туман, как-то не очень прикольно... Может кто делал? |
Ответ: Как сделать туман войны?
Эхх...
Так создаёшь некий вспомогательный тип: Код:
Type TFogOfWarHelper Хелперы создаются юнитом во время движения допустим каждые 2 секунды новый хелпер. Затемнение делай системой квадов, которые будешь текстурой с маской просвечивать. |
Ответ: Как сделать туман войны?
Не очень понял )) По подробнее бы...
|
Ответ: Как сделать туман войны?
Цитата:
|
Ответ: Как сделать туман войны?
Ну может и так. Ни чего не получается.
Пробовал повесить плоскость над картой и рисовать в альфу над юнитом, стобы типа открывать видимость. Эффект конечно получить можно, но он сжирает половину фпс, этож надо постоянно сначала восстанавливать невидимость а потом на основании новых координат снова делать, ладно 1-2 юнита, а если 100... барада вобщем )) |
Ответ: Как сделать туман войны?
Решение всетаки существует )) уже прикручиваю.
Работает с помощью функции Rect , только нужо было не упираться в рисование альфы, а поставить правильный бленд "шторке" прикрывающей левел. radiantor дал пример: Graphics3D 800, 600, 32;, 1 SetBuffer BackBuffer() SeedRnd MilliSecs() cam=CreateCamera() MoveEntity cam,25,25,0 TurnEntity cam,60,0,0 tex3=CreateTexture(256,256,7); Текстура маска ScaleTexture tex3,50,50 TextureBlend tex3,1 ; Со смешиванием текстур у мя туго, но методом тыка нашел что вот с этим работает :-) plane=CreatePlane() EntityTexture plane,tex3,0,2 EntityBlend plane,2 ; И вот это тоже нужно. ; Думаю есть более правильный способ наложения, но пока сойдет plane2=CreatePlane(); Типа сама карта - поле сражения ;Чтоб было виднее эффект, можно наложить на этот плейн текстуру EntityColor plane2,256,0,0 MoveEntity plane2,0,-5,0 AmbientLight 100,100,100 While Not KeyHit(1) time = MilliSecs() Color 255,255,255 SetBuffer TextureBuffer(tex3) Cls For i%=1 To 1000 ; Oval Rand(256),Rand(256),5,5,1 ; Пятно для каждого из 1000! юнитов Next SetBuffer BackBuffer() RenderWorld fr = fr + 1 If MilliSecs() - frTime >= 1000 fps = fr fr = 0 frTime = MilliSecs() EndIf Color 255, 255, 255 Text 5, 5, "FPS : " + fps Flip 0 Delay 0 Wend End резульат ) http://damp.ucoz.ru/newfog2.jpg |
Ответ: Как сделать туман войны?
А как быть с координатами?
Чтобы просвет был именно над юнитом? PickedX()? EntityX()? |
Ответ: Как сделать туман войны?
Как то не так получился туман войны. Просто карты вобще не видно.
|
Ответ: Как сделать туман войны?
Сделал билбоард.
Затем закрыл карту этими билбоардами. назначил им EntityPickMode 2 Где есть пик убираю билбоард. Работает вроде нормально, но у такого тумана резкие края (билбоар-квадрат без текстуры, с текстурой плохо), и тормозровато((( Может кто знает про туман в этой теме? |
Ответ: Как сделать туман войны?
натумань и воюй!!
|
Ответ: Как сделать туман войны?
Сделай в игре дымовые шашки.
|
Ответ: Как сделать туман войны?
Получилось:)
EntityX:) |
Ответ: Как сделать туман войны?
Казаки: Европейские войны
Жанр: Историческая стратегия реального времени Дата выпуска: IV квартал of 2000 Требования к системе: Pentium 200 или выше, 32 MB RAM (рекомендуется 64 MB), Sound card В этой игре как-то очень хитро сделали туман, так как игра не тормозила при 500 и больше юнитов на компах тех времён. Как они это сделали? Только сейчас задумался... |
Ответ: Как сделать туман войны?
По сравнению с возможностями Blitz3D... WarCraft 2000, StarCraft и т.п. более продвинуты по "туману войны".
А CS 2D на Blitze сделан? Просто инфа у меня когда-то мелькнула.. И Carnage Contest.. Может они на BMax? А то там и туман войны, сервак под Linux :dontknow: А так стоит поискать теорию, например "fog of war ... ммм система? способ?" Чё по англ писать то?.. Вот пока тупо чего нашёл: http://en.wikipedia.org/wiki/Fog-of-war |
Ответ: Как сделать туман войны?
|
Часовой пояс GMT +4, время: 02:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot