gpt4 book ai didi

swift - 边界功能不起作用? Swift SpriteKit

转载 作者:行者123 更新时间:2023-11-30 13:52:14 24 4
gpt4 key购买 nike

所以首先,我想做但显然未能做到的是防止 Sprite “玩家”移出 map “400x400px img”的边缘。

游戏上的控件是用于向右、向左、向上和向下移动的按钮。我有它,所以当按下按钮时,它会运行一个函数来检查玩家的目的地是否在 map 区域之外。

****注意 map 是 5x5 网格 map , map 图像内网格的每个方格为 80x80****

这是检查玩家的目的地是否不在 map 上的函数:

func checkBordersDownPlayer() {

if player.position.y - 80 == map.position.y - 80 {
print("Node cannot move. Map borders are stopping the Node from moving past it's boundaries.")
}
else {
player.runAction(moveDown)
print("Player was able to move!")
}

}

现在让我烦恼的是,播放器会自动忽略 print() 函数和 if 函数,但仍然运行 SKAction 来移动它。

最佳答案

从你的帖子中我可以看出,也许你并不清楚 Sprite 节点的位置概念。

  • UIKit不同,在Spritekit中,框架的位置位于矩形的左上角 节点的位置默认位于其中心,除非您将使用其 anchor

  • 再次考虑到您的情况,您应该使用 Spritekit 提供的工具来有效地处理此类任务,您应该在 map 图像周围使用物理体,并使您的玩家成为另一个物理体,并为其分配不同的物理类别。

在您的情况下,您不需要分配任何接触测试位掩码或碰撞位掩码,直到您不想在玩家触摸您设置的边界时获得通知。更多可以引用本教程https://www.raywenderlich.com/123393/how-to-create-a-breakout-game-with-sprite-kit-and-swift
希望这会有所帮助。

关于swift - 边界功能不起作用? Swift SpriteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34124074/

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