首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯威夫特UIKit动力学-根据震源中心的距离改变UIPushBehavior力的大小

斯威夫特UIKit动力学-根据震源中心的距离改变UIPushBehavior力的大小
EN

Stack Overflow用户
提问于 2022-04-16 16:07:52
回答 1查看 48关注 0票数 1

有人能建议我如何改变UIPushBehavior震级力与源的距离。反映风扇对另一物体的影响。所以物体离风扇越近,力就越强。

代码语言:javascript
复制
if String(describing: identifier) == "fan1" {
                self.push = UIPushBehavior(items: [self.object], mode: .instantaneous)
                self.push.setAngle(.pi/4, magnitude: 1)
                self.animator.addBehavior(self.push)
                self.push.addItem(self.object)
                
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-16 17:23:34

使用UIFieldBehaviour在风扇的方向上创建一个线性引力场。然后您可以指定一个falloff

代码语言:javascript
复制
var forceField: UIFieldBehaviour!

// ...

forceField = UIFieldBehavior.linearGravityField(direction: CGVector(dx: 1, dy: -5))

// example values for a "fan" on the bottom left blowing mostly upwards:
forceField.position = CGPoint(x: view.bounds.minX, y: view.bounds.maxY)
forceField.region = UIRegion(radius: 3000)
forceField.minimumRadius = 100
forceField.falloff = 5
forceField.strength = 10
forceField.addItem(view1)
forceField.addItem(view2)
animator.addBehavior(forceField)

玩这些价值观玩得开心点!

在两个视图中添加碰撞、另一个重力行为和一个动态项行为,我们得到以下效果:

对我来说就像左下角的扇子!

你也可以选择一个位于风扇所在位置的径向引力场,如果你的风扇位于一个角落,并“径向”地吹,但请注意,在这种情况下,你应该使用strength的负值来表示这个场排斥而不是吸引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71895467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档