(я использую Dev ветвь HaxeFlixel)Правильный способ создания экземпляра FlxPoint
Чтобы создать новую переменную FlxPoint
я могу сделать один из трех вещей ...
var pt:FlxPoint = new FlxPoint();
var pt:FlxPoint = FlxPoint.weak();
var pt:FlxPoint = FlxPoint.get();
От чтения комментарии метода, я выяснил, что существует какой-то пул, который, вероятно, ускорит создание FlxPoint
. При каких обстоятельствах я должен использовать каждый из трех способов создания нового FlxPoint
?
У меня есть несколько функций, которые либо принимают FlxPoint
s в качестве параметров, либо возвращают их. Должен ли я скопировать то, что делает , и использовать .weak()
для их создания, а .putWeak()
- перечислить пункты, переданные в функции?
Мне кажется, что .get()
предназначен для долговечных переменных (начальные позиции игрока, точки, хранящиеся в массиве для поиска путей и т. Д.), И .weak()
для временных (промежуточные значения, вычисленные внутри функции). Это правильно?
Мне жаль, что я не могу отметить все три ответа как «правильные», но ваш бит о библиотечных вызовах объясняет это лучше всего. Функции библиотеки, принимающие FlxPoints, должны попытаться их освободить и должны их слабо создавать, потому что они могут быть похожими на ваш пример поворота, которые будут вызываться каждый кадр несколько раз. – Piku