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=2089)

stone_evil 11.12.2006 14:16

Стратегия: юнит уходит под землю
 
Привет.
Может у кого такая проблема уже была.
Вот так создается Замок:
Код:

Castle1=LoadMesh("castle1.3ds")
 EntityType Castle1, TypeCastle
 EntityPickMode Castle1,2
 ScaleMesh Castle1,1.2,1.2,1.2
 PositionEntity Castle1,cXPlane-10,0,0

Вот так юнит поворачивается и ходит:
Код:

  dx# = EntityX( unit\entity ) - EntityX( unit\point )
  dy# = EntityY( unit\entity ) - EntityY( unit\point )
  dz# = EntityZ( unit\entity ) - EntityZ( unit\point )
  d# = unit\speed * (CurrentSecs - unit\last_update) / 1000
  AlignToVector( unit\entity, dx, dy, dz, 0, 0.5 )
  MoveEntity unit\entity,0,0,-d

У юнита есть свой pivot, который я передвигаю в то место, куда ему необходимо пойти. Если пользователь хлопнул мышкой по полю, то я передаю параметры PickedX() и PickedZ(), pivot туда встает и юнит идет за пивотом:
Код:

  Point = unit\pivot
  PositionEntity Point,x,0,z
  unit\point = Point

Все это замечательно работает. Теперь я хочу, чтобы при клике на Замке (Дворце и т.д.) юнит шел к нему. Для этого я при клике перемещаю pivot, как обычно, куда надо, а в данном случае мне надо рядом с Замком. Параметры x=170 и z=0 задаю вручную, ибо знаю, где Замок находится. Юнит туда идет, конечно, только он почему-то сначала поворачивается не только вокруг оси Z, но и вокруг оси Y, т.е. уходит под землю, и идет вверх ногами.
Это не появляется, когда пользователь щелкает на поле - там юнит прекрасно идет куда надо. Это появляется только когда пользователь щелкает на Замке и я посылаю юнит в ту точку, куда ему надо идти к Замку. Разница только в том, что пользователь щелкает на меше Замка, а не на меше поля, и в том, что я вручную задаю координаты PositionEntity. Но почему-то возникает такой глюк.
Кто сталкивался с подобным, разъясните, что к чему???

HolyDel 12.12.2006 02:31

Re: Стратегия: юнит уходит под землю
 
0. imho:пересложнил с ходьбой и поворотами юнита.
1. конечно хз, но если юнит не должен перемещаться по вертикали, может дельту y сделать равной нулю?
2. лутче выложи код с медиа (необходимой)


AlignToVector entity,vector_x#,vector_y#,vector_z#,axis[,rate#]
Parameters
entity - entity handle
vector_x# - vector x
vector_y# - vector y
vector_z# - vector z

axis - axis of entity that will be aligned to vector
1: x-axis
2: y-axis
3: z-axis

rate# (optional) - rate at which entity is aligned from current orientation to vector orientation. Should be in the range 0 to 1, 0 for smooth transition and 1 for 'snap' transition. Defaults to 1.

Description
Aligns an entity axis to a vector.

ось Z - ето 3, а не 0.
выложи код, обязательно посмотрю.

stone_evil 12.12.2006 06:50

Re: Стратегия: юнит уходит под землю
 
Да, извините, опишу, что пробовал (на самом деле код как есть работает отлично при передвижении по полю и за объектами):
1. Делал dy=0
2. менял axis на 3
3. вместо pivot подсовывал сам меш Замка
Вышеописанные танцы с бубном эффекта не дают. Переместил pivot подальше от Замка, все нормально отрабатывает. Перемещаю рядом с Замком - глюк. Я подумал, может pivot появляется под мешем, от этого такой глюк и происходит? Да не должен. Вобщем сижу до сих пор ковыряюсь.
HolyDel, про медиа не понял, стукнулся в аську.

HolyDel 12.12.2006 22:03

Re: Стратегия: юнит уходит под землю
 
Шож тут непонятного, писать в браузере не очень удобно и уж тем паче не производительно, мну может тоже хочется потанцевать с бубном ;)


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

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