2016-02-25 5 views
0

Так что у меня есть что-то вроде этого в моем коде:Swift - Оператор перегрузки - Умножение для CGFloat

let padding = mySprite1.size.height/2 
let margin = 1.2 

Тогда в функции, я стараюсь, чтобы умножить их люблю:

newSprite.position = CGPointMake(x: 0 + (padding * margin), y: 0) 

Но это ошибки не говоря не бинарное перегружать ... Поэтому я стараюсь перегружать их, как это:

public func * (a: CGFloat, b: CGFloat) -> CGFloat { 
    return a * b 
} 

Но ошибки, я даже следовал е xact way RayWenderlich перегружает свой +.

Я поместил свой метод в GameScene, нужно ли его разместить где-то в другом месте?

+0

Какой тип поля? –

ответ

3

В вашем примере margin - это номер Double. Попробуйте следующее:

newSprite.position = CGPoint(x: padding * CGFloat(margin), y: 0) 
+0

Упс ... глупая ошибка. Как я пропустил это! Спасибо за публикацию. Я изменил 'let margin = 1.2' на' let margin = CGFloat (1.2) 'и он работает. – Reanimation

+0

Вы также можете сделать 'let margin: CGFloat = 1.2' –

+0

или просто' (padding * 1.2) ';-) шутка! –

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