swift – Sprite-kit:在圆形路径中移动元素

swift – Sprite-kit:在圆形路径中移动元素,第1张

概述我正试图让元素在cercle的边缘移动. >我已经在屏幕中间创建并定位了一个cercle: var base = SKShapeNode(circleOfRadius: 200 ) // Size of Circlebase.position = CGPointMake(frame.midX, frame.midY) base.strokeColor = SKColor.blackColor 我正试图让元素在cercle的边缘移动.

>我已经在屏幕中间创建并定位了一个cercle:

var base = SKShapeNode(circleOfRadius: 200 ) // Size of Circlebase.position = CGPointMake(frame.mIDX,frame.mIDY)  base.strokecolor = SKcolor.blackcolor()base.glowWIDth = 1.0base.fillcolor = UIcolor(hue:1,saturation:0.76,brightness:0.94,Alpha:1)base.zposition = 0self.addChild(base)

>然后我创建了另一个精灵并在其上添加了一个动作:

main = SKSpriteNode(imagenamed:"Spaceship")main.xScale = 0.15main.yScale = 0.15main.zposition = 1let circle = UIBezIErPath(roundedRect: CGRectMake((self.frame.wIDth/2) - 200,CGRectGetMIDY(self.frame) - 200,400,400),cornerRadius: 200)let circularMove = SKAction.followPath(circle.CGPath,duration: 5.0)main.runAction(SKAction.repeatAction(circularMove,count: 2))self.addChild(main)

宇宙飞船的第一次旋转(见下图)完全遵循圆的边缘,但第二次迭代改变了宇宙飞船的位置并将其移出屏幕边界.
这是正常的还是我做错了什么?

谢谢.

+ follow:duration:产生与 follow:asOffset:orientToPath:duration:相同的效果,asOffset和orIEnttopath参数设置为true.

关于docs中的asOffset参数:

If true,the points in the path are relative offsets to the node’s
starting position. If false,the points in the node are absolute
coordinate values.

所以,你应该明确地将它设置为false:

let circularMove = SKAction.follow(circle.CGPath,asOffset: false,orIEnttopath: true,duration: 5)
总结

以上是内存溢出为你收集整理的swift – Sprite-kit:在圆形路径中移动元素全部内容,希望文章能够帮你解决swift – Sprite-kit:在圆形路径中移动元素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存