gpt4 book ai didi

iphone - cocos2d游戏,ccparticle系统纹理搞砸了

转载 作者:行者123 更新时间:2023-12-01 19:23:26 25 4
gpt4 key购买 nike

我的游戏使用了几个粒子系统。每次我使用第一个粒子系统,例如stars.plist 时,下一个要显示的粒子将使用stars.plist 的纹理。 (所以如果下一个粒子是雨,那么将是一场星雨:(
我使用 [ARCH_OPTIMAL_PARTICLE_SYSTEMparticleWithFile:@""],例如:

CCParticleSystem* rain = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"rain.plist"];
[self addChild:rain z:-1];

在初始化下雨之前,我调用了预加载粒子,只需使用:
[ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"rain.plist"];

那么如果我下一个要播放的粒子是meteor.plist,那么使用的纹理仍然是rain.plist 的纹理。

我使用相同的方式显示 meteor :
    NSString* fn = [NSString stringWithFormat:@"meteor%i.plist", random];
CCParticleSystem* meteor = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:fn];

我已经在 3gs 和 iPhone 4 和模拟器中尝试过 CCParticleQuad 和 CCParticlePoint,但仍然是同样的问题。

最佳答案

如果纹理数据嵌入到 .plist文件,cocos2d 将提取该数据并在内部将其存储为纹理。纹理以纹理文件名作为键存储,因此如果您有两个内部使用相同纹理文件名的粒子系统,那么首先加载的纹理将应用于相同纹理文件名的所有后续使用!

一个简单的检查方法是查看您的 .plist文件并搜索 textureFileName key 。每个纹理的这个键应该是不同的。由于图像数据嵌入到您的 .plist文件,您可以将此值更改为您想要的任何值.. 例如。 starparticle.png为你的星星,rainparticle.png下雨等。只需为每个独特的纹理使用独特的东西。

如果失败,您仍然可以手动应用纹理,方法是从如下文件加载:

[rain setTexture: [[CCTextureCache sharedTextureCache] addImage:"particleTexture.png"]];

关于iphone - cocos2d游戏,ccparticle系统纹理搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110098/

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