创建和使用类

squarehippo10

如果我在下面创建该类的实例并从控制器中调用spawn函数,则该sprite将出现,但我将无法更改其任何属性。

class Hero: SKSpriteNode
{
    var hero = SKSpriteNode(imageNamed: "hero3")

    func spawn(parentNode: SKNode, position: CGPoint, size: CGSize = CGSize(width: 50, height: 50))
    {
        hero.size = size
        hero.position = position
        hero.physicsBody = SKPhysicsBody(circleOfRadius: 25)
        hero.physicsBody?.allowsRotation = false
        hero.zPosition = 10
        parentNode.addChild(hero)
    }
}

如果我摆脱了英雄财产,并且将所有东西都更改为自我,那就很好用了。

class Hero: SKSpriteNode
{
    func spawn(parentNode: SKNode, position: CGPoint, size:CGSize = CGSize(width: 50, height: 50))
    {
        self.size = size
        self.position = position
        self.texture = SKTexture(imageNamed: "hero3")
        self.physicsBody = SKPhysicsBody(circleOfRadius: 25)
        self.physicsBody?.allowsRotation = false
        self.zPosition = 10
        parentNode.addChild(self)
    }
}

我敢肯定这是迅速的101,但有人可以解释一下为什么第一个版本无法按预期运行吗?

约翰逊

在第一个示例中,您创建了一个var(基本上是SpriteNode内的SpriteNode)。

当像您实例化该类时let hero = Hero(....),现在有一个名为hero的SpriteNode,具有一个名为的属性hero您可以更改任何一个。调用hero.size会更改基本英雄,而hero.hero.size会更改内部SpriteNode...。这可能不是您想要的行为。

如果您只是尝试创建一个SpriteNode并对其进行修改,则第二个类看起来是正确的。该类是SpritNode的子类,因此它已经是SpriteNode-无需像第一个那样在其中创建一个类。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从变量创建和使用类

来自分类Dev

从变量创建和使用类

来自分类Dev

使用画布创建和使用类

来自分类Dev

React - 类的实例创建和使用

来自分类Dev

类的创建和操作

来自分类Dev

如何使用Spring创建和配置内部构建器类

来自分类Dev

如何在cfscript中创建和使用类/对象?

来自分类Dev

如何使用Spring创建和配置内部构建器类

来自分类Dev

在C ++中创建和实现类

来自分类Dev

在jquery中创建和分配CSS类

来自分类Dev

创建和使用jar库

来自分类Dev

创建和使用全局绑定

来自分类Dev

创建和使用坐标网格

来自分类Dev

创建和使用MediaWiki模板?

来自分类Dev

Swift 框架的创建和使用

来自分类Dev

如何使用 xml 为使用 C# 的统一游戏设计、创建和读取类

来自分类Dev

如何从可以在运行时使用的资源文件中创建和调用类对象?

来自分类Dev

尝试创建和使用一个类;未定义名称“ is_empty”

来自分类Dev

使用一个类创建和运行多个Java窗口

来自分类Dev

如何为Web应用程序创建和使用自定义类的变量?

来自分类Dev

使用变量创建和对象,然后将其传递给其他类

来自分类Dev

使用实体框架更新 DBContext 类中的创建和修改日期字段

来自分类Dev

JavaScript:通过类方法创建和销毁类实例

来自分类Dev

如何从应用程序中创建和使用的类库中为 TabControl.ItemsSource 创建集合?

来自分类Dev

使用CMake创建和使用静态库

来自分类Dev

使用CMake创建和使用库

来自分类Dev

使用Python创建和实现接口?

来自分类Dev

如何创建和使用vapi文件?

来自分类Dev

BIRT变量-如何创建和使用?