ios - 使用 Sprite Kit 绘制多个相同的 Sprite 作为背景

标签 ios objective-c sprite-kit skspritenode

所以我想做的是使用一个支架(SKSpriteNode * Sprite )并从一组三个 Sprite 中加载: 珊瑚 水 基地。

我打算做的是基于之前创建的 NSMutableArrays,在 iPad 屏幕上的位置绘制特定的纹理,例如:

在位置 1,6:水 在位置 5,18:珊瑚。

发生的问题是它只绘制一个纹理而没有绘制其他纹理。有什么解决办法吗?我应该换一种方式吗?

// Load the sprites
SKSpriteNode *sprite;

TerrainType ter;

for (int i = 0; i < numberOfRows; i++)
{
    innerArray = [terrainArray objectAtIndex:i];

    for (int j = 0; j < rowLength; j++)
    {
        ter = [[innerArray objectAtIndex:j] intValue];
        sprite = [[SKSpriteNode alloc] init];

        switch (ter)
        {
            case base1:
                sprite = [SKSpriteNode spriteNodeWithImageNamed:@"MidBase"];
                break;

            case base2:
                sprite = [SKSpriteNode spriteNodeWithImageNamed:@"MidBase"];
                break;

            case coral:
                sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Coral"];
                break;

            default:
                sprite = [SKSpriteNode spriteNodeWithImageNamed:@"PureWater"];
                break;

        }
        sprite.position = CGPointMake(rowLength + width30, numberOfRows + height30);
        [self addChild:sprite];
    }
}

最佳答案

看起来您正在将所有 Sprites 加载到同一位置:

sprite.position = CGPointMake(rowLength + width30, numberOfRows + height30);

您正在为所有这些创建一个相同的 CGPointMake(不确定 width30 和 height30 是什么,但它们似乎不会在代码中的任何地方更改/增加)。如果 Sprites 的大小也相同,它们将一个一个地叠加在另一个上面。您最终只会看到最后一个已加载。

我假设你想让这个位置以某种方式与两个 for 循环索引 j 和 i 相关。

关于ios - 使用 Sprite Kit 绘制多个相同的 Sprite 作为背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21456718/

相关文章:

ios - UILabel 文本未更新

iphone - 如何使 icon.png 显示在旧 iphone 上,而 icon@2x.png 显示在较新的 iPhone 上?

ios - iOS 中 SQLite 数据库的电子邮件 CSV

ios - 使用 Realm 存储来自 Foursquare 的附近位置

ios - 更新游戏分数时出错

swift - 如何在 Sprite Kit 中切换场景?

swift - "Operand of postfix '! ' should have optional type; type is ' CG向量 '"

ios - 按需资源崩溃 - NSBundle 资源请求无法连接到其助手守护程序

ios - 我想知道如何测试sqlite中的compileStatement是否返回答案,而不错过第一行

objective-c - Cocoa 统一(登录)窗口