Правильный поворот с изменением координат х / у - PullRequest
1 голос
/ 28 октября 2011

Я пытаюсь сделать небольшую игру лучника, и проблема, с которой я сталкиваюсь, связана, в частности, с двумя пикселями, я назову их _arm и _arrow.Когда настоящий лучник тянет стрелу назад, он не сразу тянет стрелу назад настолько, насколько позволяет ему его сила, стрелке требуется немного времени, чтобы ее вернуть.Угол _arm равен вектору от точки, где пользователь коснулся экрана.Вращение идеально, поэтому _arm это хорошо._Arrow должен находиться на той же строке, что и _arrow, каждый шириной в 1 пиксель, поэтому создается впечатление, что _arrow находится точно над _arm.

Я попытался уменьшить на основе координат х / удля переменной, которая меняется со временем, и я установил местоположение _arrow равным местоположению _arm, и попытался сделать так, чтобы _arrow возвращался назад.однако, если вы поверните, x / y испортится, потому что он не пропорционален осям x и y, поэтому в основном _arrow будет либо немного выше руки, либо немного ниже ее, в зависимости от угла вектора, в зависимости от касания.

Как я мог использовать положение _arm и вектор касания x / y, чтобы стрелка выглядела так, как будто ее немного оттягивали назад, но при этом держала стрелку поверх спрайта _armтак что его позиция будет похожа на руку, но слегка отклонена, но все еще остается над пикселем _arm все время.Если вам нужна дополнительная информация, просто оставьте комментарий.

1 Ответ

0 голосов
/ 29 октября 2011

Я не уверен, что полностью понял, но я все равно попробую ответить:

Чтобы стрелка двигалась и поворачивалась в то же место, что и добавление стрелки в качестведитя руки.Вы все равно можете отрендерить его, если хотите, сделав его z меньше единицы: [arm addChild:arrow z:-1]

Чтобы стрелка отодвинулась от руки, когда лук натянут, вы просто устанавливаете положениестрелка относительно руки.

Проблема, которую я вижу в этом решении, заключается в том, что такая группировка спрайтов может быть немного необычной после того, как стрела покинет лук.Здесь вы, вероятно, не хотите, чтобы стрелка была дочерним элементом руки, поскольку системы координат больше не связаны.

Даже если они уверены, что то, что я предложил , решило бы [the]проблема"вот это

решение автора

Мне нужно было получить координаты x и y руки на основе угла, затем я получилsin / cos числа, которое основано на том же угле, что и рука, и вычтено из этого.

...