![]() |
Ответ: Вопрос-Ответ (для новичков)
пфф... Если у тебя не 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# и тд. Вот тебе и будет немного физики :)
|
Часовой пояс GMT +4, время: 05:05. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot