Я разрабатывающих Kit игры Sprite с помощью Swift, свободно следуя учебники Ray Wenderlich нашел here и here, и включающие в SKTUtils module, что позволяет легко сложение/умножение/деление и т.д. из CGPoint
с.Умножение CGPoints с использованием SKTUtils
Проблема, которую я нахожу, заключается в том, что вся онлайн-документация относится к более старой версии модуля Objective-C, тогда как код в Github был переписан для использования Swift, и нет соответствующих руководств по использованию.
В учебнике (написаны с использованием Objective-C) указывает, что следующий код должен работать:
- (void)update:(NSTimeInterval)delta {
CGPoint gravity = CGPointMake(0.0, -450.0);
CGPoint gravityStep = CGPointMultiplyScalar(gravity, delta);
self.velocity = CGPointAdd(self.velocity, gravityStep);
CGPoint velocityStep = CGPointMultiplyScalar(self.velocity, delta);
self.position = CGPointAdd(self.position, velocityStep);
}
Который, в свободном переводе на Свифта, приравнивается к:
func update(delta:NSTimeInterval) {
let gravity:CGPoint = CGPointMake(0.0, -450.0);
var gravityStep:CGPoint = CGPointMultiplyScalar(gravity * delta)
self.velocity = self.velocity + gravityStep;
let velocityStep:CGPoint = CGPointMultiplyScalar(self.velocity, delta)
self.position = self.position + velocityStep;
}
Однако функция CGPointMultiplyScalar
было изменено на *
. Там нет сопроводительной документации, что я могу найти о том, как реализовать редеет, и мои подходы не работают:
func update(delta:NSTimeInterval) {
...
var gravityStep:CGPoint = CGPoint(gravity * delta); // nope
var gravityStep:CGPoint = gravity * delta; // nope
...
}
Кто-нибудь там есть опыт работы с этим и может сказать мне, где я неправильно?
Отлично! Большое спасибо, я рвал волосы! – MassivePenguin
Добро пожаловать, я рад, что смог помочь :) –