我有一个从屏幕顶部掉下的对象。我可以让它正常工作,但是到目前为止,我希望对象随着时间的推移或分数的增加而开始缓慢下降,然后逐渐增大而下降。哪一个是最简单的。
这是我关于物体重力的代码
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
numeric_cols = model_data_df._get_numeric_data().columns
for col in list(set(model_data_df.columns) - set(numeric_cols)):
model_data_df[col] = le.fit_transform(model_data_df[col].astype(str))
这是我的分数更新标签代码。
private func setupPhysics() {
physicsWorld.gravity = CGVector(dx: 0.0, dy: -5.8)
physicsWorld.contactDelegate = self
现在,该物体的下降幅度为-5.8,这很好,可能会使启动速度变慢,但我想让它逐渐增加其下降幅度。
答案 0 :(得分:0)
为观察者添加引力属性,以使世界每次改变时都改变引力:
var gravity = CGVector(dx: 0.0, dy: -5.8) {
didSet {
physicsWorld.gravity = gravity
}
}
var gravityScaleFactor : CGFloat = 0.9 // Gravity changes this much when score is updated
将设置更改为:
private func setupPhysics() {
physicsWorld.gravity = gravity
physicsWorld.contactDelegate = self
(您可能不需要在此处设置PhysicWorld的重力,因为初始化重力时,观察者会为重力属性设置它)。
更改分数时调整重力:
private func updateScoreLabel() {
scoreLabel.text = String(score)
gravity.dx *= gravityScaleFactor
由于重力比例因子是变量,您可以根据难度级别,加电等进行更改,并且当我们通过重力属性的属性观察器更改世界的重力时,我们可以在任意位置更改该属性,并且知道世界的引力也会随之改变。