Sprite kit 当我有if语句时,Sprite不旋转

Sprite kit 当我有if语句时,Sprite不旋转,sprite-kit,Sprite Kit,我正在xcode中使用spritekit制作我的第一个小游戏。我现在是一个完全的编程新手,所以我有点麻烦 我试图在向右向左滑动时旋转这块板(一个矩形)。我只希望板在某个x和y位置旋转 因此,以下是有效的代码: func swipedLeft() { board.run(rotateActionLeft) board.run(goLeft) board.run(goUp) } 这基本上就是把我的棋盘旋转90度,使它向左上。当我向左滑动时,它会工作 如果我在函数中放入If语句,如下

我正在xcode中使用spritekit制作我的第一个小游戏。我现在是一个完全的编程新手,所以我有点麻烦

我试图在向右向左滑动时旋转这块板(一个矩形)。我只希望板在某个x和y位置旋转

因此,以下是有效的代码:

func swipedLeft() {

  board.run(rotateActionLeft)
  board.run(goLeft)
  board.run(goUp)

}
这基本上就是把我的棋盘旋转90度,使它向左上。当我向左滑动时,它会工作

如果我在函数中放入If语句,如下所示:

  func swipedLeft() {

if position.board.y == -600{

board.run(rotateActionLeft)
board.run(goLeft)
board.run(goUp)

}

}
什么也没发生。当我试图向左滑动时,棋盘哪儿也去不了。当我在xcode中进入游戏场景时,棋盘的初始位置是y为-600


非常感谢您的帮助。

什么是
position.board.y
?这不是正确的
CGPoint
语法,它告诉我您正在使用一个子类

因此,这意味着:

  • 您的精灵自在SKSeditor中创建后已移动。sks编辑器并不总是准确的。您应该在
    if
    语句上方添加
    print
    语句以查看它是什么:)

  • 您的自定义position.board功能不正常。尝试使用实际的
    SKNode().position.y
    ,看看这是否能解决问题


  • 什么是position.board.y?这不是正确的
    CGPoint
    语法,它告诉我您正在使用一个子类

    因此,这意味着:

  • 您的精灵自在SKSeditor中创建后已移动。sks编辑器并不总是准确的。您应该在
    if
    语句上方添加
    print
    语句以查看它是什么:)

  • 您的自定义position.board功能不正常。尝试使用实际的
    SKNode().position.y
    ,看看这是否能解决问题


  • position.board.y==-600
    必须返回false。你查过了吗?我不知道斯威夫特,所以我不知道是否有更合适的方法来检查整数相等性,但我不得不质疑你关于y位置实际上是-600的断言。嘿,我的答案对你有帮助吗?如果没有,请告诉我,以便我可以尝试为您更新。起始y位置实际上是-599.9895。。。我是通过打印找到的。所以我在if语句中使用了那个长的十进制数,但它仍然不起作用。所以我尝试了这样的方法:如果board.position.y<-599,它会成功的。仍然不知道为什么十进制不起作用,为什么spritekit没有将其精确设置为-600。不过,感谢您的帮助。
    position.board.y==-600
    必须返回false。你查过了吗?我不知道斯威夫特,所以我不知道是否有更合适的方法来检查整数相等性,但我不得不质疑你关于y位置实际上是-600的断言。嘿,我的答案对你有帮助吗?如果没有,请告诉我,以便我可以尝试为您更新。起始y位置实际上是-599.9895。。。我是通过打印找到的。所以我在if语句中使用了那个长的十进制数,但它仍然不起作用。所以我尝试了这样的方法:如果board.position.y<-599,它会成功的。仍然不知道为什么十进制不起作用,为什么spritekit没有将其精确设置为-600。不过,谢谢你的帮助。