gpt4 book ai didi

ios - SKSpriteNode 不显示

转载 作者:行者123 更新时间:2023-11-30 13:54:29 25 4
gpt4 key购买 nike

我正在为我的所有游戏 Sprite 使用一个协议(protocol),如下所示:

import SpriteKit

protocol GameSprite{

var imageSprite : SKSpriteNode {get set}

func spawn(parentNode: SKNode, position: CGPoint, size:CGSize)

func onTap()

}

我然后使用以下内容创建一个乌鸦 Sprite :

    import SpriteKit

class Crow: SKSpriteNode, GameSprite{

var imageSprite = SKSpriteNode(imageNamed: "crow.png")
var flyAnimation = SKAction()

func spawn(parentNode: SKNode, position: CGPoint, size: CGSize = CGSize(width: 40, height: 40)) {

parentNode.addChild(self)
//createAnimations()
self.position = position
self.size = size
//self.runAction(flyAnimation)
}

func onTap() {

}
}

最后我将 Sprite 调用到游戏场景:

let crow2 = Crow()
crow2.spawn(world, position: CGPoint(x: 220, y: 210))

我没有收到错误,但由于某种原因, Sprite 没有显示。

最佳答案

你可以说:

func spawn(parentNode: SKNode, position: CGPoint, size: CGSize = CGSize(width: 40, height: 40)) {

parentNode.addChild(self.imageSprite)
//createAnimations()
self.imageSprite.position = position
self.imageSprite.size = size
//self.runAction(flyAnimation)
}

或者这个

func spawn(parentNode: SKNode, position: CGPoint, size: CGSize = CGSize(width: 40, height: 40)) {
self.texture = SKTexture(image: image)
parentNode.addChild(self)
//createAnimations()
self.position = position
self.size = size
//self.runAction(flyAnimation)
}

这可能更接近您的初衷。 Crow类是SKSpritNode的子类,它实际上并不需要 Sprite 节点属性,因为它本身就是一个 Sprite 节点。如果你希望它成为一个“图像节点”,你只需要用图像对其进行纹理化即可。因此传入一个图像并设置它的纹理属性。

关于ios - SKSpriteNode 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815022/

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