首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cocos2d-android:如何显示分数

cocos2d-android:如何显示分数
EN

Stack Overflow用户
提问于 2012-02-08 06:09:51
回答 1查看 2.2K关注 0票数 1

我在更新方法中添加了CCLabel以显示我的游戏分数。

在把分数提高到5000之前,它是有效的。在此之后,logCat显示了模型:

代码语言:javascript
复制
02-08 11:47:37.476: E/dalvikvm-heap(4190): 1048576-byte external allocation too large for this process.
02-08 11:47:37.476: E/dalvikvm(4190): Out of memory: Heap Size=14343KB, Allocated=13585KB, Bitmap Size=2078KB
java.lang.reflect.InvocationTargetException......
caused by java.lang.OutOfMemoryError

我的代码是:

代码语言:javascript
复制
countScore++ ;
Log.e("total Score:", "" + countScore);
    CCLabel labelScore = CCLabel.makeLabel("" + countScore, "DroidSans", 20);

    labelScore.setColor(new ccColor3B(1,1,1));
    labelScore.setPosition(CGPoint.ccp(50, 50));
    addChild(labelScore, 11);
    labelScore.setTag(11);
    _labelScores.add(labelScore);
    CCCallFuncN actionMoveDone1 = CCCallFuncN.action(this, "labelFinished");
    CCSequence action = CCSequence.actions(actionMoveDone1);
    labelScore.runAction(action);

怎么修呢?

EN

回答 1

Stack Overflow用户

发布于 2012-02-08 10:23:39

除非labelFinished做了一些我们看不到的清理(您还没有向我们展示该代码),否则看起来您正在创建5000个标签。

您应该将单个CCLabel存储为类成员,并使用setString,而不是为每个分数增量创建一个新的标签。

更好的是,您应该使用CCLabelAtlas而不是CCLabel来频繁地更改标签(例如分数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9188591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档