问题描述
我正在尝试制作一个游戏,我在其中拖动宝石。
层次结构是:
GameScene(这是视图控制器)
gemBase,保存宝石(浅灰色)SKSpriteNode
宝石 SKSpriteNode
这些 gems 是 gemBase 的子级,它是 GameScene 的子级。
当 gemBase 为 0,0 时,当我拖动宝石时一切正常。他们在我触摸屏幕的同一个地方。但我想提供一个左手特性,我将 gemBase 偏移到屏幕的正确大小。所有宝石都会自动随着底座移动,所以我不需要重新计算它们的位置。
但是,当我尝试移动宝石时,它们会偏移到我正在触摸屏幕的位置的右侧。它们与我移动 gemBase 的偏移量一样多。
以下是我处理 touchesMoved 的唯一代码(在 GameScene 中)
我必须转换 touch.location 吗?
override func touchesMoved(_ touches: Set<UITouch>,with event: UIEvent?){
super.touchesMoved(touches,with:event)
guard touches.first != nil else { return }
if toggleHigh {highliteGem(theGem: myGems[0],clearall: true)}
if let touch = touches.first,let node = myGV.currentGem,node.isMoving == true {
let touchLocation = touch.location(in: self)
node.moved = true
node.position = touchLocation
node.isMoving = true
node.inSlot = false
//addTrailToTwinkle(theNode: node)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)