我有包含所有图像的 png 文件,但我无法加载超过 1024*1024 的图像。
我尝试加载图像作为纹理:
InputStream istr = CCDirector.sharedDirector().getActivity().getAssets().open(this.src + "balloon.png");
Bitmap mybit = BitmapFactory.decodeStream(istr);
istr.close();
CCTexture2D metexture = new CCTexture2D();
metexture.initWithImage(mybit);
for (int i = 0; i < 16; i++)
{
CCSpriteFrame myframe = CCSpriteFrame.frame(metexture, CGRect.make(0, i * 128, 80, 128), CGPoint.make(0, 0));
this.balloons_images.add(myframe);
}
作为 .plist 的一部分
CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFrames(this.src + "balloon.plist");
this.addChild(CCSprite.sprite(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("balloon_16.png")), 20);
...
<key>balloon_16.png</key>
<dict>
<key>frame</key>
<string>{{0,1920},{80,128}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{80,128}}</string>
<key>sourceSize</key>
<string>{80,128}</string>
</dict>
...
结果是一样的。所有超过 1024 的图像看起来都像条纹。
有什么办法可以使用大于1024*1024的图片吗?
最佳答案
如果您没有将库作为 jar 文件使用,那么也许如果您在该行中的 org.cocos2d.opengl
包中的类 CCTexture2D.java
中进行更改public static final int kMaxTextureSize = 1024;
值越大,比如2048,也许会更好。
关于Android:1024px 图像大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23394833/