forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   переход между уровнями ... (http://forum.boolean.name/showthread.php?t=8992)

drave 24.08.2009 20:35

переход между уровнями ...
 
Ребятки , вы уж простите .... Но вот такая проблема , допустим подходит мой перс к двери ,кликает на неё ( типа входит) , и как сделать затемнение экрана на 2 секунды (переход) и потом перс уже стоит в другой комнате ( с норм экраном) ?!? И чтоб нада было иммено подойти к двери а не за километр навести на неё курсор и войти !

И расскажите чуток о камерапике , я как знаю без него в этом случае никак !


Я сам по себе чокнутый новичок Блитцер ( не могу жить без гейммекинга) , поэтому еси не ответите я опять буду всё ночь ломать голову ! :)

Данил 24.08.2009 20:45

Ответ: переход между уровнями ...
 
EntityPickMode к каждому entity, который можно пикнуть.
В цикле CameraPick(camera,x,y)
и EntityPick ( entity,range# ) или же EntityDistance# ( src_entity,dest_entity)

Цитата:

затемнение экрана на 2 секунды (переход)
- можно сделать черный спрайт, хотя это черезжопинг, не помню как правильно)

Цитата:

и потом перс уже стоит в другой комнате
выгружаем уровень , т.е. все модели карты и т.п. - загружаем все новое - ставим своего перса где надо, рассталвяем всех врагов - вот уровень два.

Illidan 24.08.2009 20:48

Ответ: переход между уровнями ...
 
Чтоб дверь срабатывала непосредственно вблизи, нужно помимо пика проверять расстояние от игрока до двери. Команда для этого entitydistance
для затемнения можно например заранее расположить перед камерой прозрачный квад и когда нужно затемнить экран делать его видимым, а дальше менять уровень и снова прозрачность на 0.
Карочь, вопросы элеменарные, так что в любом случае лучше поломай голову;)
З.Ы.Пока писал, уже опередили)))

NitE 24.08.2009 20:51

Ответ: переход между уровнями ...
 
Товарищи ! делайте ваши ставки - сколько вопросов породит эта фраза: "для затемнения можно например заранее расположить перед камерой прозрачный квад и когда нужно затемнить экран делать его видимым, а дальше менять уровень и снова прозрачность на 0." я ставлю 5-7

Illidan 24.08.2009 20:52

Ответ: переход между уровнями ...
 
Цитата:

Сообщение от Данил (Сообщение 116041)
- можно сделать черный спрайт, хотя это черезжопинг, не помню как правильно)

нет, не чрезжопинг))

Nite, тебе что-то непонятно? спрашивай, отвечу по мере своих знаний)))

ABTOMAT 24.08.2009 22:43

Ответ: переход между уровнями ...
 
Цитата:

- можно сделать черный спрайт, хотя это черезжопинг, не помню как правильно)
Это через жопу.
Нужно юзать IDirect3DDevice7::DrawIndexedPrimitive, что, по понятным причинам, в блице сделать никак.
Так что спрайт перед камерой - единственный способ сделать аппаратное затемнение на блице без либ.

NitE 24.08.2009 22:49

Ответ: переход между уровнями ...
 
Illidan, отвечать так как ты, таким как drave не следует, ибо они всёравно ничерта не поймут, и будут дальше спиногрызить

Andvrok 25.08.2009 00:56

Ответ: переход между уровнями ...
 
Вот функция, создает тело перед камерой
Код:

Function CreateDark()
        drk = CreateMesh(cam)
        srf = CreateSurface(drk)
                AddVertex srf, -1, 1, 0, 0, 0
                AddVertex srf, 1, 1, 0, 1, 0
                AddVertex srf, -1, -1, 0, 0, 1
                AddVertex srf, 1, -1, 0, 1, 1
                AddTriangle srf, 0, 1, 2
                AddTriangle srf, 3, 2, 1
                ScaleEntity drk, 1024.0 / Float(1024), 1024.0 / Float(768), 1
        PositionEntity drk, 0, 0, 1.0001
        EntityOrder drk, -100000
        EntityBlend drk, 1
        EntityColor drk,0,0,0
        HideEntity drk
End Function

Вместо 1024 и 768 можешь подставить свое разрешение экрана.

Потом когда надо используешь
Код:

ShowEntity drk
и For от 0 до 1 с шагом .02 или .01 и изменяешь альфу.
Код:

        For zt#=0 To 1 Step .02
                    EntityAlpha drk,zt#
                    RenderWorld
                    UpdateWorld
                    Flip
        Next


MiXaeL 25.08.2009 03:28

Ответ: переход между уровнями ...
 
А через изменение гаммы никак, кстати?
Сам особо не вникал, не приходилось как-то)

ABTOMAT 25.08.2009 03:36

Ответ: переход между уровнями ...
 
Цитата:

А через изменение гаммы никак, кстати?
В окне работать не будет.

IGR 25.08.2009 14:51

Ответ: переход между уровнями ...
 
Цитата:

Нужно юзать IDirect3DDevice7::DrawIndexedPrimitive,
хм... несовсем понял, а это зачем ??

drave 26.08.2009 20:17

Ответ: переход между уровнями ...
 
А вот тож вопросик , допустим я сделал проверку на пик и еси нажимают кнопку происходит затемнение , а далее ? Двигать камеру ( перса ) к какому нить dummy в комнате ( в которую переходят) ?! или подругому ?!

Nex 26.08.2009 20:52

Ответ: переход между уровнями ...
 
drave, если я не ошибаюсь, то удаляешь карту, загружаешь новую карту, ставишь игрока где надо и усе.

Illidan 26.08.2009 21:12

Ответ: переход между уровнями ...
 
можно и так и так. первый способ подходит больше для мгновенного перемещения, и затемнение тут, впринцыпе, лишне, но нужно правильно организовать выгрузку-подгрузку ресурсов, так как память не резиновая. Второй способ больше подходит тебе, так как ты, всёже, затемняешь экран, а это дает время для комфортной подмены уровней

drave 02.09.2009 03:12

Ответ: переход между уровнями ...
 
Блин... так как засорять форум неразумно , буду продолжать тут ... Драсти снова , эт опять я имба нуб drave , ребятки , ну хоть убейте ниче нимогу поделать ... Вот есть дверь , есть камера ( припарентинная к сфере) , как при наводке курсора ( прицела) проверить наведён ли курсор на дверь ?!?!? Помогите плиз ...:(


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

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