2010-11-29 4 views
0


Другой относительно простой вопрос, на который я надеюсь.
У меня есть объект person, который я перемещаю в точку, обозначенную точкой на экране, затронутом пользователем.
Я хотел бы иметь заданную скорость, в которой объект перемещается в позицию.
Однако я не уверен, как это сделать, поскольку каждый раз, когда я вычисляю его, он имеет либо переменную скорость, либо происхождение х становится там до y происхождения и наоборот.
Я хотел бы иметь возможность перемещать их с одинаковой скоростью и одновременно достигать точки.
Я надеюсь, что я объяснил это хорошо, если нет, пожалуйста, задавайте вопросы
Заранее спасибо
DiscoПеремещение объекта в точку

+0

как вы осуществляете перемещение сейчас? человек какой-то uiview? – Vladimir 2010-11-29 11:48:55

+0

хорошо вопрос. Я использую представление opengl, и каждый раз, когда он рисует, он вызывает метод в объекте Player для вычисления его позиции в зависимости от позиции, затронутой пользователем. Если его нет в этой позиции, он добавляет что-то к объектам игрока x и y. Мой объект-плеер является вершиной, а im перемещает его с помощью x и y. – StuStirling 2010-11-29 11:51:35

ответ

0

В функции обновления, вычислить X и Y расстояние от точки А до точки Б, а каждый кадр приращения разница на той же доля, а не постоянное значение.

i.e. player.X += difference/frameCount.

0

Ну, скорость - это расстояние * время, и вам нужен экземпляр NSTimer. Используйте timerWithTimeInterval: invocation: repeat: и вызывать метод moveObject. Метод moveObject перемещает объект на определенное расстояние каждый раз, когда он вызывается, пока местоположение объекта объекта не будет равно месту назначения. Затем метод moveObject делает недействительным таймер, а ваш дядя Боба.

--- UPDATE ---- Разве вы не знали об этом, как только я это написал и что я вижу? UIView animateWithDuration: анимация:. Что выше, но, вроде бы, проще. По крайней мере, я надеюсь, что я не использовал его сам. Все же.

Смежные вопросы