gpt4 book ai didi

swift - Sprite 没有出现在场景中

转载 作者:行者123 更新时间:2023-11-30 12:42:55 25 4
gpt4 key购买 nike

我创建了一个名为 Player 的 SKShapeNode 子类:

import UIKit
import SpriteKit

let MOVE_UP: CGFloat = 3
class Player: SKShapeNode{

var lifePoints = 3

init(circleOfRadius: CGFloat, fillColor: UIColor, strokeColor: UIColor) {
super.init()
self.fillColor = fillColor
self.strokeColor = strokeColor
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

class func movePlayerUp(mPlayer: SKShapeNode){
mPlayer.position.y += MOVE_UP
}
}

GameScene我正在尝试创建 Player 类型的 Sprite 并将其显示在屏幕上。我没有错误,构建也没有失败,但 Sprite 不会显示在屏幕上。这就是我创建 Sprite 的方式:

override func didMove(to view: SKView) {
let sprite = Player(circleOfRadius: 45, fillColor: myColors.blue, strokeColor: myColors.yellow)
sprite.position = CGPoint(x: frame.midX, y: frame.midY)

self.addChild(sprite)
}

最佳答案

问题是你的super.init()...它是空白的...你用婴儿车circleOfRadius制作了自己的初始化程序,但这对计算机没有任何意义因为你没有对它做任何事情

更糟糕的是,super.init(circleOfRadius:circleOfRadius)也不起作用,因为它不是指定的初始化程序...它是调用 super.init 时不能使用的便捷初始化器

所以,基本上你必须求助于使用 super.init() 但然后*更改你刚刚创建的空形状的路径`

添加此内容,您将获得您的圈子:

self.path = CGPath.init(roundedRect: CGRect(x: 0, y: 0, width: circleOfRadius*2, height: circleOfRadius*2), cornerWidth: 45, cornerHeight: 45, transform: nil)

enter image description here

关于swift - Sprite 没有出现在场景中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032826/

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