ios - 将对象保持在屏幕内。 swift SpriteKit

标签 ios swift sprite-kit

我是 swift Sprite 套件的新手。在应用程序中,我试图让我有一艘潜艇在海洋中移动。每次用户点击屏幕时,重力就会开始将潜艇拉向相反的方向。我的问题是我找不到防止潜艇离开屏幕的方法。我试图通过在屏幕周围制作一个 physicsBody 来解决它,但潜艇仍然离开了屏幕。我还在 updateCurrentTime 基金中尝试了以下代码。

override func update(currentTime: CFTimeInterval) {
    /* Called before each frame is rendered */
self.physicsWorld.gravity = CGVectorMake(0,gravity)

    if (sub.position.y >= self.size.height - sub.size.height / 2){
       sub.position.y = self.size.height - self.sub.size.height / 2
    }
    if (sub.position.y <= sub.size.height / 2) {
        sub.position.y = self.sub.size.height / 2

    }



}

但这也没有做任何事情。

任何帮助将不胜感激!!!!!提前致谢! 附言我无法相信将内容保留在屏幕上是如此困难!!! 令人沮丧!

最佳答案

试试 SKConstraint - 它不需要 physicsBody。代码看起来像这样,并将 sub Sprite 限制在场景中:

let width2 =  sub.size.width/2
let height2 =  sub.size.height/2
let xRange = SKRange(lowerLimit:0+width2,upperLimit:size.width-width2)
let yRange = SKRange(lowerLimit:0+height2,upperLimit:size.height-height2)
sub.constraints = [SKConstraint.positionX(xRange,Y:yRange)]

关于ios - 将对象保持在屏幕内。 swift SpriteKit ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105898/

相关文章:

ios - 使用 iCloud 恢复非续订订阅

swift - 我正在尝试使用 SpirteKit 创建无限垂直滚动背景,但是我似乎无法让代码工作

swift - EXC_BAD_ACCESS Swift 1.2 中来自textureFromNode 的SKTexture 错误

ios - 仅在单元格中的特定 UIImage 上从 UITableView 推送详细 View ?

iphone - 如何在iphone中获取pinchgesture的坐标

ios - 在一个 VC 上显示后重新设置 WKWebView

ios - 我如何对 SKSpriteNode 进行 alpha mask ?

ios - 在 swift xcode 中向屏幕添加边框

iphone - 如何让 UIWebView 加载网页,但 URL 在 UILabel 上?

Swift UIView Animate 无法正常工作