AndEngine Text的使用心得

AndEngine Text的使用心得

最近在游戏里面需要使用Text,所以就顺便研究了下。

Text的创建:
可以参考AndEngineExamples工程中的TextExample类。

更改Text的字体的大小,发现没有诸如setSize这样的方法可以用,唯一能做的就是在FontFactory.create这个里面进行设置。具体可以参考源文件中的FontFactory类,包括字体的粗体,什么字体,以及字体颜色等。

更改字体的颜色:
这个有点让人人摸不着头脑,发现有setColor这样的方法,但是如果预设的字体颜色是黑色的话,文字的颜色无法更改。
this.mFont = FontFactory.create(this.getFontManager(), this.getTextureManager(), 256, 256, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 25, true, Color.BLACK);

最后在AngEngine Foruns中找到了答案,建议将初始字体的颜色设置为白色就可以的,后来验证确实是这样的。顺便说下不少关于使用方面的问题可以直接在这个讨论组里面搜索。

http://www.andengine.org/forums/

setColor的方法的使用一开始也有点搞不清楚,对于固定的颜色的话,可以这样使用。

myText.setColor(Color.RED);

但是有时候需要设置自定义的颜色,比如这样:

setColor(pRed, pGreen, pBlue);

这个如果没有看源文件的中的说明的话,会发现有问题,假设我的颜色是 (red: 153,green: 102,bule: 0),

setColor(153f,102f,0f);

但是你这样使用的话,你会发现得到的颜色不是自己定义的颜色,而且你如果搜索的话大部分的例子也都是那样写的。最后还是求助源文件,在Entity类中式这样描述的:

/** * @param pRed from <code>0.0f</code> to <code>1.0f</code> * @param pGreen from <code>0.0f</code> to <code>1.0f</code> * @param pBlue from <code>0.0f</code> to <code>1.0f</code> */ @Override public void setColor(final float pRed, final float pGreen, final float pBlue) { if(this.mColor.setChecking(pRed, pGreen, pBlue)) { // TODO Is this check worth it? this.onUpdateColor(); } }

所以上面的颜色应该这样表示:

setColor(153f/255f,102f/255f,0f);

使用setText()当字串的长度超过一定的值时会出现:

 java.lang.ArrayIndexOutOfBoundsException: length=30; index=30

解決方案:

public Text(final float pX, final float pY, final IFont pFont, final CharSequence pText, final int pCharactersMaximum, final VertexBufferObjectManager pVertexBufferObjectManager)

使用这个构造方法,进行初始化。

待续。

转载于:https://my.oschina.net/u/134408/blog/82905

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110306.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 集合转数组的方法_数组与集合的区别

    集合转数组的方法_数组与集合的区别数组集合转换数组变字符串int[]arr={4,1,8,5,3,5};System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5]1、集合转数组Object[]toArrays()E[]toArrays(E[]e);有时候需要让集合围成数组,因为有时需要限定对集合中的元素操作,不需要对该…

    2022年9月19日
    3
  • what if god was one of us_be famous of

    what if god was one of us_be famous ofAboysaystohermother,”Mom,isGodamanorwoman?”Themomthinksawhileandsays,”Well,son,Godisbothmanandwoman.”Thesonisconfused,soheasks,”IsGodblackorwhite?”Themotherre…

    2022年10月8日
    4
  • 一文搞懂SpringBoot自动配置原理「建议收藏」

    一文搞懂SpringBoot自动配置原理「建议收藏」阅读收获????????理解SpringBoot自动配置原理一、SpringBoot是什么SpringBoot的诞生就是为了简化Spring中繁琐的XML配置,其本质依然还是Spring框架,使用SpringBoot之后可以不使用任何XML配置来启动一个服务,使得我们在使用微服务架构时可以更加快速的建立一个应用。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式。二、SpringBoot的特点提供了固定的配置来简化配置,即约定大于配置 尽可能地

    2022年8月21日
    7
  • Latex:入门教程

    Latex:入门教程http://blog.csdn.net/pipisorry/article/details/54571521总的来说,LaTex是一套排版系统,与word那种所见即所得对排版方式不太,用LaTex排版更像是写程序一样,将想要的排版效果用指令写出来,再通过LaTex编译成文档。简单来说,你只要按照要求撰写tex文件,就能够通过LaTex生成排版好的pdf文件。有些人可能听到写程序就头大了,其实使用…

    2022年7月26日
    6
  • C++-Windows消息循环GetMessage/TranslateMessage/DispatchMessage[通俗易懂]

    C++-Windows消息循环GetMessage/TranslateMessage/DispatchMessage[通俗易懂]1.windows消息循环if(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);//消息转化DispatchMessage(&msg);//消息派遣.把TranslateMessage转换的消息发送到窗口的消息处理函数,此函数在窗口注册时已经指定}执行过程:消息循环调用G…

    2025年11月4日
    4
  • pytest 执行用例_测试用例执行结果有哪些

    pytest 执行用例_测试用例执行结果有哪些前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月29日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号