gpt4 book ai didi

ios - 为什么 SpriteKit 场景中的循环图像之间存在间隙?

转载 作者:行者123 更新时间:2023-11-29 01:33:39 25 4
gpt4 key购买 nike

一开始我就声明了节点。

//地面节点的声明。

var groundImage: SKSpriteNode = SKSpriteNode()
var groundImage2: SKSpriteNode = SKSpriteNode()

在 viewDidLoad 中我有:

    //Creates an instance of both sprites that are of the same image that are to be lined up against each other in the x axis creating the illution of continuity.

groundImage = SKSpriteNode(imageNamed: "Ground.png")
groundImage2 = SKSpriteNode(imageNamed: "Ground.png")

//Specifies the Z position of the images.

groundImage.zPosition = 3
groundImage2.zPosition = 3

//Scales the images to the correct size of the screen.

groundImage.size.width = self.frame.width
groundImage.size.height = self.groundImage.size.height / 2

groundImage2.size.width = self.frame.width
groundImage2.size.height = self.groundImage2.size.height / 2

//Specicies the x position of the images. By offsetting the second you create the illution of a long, continuous image.

groundImage.position.x = view.bounds.size.width * 0.5
groundImage2.position.x = view.bounds.size.width * 1.5

//Specifies the y postion of the images, obviously these are the same as they are not to be offset at any time.

groundImage.position.y = (view.bounds.size.height - view.bounds.size.height) + self.groundImage.size.height / 2
groundImage2.position.y = (view.bounds.size.height - view.bounds.size.height) + self.groundImage2.size.height / 2

//Not sure what this does yet.

groundImage.texture?.filteringMode = SKTextureFilteringMode.Nearest
groundImage2.texture?.filteringMode = SKTextureFilteringMode.Nearest

//Adds instances of the sprites to the scene.

self.addChild(groundImage)
self.addChild(groundImage2)

在更新方法中我有:

    //This is how the image is moved relative the number specified.  The number in the variable is how many pixels the frame is being moved each frame refresh.

groundImage.position.x -= gameSpeed
groundImage2.position.x -= gameSpeed

if (groundImage.position.x <= -self.view!.bounds.size.width / 2)
{
groundImage.position.x = self.view!.bounds.size.width * 1.5 // - 2
}


if (groundImage2.position.x <= -self.view!.bounds.size.width / 2)
{
groundImage2.position.x = self.view!.bounds.size.width * 1.5 // - 2
}

但是,循环播放时,两个图像之间存在轻微的间隙。当我使用游戏速度变量提高它们的循环速度时,这种差距就会增加。

谁能向我解释一下我做错了什么吗?

我已检查图像本身不会导致问题。

谢谢,

史蒂文

最佳答案

差距可能是因为更新方法每秒调用了大约 60 次(如果我没记错的话默认是 60 fps),你应该使用 SKAction 来简单地翻转你的图像,它会更有效率。这是您的起点:

https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/AddingActionstoSprites/AddingActionstoSprites.html

关于ios - 为什么 SpriteKit 场景中的循环图像之间存在间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33199409/

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