ObjectRotate


Автор Сообщение

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 31-10-2009 00:47
Как вручную повернуть объект?То-есть чтоб не относительно текущего поворота...Надеюсь понятно выразился

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 31-10-2009 16:24
ObjectSetRotation(object,x,y,z)

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 31-10-2009 17:33
Я пробывал эту функцию...Но она как-то криво работает
Вот например:
ObjectSetRotation(actor,ObjectGetPitch(actor),ObjectGetTurn(actor),ObjectGetRoll(actor))
,по идее объект не должен повернутся?Просветите как эта функция работает

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 31-10-2009 18:55
Функция делает то, что от нее требуется - указывает поворот объекта относительно локального нулевого поворота.


ObjectSetRotation(actor,ObjectGetPitch(actor),ObjectGetTurn(actor),ObjectGetRoll(actor))
,по идее объект не должен повернутся?


Дело в том, что ObjectGetPitch и остальные возвращают углы не относительно локального нуля. Они возвращают углы, измененные функциями ObjectPitch, ObjectTurn, ObjectRoll. При этом, после вызова, например, ObjectPitch(object,90), функция ObjectGetPitch(object) даст не 90, как можно подумать, а почему-то -90.
В случае с ObjectRotate такого не наблюдается, но суть все равно такова: углы, с которыми работают функции относительного поворота (ObjectPitch и др.) - не те углы, с которыми работает ObjectSetRotation.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 31-10-2009 23:04
Еще хотел спросить,как сделать чтобы чар следил за мышой?Примерно как в алиен шутере...Пробывал через функцию ObjectPointToObject и пример 3д мыши,но опять таки поворот не возрашяется функциями ObjectGetPitch\ObjectGetTurn\ObjectGetRoll

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-11-2009 10:52
как сделать чтобы чар следил за мышой?Примерно как в алиен шутере...

Нельзя ли поподробней? Я на нашем форуме постоянно натыкаюсь на фразы типа "примерно как в игре XXX". А это не объяснение. Иногда очень трудно понять, что имеется в виду.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 01-11-2009 12:52
Я на нашем форуме постоянно натыкаюсь на фразы типа "примерно как в игре XXX". А это не объяснение. Иногда очень трудно понять, что имеется в виду.

Мне кажется пора подкорректировать правила форума и вывести напоминание об их прочтении!
Мне кажется в пункт 5 можно было добавить сие пояснение, естественно в стиле предупреждения

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 01-11-2009 13:15
Так просто легче обьяснить...Вид сверху не много под углом,ноги стоят на месте,туловище смотрит в сторону мыши...Примерно такое имел ввиду

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 01-11-2009 13:26
Так просто легче обьяснить...Вид сверху не много под углом,ноги стоят на месте,туловище смотрит в сторону мыши...Примерно такое имел ввиду

Я понимаю, что легче, но не все поголовно играют в игры, я в своей компьютерной жизни, которой уже 4 года, проиграл все год, потом перестал и пойми, когда в пример приводят обливион или еще что-то подобное, то я например не понимаю, что требуется, так как никогда не играл в неё! Я не думаю, что сложно описать словами действия, правильней было бы подкреплять сказанные слова примером:
Вид сверху не много под углом,ноги стоят на месте,туловище смотрит в сторону мыши, как в Alien Shooter.

Я думаю так, было бы правильней!
ДАЛЬНЕЙШИЕ СООБЩЕНИЯ ТОЛЬКО ПО ТЕМЕ!

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-11-2009 17:01
Мне кажется в пункт 5 можно было добавить сие пояснение, естественно в стиле предупреждения

Хорошая мысль. Добавил.

Вид сверху не много под углом,ноги стоят на месте,туловище смотрит в сторону мыши...Примерно такое имел ввиду

А в чем проблема? ObjectSetRotation там и не нужен даже:

deltax=(display_get_width()/2-MouseGetX())/8;
deltay=(display_get_height()/2-MouseGetY())/8;
MouseSetPosition(display_get_width()/2,display_get_height()/2);
ActorRotateBone(actor,bone_torso,0,0,deltax/50);
ActorRotateBone(actor,bone_torso,0,-deltay/50,0);

У меня даже где-то был недопиленный пример. Правда, там вид со спины, но переделать нетрудно. Если надо - допилю, выложу.

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 01-11-2009 20:01
Спасибо,да пример бы не помешал
\
Чтоб новую тему не создавать,спрошу тут .
Как возвратить поворот когда объект был повернут функцией ObjectPointToObject?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 05-11-2009 10:31
Я думаю, самый лучший вариант - возвращать не углы поворота, а вектор Direction:

ObjectSetDirection(object2,
ObjectGetAbsoluteDirection(object1,0),
ObjectGetAbsoluteDirection(object1,1),
ObjectGetAbsoluteDirection(object1,2));

С ним уж точно никаких проблем быть не должно.

 

Offtop.ru © 2003