Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2015, 15:56   #1
Code_Bryant
 
Аватар для Code_Bryant
 
Регистрация: 24.06.2011
Сообщений: 5
Сообщение XNA прирощение координат

Всем привет. Возник вопрос с прирощением координат в XNA 4.

Есть у меня персонаж с центром в зеленой точке. Мне нужно реализовать вылет пуль из красной точки.

К примеру, зеленая точка это Vector2(20, 20), а красная точка тогда Vector2(20 + 10, 20) тогда достаточно к позиции прибавить просто Vector2(10, 0).
Но все не так просто.

Если персонаж поворачивается, то прибавлять нужно уже не Vector2(10, 0), а Vector2(0, 10).

Должен быть способ по-проще, но я его не знаю.
Может кто-то подскажет?

010101010101010101010101

Решил.

Код:
playerShootPosition = playerPosition + new Vector2(75 * (float)Math.Cos(playerRotation), 75 * (float)Math.Sin(playerRotation));
Здесь:
playerShootPosition - точка из которой нужно стрелять
playerPosition - позициия персонажа
playerRotation - угол поворота персонажа
75 - велечина смещения относительно позиции персонажа

Последний раз редактировалось Code_Bryant; 27.01.2015 в 23:32. Причина: Нашел решение
Code_Bryant вне форума Ответить с цитированием
Старый 27.01.2015, 20:12   #2
Code_Bryant
 
Аватар для Code_Bryant
 
Регистрация: 24.06.2011
Сообщений: 5
По умолчанию

Неужели никто не подскажет?
Code_Bryant вне форума Ответить с цитированием
Старый 27.01.2015, 20:36   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

угол поворота же у вас есть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.01.2015, 20:45   #4
Code_Bryant
 
Аватар для Code_Bryant
 
Регистрация: 24.06.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
угол поворота же у вас есть.
Есть, но я что-то не могу построить в голове зависимость. Туплю, простыми словами.
Подскажите примерный алгоритм.
Code_Bryant вне форума Ответить с цитированием
Старый 27.01.2015, 23:28   #5
Code_Bryant
 
Аватар для Code_Bryant
 
Регистрация: 24.06.2011
Сообщений: 5
По умолчанию

Сам нашел ответ.
Код:
playerShootPosition = playerPosition + new Vector2(75 * (float)Math.Cos(playerRotation), 75 * (float)Math.Sin(playerRotation));
Здесь:
playerShootPosition - точка из которой нужно стрелять
playerPosition - позициия персонажа
playerRotation - угол поворота персонажа
75 - велечина смещения относительно позиции персонажа
Code_Bryant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не компилируется C# XNA Hugra C# (си шарп) 0 20.07.2013 12:30
TCP и XNA MyXa C# (си шарп) 2 23.10.2012 17:20
XNA dampirik Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 22.06.2011 01:59
XNA 4, C# stck C# (си шарп) 1 01.02.2011 04:28
C# XNA Cpluser Общие вопросы .NET 1 19.12.2009 15:07