![]() |
Ответ: Вопрос-Ответ (для новичков)
http://forum.boolean.name/showthread.php?t=3713
Blitz3D > Полезные функции Нарезка большой строки по разделителю (перенос по словам)) |
Ответ: Вопрос-Ответ (для новичков)
Выложите пожалуйста пример поиска пути (*AStar или с либой Diplomat'а) в 3d. А то сколько не пытаюсь все не могу понять, как в 3д правильно использовать, а именно как "привязать" к карте.
|
Ответ: Вопрос-Ответ (для новичков)
пфф... Если у тебя не Flight Simulator, то делишь весь Plane свой 3Д как двухмерную плоскость на квадраты удобного размера(например 10 энтитиX на 10 энтитиY). Задаешь им значения проходимо и непроходимо(желательно ручками) и как в обычном астаре ищешь путь. У тебя вроде летать юниты не должны? Или по лестницам лазеть?
|
Ответ: Вопрос-Ответ (для новичков)
Это я знаю, но я не могу че то понять как "привязку" к карте делать. Я уже делал с библой Дипломата, но у меня только в центре карты поиск пути работал. =/
|
Ответ: Вопрос-Ответ (для новичков)
С библой дипломата не знаком, извини. Я бы накодил по-своему или стырил Отсюда.Там отличный астар с кучей коментов, статьей и встроенным редактором проходимости\непроходимости. Чу-чуть оптимизировать и можно вставлять в 3Д игру
|
Ответ: Вопрос-Ответ (для новичков)
Ну мне бы и с *AStar'ом сгодилось... Я просто не понимаю как этот поиск пути делать (статьи читал по несколько раз).. :( Кому не тяжело дайте плиз код с поиском пути в 3д... :(
|
Ответ: Вопрос-Ответ (для новичков)
Как сделать норм вид от 1 лица, чтоб камера была на уровне глаз?
Когда делаю обычным пивотом Global player=CreatePivot() PositionEntity player,0,150,0 EntityType player,TypePlayer EntityRadius player, 50 camera=CreateCamera(player) PositionEntity camera,0,0,0 то его радиус не дает даже в дверной проем пройти. зы неругайте, тока учусь:) |
Ответ: Вопрос-Ответ (для новичков)
Если радиус не дает пройти в дверь, почему бы этот самый радиус не уменьшить? И причем здесь камера?
|
Ответ: Вопрос-Ответ (для новичков)
Если уменьшу, тогда соответственно и камера вниз упадет и вид буит как бы из ног.
Управление камерой у меня мышкой. |
Ответ: Вопрос-Ответ (для новичков)
laaqiq
camera=CreateCamera(player) PositionEntity camera,0,2,0 |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Если камера вращается вокруг пивота, то привязуй пивот к камере. И будет тебе айс.
При уменьшении ентитирадиуса таких проблем не должно быть... в любом случае если так, то поднимай камеру повыше ЗЫ Уху мне ник вернули! |
Ответ: Вопрос-Ответ (для новичков)
Вот так?:
Const TypePlayer = 1, TypeWall = 2 Graphics3D 800,600 SetBuffer BackBuffer() HidePointer Global camera,campitch#,camyaw#,mvx#,mvy#,mvz# Global camera=CreateCamera() PositionEntity camera,0,0,0 Global player=CreatePivot(camera) PositionEntity player,0,150,0 EntityType player,TypePlayer CameraFogMode camera,1 CameraFogColor camera,100,200,255 Collisions TypePlayer, TypeWall, 2, 3 map=LoadCSM("test.csm","textures\") ScaleEntity map, 0.5,0.5,0.5 While Not KeyHit(1) mxspd#=MouseXSpeed()*0.2 myspd#=MouseYSpeed()*0.2 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 campitch=campitch+myspd If campitch<-89 Then campitch=-89 If campitch>89 Then campitch=89 RotateEntity player,campitch,EntityYaw(player)-mxspd,0 If KeyDown( 203 )=True Then mvx=mvx-0.7 If KeyDown( 205 )=True Then mvx=mvx+0.7 If KeyDown( 200 )=True Then mvz=mvz+0.7 If KeyDown( 208 )=True Then mvz=mvz-0.7 mvy=mvy-5.1 If EntityCollided(player,TypeWall) mvy=mvy+3.1 EndIf mvx=mvx/1.2 mvy=mvy/1.2 mvz=mvz/1.2 MoveEntity player,mvx,0,mvz TranslateEntity player,0,mvy,0 RenderWorld UpdateWorld Flip Wend End Include "load_csm.bb" но тогда управление не пашет( |
Ответ: Вопрос-Ответ (для новичков)
laaqiq ты создал камеру и пивот на 150 едениц выше камеры
не к чему хорошему ето не приведет зачем тебе вопще пивот здался? зделай так: player = createsphere() camera = createcamera(player) positionentity camera,0,2,0 у меня таким способом все отлично работает |
Ответ: Вопрос-Ответ (для новичков)
1)Довольно неблагодарно копипастить весь код с includ'aми
2)Этот код вообще не может работать поскольку переменная Camera объявляется глобальной дважды 3)Зачем такие сложности? Куча переменных это хорошо, но ты же не физику движений делаешь? Код очень извращенный... Такое ощущение что ты его откуда-то скопировал(возможно, с физического бенчмарка) и теперь не можешь понять почему ничего не работает. Делай проще, и люди к тебе потянутся. Цитата:
Вывод: переписывай код на этот раз без TranslateEntity, извращенных переменных, настроек камеры и т.д. Дать правильный пример не могу - у меня нет твоей медии, а если я напишу по-своему то ты ничего не поймешь |
Ответ: Вопрос-Ответ (для новичков)
я как раз и хочу чтбы на камеру действовала сила притяжения к земле:crazy:
ладн завтра еще помучаюсь |
Ответ: Вопрос-Ответ (для новичков)
Делай поля ускорений по AX#,aAY#,aZ#, соответственно к aY# прибавляй отрицательную гравитацию. И прибавляй к координатам тела X#=X#+aX# и тд. Вот тебе и будет немного физики :)
|
Ответ: Вопрос-Ответ (для новичков)
Кто знает как сменить стандартный ярлык Blitz3d?
где то , когда то видел но в то время не обратил внимание:) |
Ответ: Вопрос-Ответ (для новичков)
Прогой ResHacker.
Заранее подготовить ico (я использую Фотошоп + icon suchi). Вскрыть ехешник Ресхакером и заменить (там несложно, разберёшься) Есть другой вариант: проделать то же самое с блицовской runtime.dll, тогда всё, что ты будешь компилить, будет иметь ту иконку, которую ты сунул в эту dll. |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Я не совсем понимаю что значит поля ускорений, покажите на примере. |
Ответ: Вопрос-Ответ (для новичков)
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Laagiq если я тя правильно понял:
я лично делаю вот так: Global Player=CreateSphere() Global CamPlayer=CreateCamera(Player) PositionEntity Player,50,60,60 EntityRadius player,8,30 MoveEntity CamPlayer,0,10,0 Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Кажется проблема гдето здесь:
Код:
While Not KeyHit(1) зы Знаю что код корявый, но другого незнаю( |
Ответ: Вопрос-Ответ (для новичков)
я даже догадываюсь где ты этот код откопал :)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Я хочу сделать бродилку. Мне надо, чтобы камера была на уровне головы и игрок мог передвигатся как во всех нормальных FPS. |
Ответ: Вопрос-Ответ (для новичков)
делай низкополигональную большую(относительно) сферу, ставь ей альфу в 0, коллюзию со скольжением, камеру к ней припаренть, поставь по оси Y чуть выше, т.е: Camera=CreateCamera(Sphere):Positionentity Camera,0,10,0
Собственно когда я делал так все работало :) |
Ответ: Вопрос-Ответ (для новичков)
если у тя возникает проблема типа смотриш вниз и идеш вперед и он опускается вниз , куда смотрит камера?я решил вопрос так:
игрок крутиться только по горизонтали, а камера только по вертикали: RotateEntity Camera,campitch,0,0 RotateEntity Player,0,EntityYaw(player)-mxspd,0 |
Ответ: Вопрос-Ответ (для новичков)
laaqiq
Код:
MoveMouse CursorPosX,CursorPosY лимит ето угол поворота камеры по оси икс |
Ответ: Вопрос-Ответ (для новичков)
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
кто нибудь из вас мне обьяснит почему блитз не находит чилды в .b3d (сравнивал с 3ds), а я так верил что этот формат избаранный!
|
Ответ: Вопрос-Ответ (для новичков)
наверна загрузил как статику а нада как аниммеш !!
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
первая - 3дс вторая - б3д в 3дс находит 42 чилда а в б3д - 0! |
Ответ: Вопрос-Ответ (для новичков)
|
Ответ: Вопрос-Ответ (для новичков)
странно !! Как експортировал, пиплайн ?? С настройками все окей ??
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
IGR Я ваще юзал унылый милкшейп. |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Задам заодно вопрос о проблеме, с которой встретился недавно, но ещё сильно не размышлял по ее поводу. Вот кусок кода: For kubik.cube=Each cube ... ... ... ......................................... If kubik\hunger < 0 Then FreeEntity kubik\model FreeEntity kubik\waypont Delete kubik EndIf Next model и waypoint - все филды которые содержат ентити(тоесть кроме них больше таковых нет(ТОЧнО НЕТ(!))). Стоит проверка эта в конце цикла For...each и вроде никаких проблем не вызывает. Это не мешает ей выдавать мне Memory Acess Violation. Выдает его точно и нЭзаперечно именно это условие(проверено удалением,DebugLog и Stop. Сомнений не вызывает). Собственно сам вопрос: Нужно ли что-то ещё очищать кроме ентитей типа перед удалением элемента типа(сори если неправильно сформулировал)? Если нет - то почему не работает? |
Ответ: Вопрос-Ответ (для новичков)
так на какой строке мав ?? Было бы круто увидеть полный код !! :)
|
Ответ: Вопрос-Ответ (для новичков)
Mav на Delete kubik
Код мелкий - 300 строк. Сегодня не выложу - спать хочу, а код весь говно если без редакции). Завтра в 4-5 дня по Украине жди...А ещё лучше напиши тут если ты действительно хочешь видеть это ;) |
Ответ: Вопрос-Ответ (для новичков)
черд, какой мав ?? Нада включить дебагер и оно напишет что случилось (в лучшем случаее) !! А код мне мне зачем, я думал ты в другом месте обращяешся к елементу !!
|
Ответ: Вопрос-Ответ (для новичков)
проверь свою модель на этом коде :
Код:
Graphics 640, 480, 32, 2 |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
2 вариант лучше !!
если его правильно использовать !! тут ты избавляешся от перебора и проверки !! |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
я это имел ввиду !! |
Ответ: Вопрос-Ответ (для новичков)
Чилды парсим рекурсией!
У чилдов бывают чилды! PHP код:
|
НАРОД помогите задолбался вспотел !!!
Вложений: 1
как астановить анимированный спрайт !!!???????
тоесть что б один раз проигрался до 30го кадра ??? |
Ответ: Вопрос-Ответ (для новичков)
Допиши строчку кода тут:
Код:
frame=MilliSecs()/50 Mod 30 |
Ответ: Вопрос-Ответ (для новичков)
Работаю тут потихонку (когда настроение) над свойм GTA2 и проблема человеками.
В GTA2 они просто ходят по своей дороги и когда уже им навстречу идет стена дома например, тогда они уже об этом знают и плавно переворачиваются. Не доходя до стенки. А у меня если с стеной или чем угодно "collision" тогда реско поворот на 360 градусов. Вообще не реально, ходят как столбы. Как сделать плавный поворот и предсказать что вот уже стенка или конец дороги идет и пора переворачивать?? |
Ответ: Вопрос-Ответ (для новичков)
Вэйпоинты... по-моему так было в ГТА 2
|
Ответ: Вопрос-Ответ (для новичков)
В GTA2 каждый TILE или скажем BLOCK имеет свои "флаги": PAVEMENT, ROAD, FIELD, AIR.
Все это можно изменить в редакторе карт. На FIELD людей и машин нет, на ROAD есть машины, нa PAVEMENT люди. Bообщем по этим "флaгам" игра знает что и где. Для машин еще указатели напрявления http://img682.imageshack.us/img682/9606/arrows.png |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
вот посмотри может поможет Код:
|
Ответ: Вопрос-Ответ (для новичков)
Спасибо Blender, именно то что нужно!
Хотя имеет баги http://img64.imageshack.us/img64/722/buggyf.png но это пока самая малая проблема. А в каком физиксе именно? |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Видимо, это происходит в случае, когда кубик повёрнут точно перпендикулярно стенке, и прога не может никак решить, поворачивать его влево или вправо.
Значит, тебе нужно додумать и обработать это условие. А вообще в том примере не очень хороший способ обхода препятствий, жрущий. Имеет смысл только при непредсказуемом изменении геометрии уровня во время игры. Если этого не планируется, то лучше задуматься над вейпойнтами |
Ответ: Вопрос-Ответ (для новичков)
Reks
Ну этого просто было мало. Не умею еще это использовать для себя. Алгоритмика понимаете. Учится надо еще всему этому. А код Blendera помог. Хоть это решено. |
Ответ: Вопрос-Ответ (для новичков)
Такой вопрос:
Есть модель игрока, когда бежит анимация бега,когда прыгает анимация прыжка и т.д. Все работает! Но тут я начал делать анимацию бега с оружием, анимацию прыжка с оружием и т.д. Можно ли привязать модель оружия к кости Игрока, тоесть допустим к кости ладошки, чтоб оружие следовало за анимацией ладошки и игрок какбы держал его?? |
Ответ: Вопрос-Ответ (для новичков)
можна !!
- находиш ладошку (команда финдчилд) - парентиш оружие (парентентити или ентитипарент непомню уже) Вот и все !! Если же ты хочеш что бы допустим при прижке с оружием проигровалась специфическая анимка ну тип там оружие в сторону отвел или типа того то нужно использовать блендинг анимаций !! На блице есть решения этого, хоть и не совсем суперовые но вполне работоспособные !! |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
2. Использованная тобой привязка к миллисекундам будет показывать не с нулевого кадра, а неизвестно с какого. Вот даю рабочий код, в котором разделил твою функцию на две, загрузка и обновление. Добавил флаг анимации - надо ли анимировать. Повторный запуск анимации по нажатию на пробел. Ну и глобальных переменных добавил. Код:
Graphics3D 640,480 |
Ответ: Вопрос-Ответ (для новичков)
В GTA2 самые простые тени у спрайтов вот пример.
![]() И у машины видно тень. Конечно там никакого солнце нету. Проста имитация что свет из верхнего левого угла. Так что тени всегда на одной стороне. Сама тень по форме спрайта. Как такое на Blitz или Xors3D сделать? На OpenGL есть пример там легко. Там берут ту же картинку и как та маскируют и рисуют с маленким оффсетом |
Ответ: Вопрос-Ответ (для новичков)
Ты картинки как рисуешь? Простыми 2Д-средствами типа DrawImage и иже с ним? Тогда готовьсо к гемору =)
Если спрайтами в 3Д, то попроще, но, по ходу, придётся текстуры для теней генерировать отдельно, хотя бы из основной текстуры объекта ;( Сделать тень отдельным спрайтом с оффсетом и чуть пониже спрайта объекта и рендерить так. Тут главное придумать алгоритм, который из цветной текстуры спрайта сделает ч/б текстуру, где чёрное - непрозрачные области, белое - прозрачные. Это даже не сложно сделать чтоб работало, сложно чтоб ощутимо много времени при загрузке не отнимало. И анимировать теневой придётся отдельно. Тогда Multiply blend спасёт отца русской демократии. З.Ы. Цитата:
|
Часовой пояс GMT +4, время: 07:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot