Как я могу сделать это маленькое подергивание?

Таким образом, у меня есть метод обновления в моем игровом проекте SpriteKit , в котором, согласно указателям лидеров, определяется положение других следующих персонажей:

-(void) update { if (_followingEnabled == YES || _isLeader == YES) { switch (currentDirection) { case up: self.position = CGPointMake(self.position.x, self.position.y + speed); // making a line of characters if (self.position.x < _idealX && _isLeader == NO) { self.position = CGPointMake(self.position.x + 1, self.position.y); } else if (self.position.x > _idealX && _isLeader == NO) { self.position = CGPointMake(self.position.x - 1, self.position.y); } break; case down: self.position = CGPointMake(self.position.x, self.position.y - speed); // making a line of characters if (self.position.x < _idealX && _isLeader == NO) { self.position = CGPointMake(self.position.x + 1, self.position.y); } else if (self.position.x > _idealX && _isLeader == NO) { self.position = CGPointMake(self.position.x - 1, self.position.y); } break; case left: self.position = CGPointMake(self.position.x - speed, self.position.y); // making a line of characters if (self.position.y < _idealY && _isLeader == NO) { self.position = CGPointMake(self.position.x, self.position.y + 1); } else if (self.position.y < _idealY && _isLeader == NO) { self.position = CGPointMake(self.position.x, self.position.y - 1); } break; case right: self.position = CGPointMake(self.position.x + speed, self.position.y); // making a line of characters if (self.position.y < _idealY && _isLeader == NO) { self.position = CGPointMake(self.position.x, self.position.y + 1); } else if (self.position.y < _idealY && _isLeader == NO) { self.position = CGPointMake(self.position.x, self.position.y - 1); } break; case noDirection: // in case you want to do something for noDirection break; default: break; } // switch (currentDirection) { } // if (_followingEnabled == YES && _isLeader == YES) { } 

_idealX и _idealY – целые числа, переданные из позиции лидера (я установил их как свойства ..), и позиция моих других персонажей, которые следуют за ним, – это float (исправьте меня, если я ошибаюсь)

моя теория:

Поэтому, когда я добавляю или вычитаю 1, позиция моих символов (float) никогда не будет равна _idealX / _idealY(int) и утверждения будут _idealX / _idealY(int) снова и снова, что вызывает это небольшое «подергивание» или «встряхивание» на Ось Y / X (добавление и вычитание 1).

Таким образом, вы бы поняли и визуализировали это лучше, я сделал скриншот о том, как это выглядит (2 персонажа позади него (Лидер) дергаются при перемещении ..):

введите описание изображения здесь

КАК Я УСТАНАВЛИВАЮТ ЭТО, СЛЕДУЮЩИЕ СЛЕДУЮЩИЕ НЕТ "TWITCH" или "SHAKE" за лидером ???

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

 x = floorf(x+0.5) 

Вам понадобится фактическая позиция и позиция чертежа, так как если вы используете напольные значения, то вещи будут работать не так, как предполагалось, на низких скоростях.

Вы не позволяете им двигаться более чем в одном направлении за раз. Может быть, диагональные движения должны быть вариантом?

  • Swift: Как назначить wilDisplayCell для конкретной пользовательской ячейки регистра?
  • Поиск одной частоты в звуковом файле xcode
  • Выход приложения со статусом 45
  • Swift, как создать структуру для обеих рук и i386
  • Создайте alertview и получите метку
  • PhoneGap / ChildBrowser - Форма приложения POST для ChildBrowser
  • Weird «Ошибка исполняемого файла с недопустимыми правами» ... кажется, вызвано совместным использованием iOS 8?
  • Как добавить ссылку на другой метод в документации Xcode
  • Обновить раздел статического UITableView
  • Столбец и конфликты жестов PKRevealController - как их решить?
  • Методы из новой версии iOS, не давая предупреждения, высылают старые SDK
  • Interesting Posts

    Добавление слоя к сцене НЕ РАБОТАЕТ

    UIPageViewController потеряет UISwipeGestureRecognizer

    Кнопки хорошо отображаются в IB, но не в симуляторе

    UIView – ожидание с длительностью, похоже, игнорирует продолжительность

    scheduleTimerWithTimeInterval запускается только один раз, когда для параметра Repeats установлено значение YES

    Добавление права «Группы приложений» на идентификатор приложения для виджета Today Extension

    PhoneGap SVG как data-uri на iOS

    iOS StatusBar скрывает, что контроллер вида перемещается вверх

    AppStore GEO ограничивает приложение для конкретных штатов США

    Можно ли использовать MFMessageComposeViewController для просмотра содержимого исходящего SMS?

    Автоматическая легкая миграция iOS Core Data иногда терпит неудачу

    Как добавить эффект перехода в текущей текущей сцене в cocos2d iphone

    Сделайте экран всплеска последним для более длительного времени iOS-React-Native

    Расширение Mime-типа не работает с приложением gmail в iOS

    отказе валидации altool после обновления до Sierra / Xcode 8.3

    Давайте будем гением компьютера.