我为我的所有游戏精灵使用了一个协议,如下所示:
Sub showOnly()
Dim displayColumns As String: displayColumns = "B,C,G,A,C"
Sheet2.UsedRange.Columns.Hidden = True
Dim ar, col
ar = Split(displayColumns, ",")
For Each col In ar
Sheet2.Columns(col).Hidden = False
Next
End Sub
然后使用以下内容创建一个乌鸦精灵:
import SpriteKit
protocol GameSprite{
var imageSprite : SKSpriteNode {get set}
func spawn(parentNode: SKNode, position: CGPoint, size:CGSize)
func onTap()
}
最后我将精灵调用到游戏场景中:
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() {
}
}
我没有错误,但由于某种原因,精灵没有显示。
答案 0 :(得分:0)
您可以说:
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的子类,它并不真正需要精灵节点属性,因为它本身就是一个精灵节点。如果你想让它成为一个"图像节点,"你只需要用图像纹理它。所以传入一个图像并设置它的纹理属性。