【问题标题】:Reset when Sprite touched another Sprite当 Sprite 接触到另一个 Sprite 时重置
【发布时间】:2018-12-05 16:06:39
【问题描述】:

我试图让玩家精灵节点在触及危险节点时重置。我怎样才能做到这一点? 该代码不起作用。

if player.position == danger.position {
    player.position = CGPoint(x: 0, y: 550)
} else if player.position == goal.position {
    print("Good Job!") 
}

【问题讨论】:

标签: swift xcode sprite-kit


【解决方案1】:

在简单的情况下,如果节点位于相同的坐标空间(即它们具有相同的父级),CGRect 有一个方法可以告诉您一个矩形是否与另一个矩形相交:

if player.frame.intersects(danger.frame) {
    //Do collision stuff here
}

如果不使用SKNode.convert(from:) 转换其中一个位置,则重建转换后的帧(不像 UIView SKNode 只能转换点而不能转换矩形)。

物理系统可以为你做碰撞和接触,是做这类事情的首选方式,但如果你不想选择物理,上面的例子也可以。

【讨论】:

  • 我仍然对如何重置游戏感到困惑?我是否添加了我之前的 if 语句?我是否只添加一个名为 startGame 的函数,其中包含一个重置玩家位置的 CGPoint?我该怎么办??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多