![](/img/trans.png)
[英]How do I update the score in sprite kit when a node passes a certain y coordinate on the screen?
[英]In sprite kit with swift when i run an action on a node to move it up to a certain y value it gradually slows down. Why?
我没有设置任何物理学,也没有使用场景文件。 我只是从代码设置场景。
那是我设置并启动动作的地方:
let GoUpAction = SKAction.moveTo(CGPoint(x:80,y:size.height-hVar),duration:1);
if node1.position.y < (size.height/6) + 20 {
node2.runAction(GoUpAction)
}
当它执行时,node2开始以正常速度向上移动,但是(y ++)越高,它移动得越慢。
有趣的事情-通常,这种行为适合我,但我希望能从距离目的地仅1/4的距离开始减速。 或根本没有减速。
我没有设置任何重力或任何东西。 非常基本的设置。
这是定义节点的方式:
let node2 = SKSpriteNode(imageNamed: "n2")
node2.name = "n2"
node2.position = CGPoint(x: size.width-80, y: size.height-hVar)
node2.xScale = 0.25
node2.yScale = 0.25
node2.zPosition = -1
addChild(node2)
我没有设置任何重力或任何东西。 非常基本的设置。
默认值为(0.0,-9.8),这可能会在y方向上减慢节点速度。 尝试设置affectedByGravity
属性affectedByGravity
的属性。
node2.physicsBody.affectedByGravity = NO;
或在创建场景时设置“全局” gravity
,
self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);
摆脱重力。
谢谢大家的帮助!
但是,问题有点结构化。 我犯了一个愚蠢的错误,因为从Update方法(运行每一帧)中调用了某个函数,所以我想不通。
该函数实际上是在每个帧上重新触发一个精灵移动动作,但是随着每个帧的距离变短,而动作运行的时间相同,因此产生了减速效果:)
我不得不重写有关何时调用的代码,并摆脱了这个愚蠢的错误。
现在所有工作都按预期进行:)
但是,这是一个模拟减速的有趣技巧:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.