gpt4 book ai didi

ios - SpriteKit 手势问题

转载 作者:行者123 更新时间:2023-11-28 09:11:09 24 4
gpt4 key购买 nike

所以我一直在尝试在这款战术/益智游戏中实现类似于洛克人战斗网络的图 block 系统。但是,我似乎无法通过滑动手势将 Sprite 移动到所需的距离。

相反,手势最终会将 Sprite 移动到 View 的左下方。在那个角落里,手势似乎仍然没有按配置运行。

为什么 Sprite 会移动到左下方?

代码如下:

class GameScene: SKScene {

var mageNodeOne: Mage?

//Swipe gesture handlers
func swipedRight(sender:UISwipeGestureRecognizer) {
mageNodeOne!.position = CGPointMake(self.position.x + 115, self.position.y)
println("swiped right")
}

func swipedLeft(sender:UISwipeGestureRecognizer) {
mageNodeOne!.position = CGPointMake(self.position.x - 115, self.position.y)
println("swiped left")
}

func swipedUp(sender:UISwipeGestureRecognizer) {
mageNodeOne!.position = CGPointMake(self.position.x, self.position.y + 220)
println("swiped up")
}

func swipedDown(sender:UISwipeGestureRecognizer) {
mageNodeOne!.position = CGPointMake(self.position.x, self.position.y - 220)
println("swiped down")
}

//Scene Setup
override func didMoveToView(view: SKView) {

// Add gesture recognizers to view
let swipeRight:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:"))
swipeRight.direction = .Right
view.addGestureRecognizer(swipeRight)

let swipeLeft:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedLeft:"))
swipeLeft.direction = .Left
view.addGestureRecognizer(swipeLeft)

let swipeUp:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedUp:"))
swipeUp.direction = .Up
view.addGestureRecognizer(swipeUp)

let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
swipeDown.direction = .Down
view.addGestureRecognizer(swipeDown)

// Add tiles to view
var tileSpacerOne = SKSpriteNode(imageNamed: "TileSpacer")
tileSpacerOne.position = CGPoint(x: 508, y: 388)
tileSpacerOne.zPosition = -1
self.addChild(tileSpacerOne)

var tileOne = SKSpriteNode(imageNamed: "TileExampleOne")
tileOne.position = CGPoint(x: 350, y: 608)
self.addChild(tileOne)

var tileTwo = SKSpriteNode(imageNamed: "TileExampleOne")
tileTwo.position = CGPoint(x: 350, y: 388)
self.addChild(tileTwo)

var tileThree = SKSpriteNode(imageNamed: "TileExampleOne")
tileThree.position = CGPoint(x: 350, y: 168)
self.addChild(tileThree)

var tileFour = SKSpriteNode(imageNamed: "TileExampleOne")
tileFour.position = CGPoint(x: 665, y: 608)
self.addChild(tileFour)

var tileFive = SKSpriteNode(imageNamed: "TileExampleOne")
tileFive.position = CGPoint(x: 665, y: 388)
self.addChild(tileFive)

var tileSix = SKSpriteNode(imageNamed: "TileExampleOne")
tileSix.position = CGPoint(x: 665, y: 168)
self.addChild(tileSix)

// Add mage to view
mageNodeOne = Mage(imageNamed: "MageOne")
mageNodeOne!.position = CGPointMake(667,475.5)
addChild(mageNodeOne!)
}

最佳答案

为什么要将 Sprite 移动到 self + 115 的位置,而不是 mageNodeOne 的 当前位置 + 115。

例子:

 CGPointMake(self.position.x + 115, self.position.y)

应该是

 CGPointMake(mageNodeOne.position.x + 115, mageNodeOne.position.y)

关于ios - SpriteKit 手势问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com