首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用手指手势移动精灵

用手指手势移动精灵
EN

Stack Overflow用户
提问于 2018-06-22 22:07:42
回答 1查看 46关注 0票数 0

我试图移动雪碧(红点),每当我移动我的手指在任何地方的屏幕上的设备。下面的代码似乎只在一个很小的不可见的圆圈内工作,而不是在屏幕的整个区域,这意味着精灵似乎遇到了某种墙,不再走得更远了。谁能弄清楚为什么?

代码语言:javascript
复制
import SpriteKit
import GameplayKit
var positionX  = CGFloat()
var positionY  = CGFloat()
var newPositionX = CGFloat()
var newPositionY = CGFloat()
var redDotPosition = CGPoint()
var oldPosition = CGPoint()
var newPosition = CGPoint()
class GameScene: SKScene {
var redDot : SKSpriteNode?

var entities = [GKEntity]()
var graphs = [String : GKGraph]()

private var lastUpdateTime : TimeInterval = 0
private var label : SKLabelNode?
private var spinnyNode : SKShapeNode?

override func sceneDidLoad() {

    redDot = childNode(withName: "redDot") as? SKSpriteNode
    redDot?.texture = SKTexture(imageNamed: "redDot")
    redDot?.position = CGPoint(x: frame.midX , y: frame.midX)



}


    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {

    for t in touches { self.touchMoved(toPoint: t.location(in: self))


        oldPosition = t.previousLocation(in: self)
        let oldPositionX = oldPosition.x
        let oldPositionY = oldPosition.y

        newPositionX = t.location(in: self).x
        newPositionY = t.location(in: self).y
        deltaX = newPositionX - oldPositionX
        deltaY = newPositionY - oldPositionY
        redDot?.position = CGPoint(x: redDot!.position.x + deltaX , y: redDot!.position.y + deltaY)


    }


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 18:18:22

不介意!

问题在于我不小心把我的雪碧锚定在现场,所以它的移动量不超过一定量。

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

https://stackoverflow.com/questions/50996151

复制
相关文章

相似问题

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