Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)


  本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式:


第一个參数为文本。第二參数为ttf字体文件,第三个參数为字体大小,第四个參数为块大小。第五个參数为文本横向对齐方式,第六个慘为文本纵向对齐方式。


样例效果图:








演示样例代码:(注:单独文件不可执行,详细可參考lua-tests)

--4个标签的Tag
local  kTagLabel1 = 0
local  kTagLabel2 = 1
local  kTagLabel3 = 2
local  kTagLabel4 = 3-- 字体列表
local  fontList = {"fonts/A Damn Mess.ttf","fonts/Abberancy.ttf","fonts/Abduction.ttf","fonts/Paint Boy.ttf","fonts/Schwarzwald Regular.ttf","fonts/Scissor Cuts.ttf"
}local fontCount = table.getn(fontList) -- 获得表元素个数
cclog("font count = "..fontCount)local vAlignIdx = 1
local verticalAlignment = {cc.VERTICAL_TEXT_ALIGNMENT_TOP,  -- 对齐顶部cc.VERTICAL_TEXT_ALIGNMENT_CENTER, -- 居中对齐cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM, -- 底部对齐
}local vAlignCount = table.getn(verticalAlignment)--[[
===============
显示字体
===============
]]--
local function showFont(ret, pFont)cclog("vAlignIdx="..vAlignIdx)local s = cc.Director:getInstance():getWinSize()-- 窗体大小local blockSize = cc.size(s.width/3, 200)-- 块大小local fontSize = 26--字体大小-- 依据Tag移除子节点ret:removeChildByTag(kTagLabel1, true)ret:removeChildByTag(kTagLabel2, true)ret:removeChildByTag(kTagLabel3, true)ret:removeChildByTag(kTagLabel4, true)-- static Label* createWithTTF(const std::string & text, const std::string & fontFile, float fontSize, const Size & dimensions = Size::ZERO,--TextHAlignment hAlignment = TextHAlignment::LEFT,TextVAlignment vAlignment = TextVAlignment::TOP)-- 第一个參数为文本,第二个參数为字体样式,第三个參数为字体大小,第四个參数为块大小,第五个參数为文本横向对齐。第六个參数为文本纵向对齐local top = cc.Label:createWithTTF(pFont, pFont, 24)local left = cc.Label:createWithTTF("alignment left", pFont, fontSize,blockSize, cc.TEXT_ALIGNMENT_LEFT, verticalAlignment[vAlignIdx])local center = cc.Label:createWithTTF("alignment center", pFont, fontSize,blockSize, cc.TEXT_ALIGNMENT_CENTER, verticalAlignment[vAlignIdx])local right = cc.Label:createWithTTF("alignment right", pFont, fontSize,blockSize, cc.TEXT_ALIGNMENT_RIGHT, verticalAlignment[vAlignIdx])-- 创建颜色层,第一个參数是颜色,第二个參数为宽度,第三个參数为高度local leftColor = cc.LayerColor:create(cc.c4b(100, 100, 100, 255), blockSize.width, blockSize.height)local centerColor = cc.LayerColor:create(cc.c4b(200, 100, 100, 255), blockSize.width, blockSize.height)local rightColor = cc.LayerColor:create(cc.c4b(100, 100, 200, 255), blockSize.width, blockSize.height)-- 忽略锚点对位置的影响 ,假设为true。锚点为(0,0)leftColor:ignoreAnchorPointForPosition(false)centerColor:ignoreAnchorPointForPosition(false)rightColor:ignoreAnchorPointForPosition(false)top:setAnchorPoint(cc.p(0.5, 1)) -- 设置锚点(0.5,1)left:setAnchorPoint(cc.p(0,0.5))leftColor:setAnchorPoint(cc.p(0,0.5))center:setAnchorPoint(cc.p(0,0.5))centerColor:setAnchorPoint(cc.p(0,0.5))right:setAnchorPoint(cc.p(0,0.5))rightColor:setAnchorPoint(cc.p(0,0.5))top:setPosition(cc.p(s.width/2,s.height-20)) -- 设置显示位置left:setPosition(cc.p(0,s.height/2))leftColor:setPosition(left:getPosition())center:setPosition(cc.p(blockSize.width, s.height/2))centerColor:setPosition(center:getPosition())right:setPosition(cc.p(blockSize.width*2, s.height/2))rightColor:setPosition(right:getPosition())ret:addChild(leftColor, -1)ret:addChild(left, 0, kTagLabel1)ret:addChild(rightColor, -1)ret:addChild(right, 0, kTagLabel2)ret:addChild(centerColor, -1)ret:addChild(center, 0, kTagLabel3)ret:addChild(top, 0, kTagLabel4)
endlocal isFirst = true
local originCreateLayer = createTestLayer
local function createTestLayer()if isFirst == false thenif Helper.index == 1 thenvAlignIdx =  vAlignIdx % vAlignCount + 1endelseisFirst = falseendlocal ret = originCreateLayer("")showFont(ret, fontList[Helper.index])return ret
endfunction FontTestMain()cclog("FontTestMain")Helper.index = 1vAlignIdx = 1local scene = cc.Scene:create()-- 创建方法表Helper.createFunctionTable = {createTestLayer,createTestLayer,createTestLayer,createTestLayer,createTestLayer,createTestLayer}scene:addChild(createTestLayer()) -- 加入測试层scene:addChild(CreateBackMenuItem())--加入后退buttonreturn scene
end


转载于:https://www.cnblogs.com/gcczhongduan/p/5079904.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN挑战编程——《绝对值最小》

绝对值最小 题目详情: 给你一个数组A[n],请你计算出ansmin(|A[i]A[j]|)(0<i,j<n). 例如&#xff1a;A{1&#xff0c; 4&#xff0c; -3}&#xff0c; 则&#xff1a; |A[0] A[0]| |1 1| 2. |A[0] A[1]| |1 4| 5. |A[0] A[2]| |1 (-3)| 2. |A[1] A[1]| |4 …

linux上安装memcached步骤

libevent: http://libevent.org/ 服务器端&#xff1a;https://code.google.com/archive/p/memcached/downloads 客户端&#xff1a; http://pecl.php.net/package/memcache 和 http://pecl.php.net/package/memcached 二选一 http://chenzhou123520.iteye.com/blog/1…

IPC之SystemV

svipc - System V interprocess communication mechanisms linux实现的System V interprocess communication (IPC)机制包含消息队列&#xff08;message queues&#xff09;&#xff0c;信号集&#xff08;semaphore sets&#xff09;&#xff0c;和共享内存&#xff08;share…

oracle create user

sqlplus /nolog conn sys/pw123456orcl as sysdba CREATE USER zengwenfeng IDENTIFIED BY zengwenfeng ; GRANT ALL PRIVILEGES TO zengwenfeng ; COMMIT; C:\Users\Administrator>sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 24 21:38:24 20…

具有GlassFish和一致性的高性能JPA –第2部分

在我的四部分系列的第二部分中&#xff0c;我将解释将Coherence与EclipseLink和GlassFish一起使用的策略第一。这描述了配置Coherence的JPA支持的Cache所必须采取的步骤&#xff0c;以及如何在GlassFish中使用它。高性能数据存储。 一般的做法 您可以将Coherence API与通过JPA映…

arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解

背景介绍在日益信息化的社会中&#xff0c;各种各样的嵌入式系统已经全面渗透到日常生活的每一个角落。嵌入式系统的功能越来越复杂&#xff0c;这就使得一个嵌入式系统产品从市场需求立项到方案选择、样机研制、定型量产所需要的开发费用越来越多&#xff0c;所需开发时间越来…

反素数 -- 数学

反素数就是区间内约数个数最多的那个数。 在ACM题目里&#xff0c; 一般是求约数最多而且数字最小的那个数&#xff0c;【1--n】 二是求约数刚好等于n的最小的那个数 三是求区间里的最小反素数【beign&#xff0c;end】 1和3有区别吗&#xff1f;有&#xff0c;1可以加速&#…

编程挑战系统的输入和输出详细说明

在高校俱乐部线上编程挑战中&#xff0c;一道题目的所有测试数据是放在一个文本文件中&#xff0c;选手将一道题目的程序提交给评判系统运行&#xff0c;程序从该文件中读取测试数据&#xff0c;再把运行结果输出到另一个文本文件中。系统把输出文件与标准答案比对&#xff0c;…

上传文件---未能找到路径“D:\MyProject\Files\”的一部分

C# 使用控件FileUpload 上传文件&#xff0c;简单实例&#xff1a; protected void btnUpload_Click(object sender, EventArgs e){string path Server.MapPath("~/Files/");if (fileUpload.HasFile true){string filename fileUpload.FileName.ToLower();fileUpl…

使用SPANN方式将Spring&Quartz与自定义注释集成

在上一篇文章中 &#xff0c;我们演示了如何在Spring容器中创建和配置带批注的Quartz作业。 我们使用了一个类级别的注释将一些元数据添加到实现Quartz Job的bean中。 批注定义了作业的名称&#xff0c;组及其cron表达式。 后来&#xff0c;大部分代码专用于处理该批注&#xf…

python opencv旋转_Python opencv实现与rotatedrect类似的矩形旋转,pythonopencv,RotatedRect

本文原理&#xff1a;先旋转矩形到指定角度&#xff0c;然后提取矩形外轮廓&#xff0c;从而获取旋转后的矩形坐标点。#&#xff01;/usr/bin/env python3# -*- coding: utf-8 -*-# Author: tcy# Date: 2020-5-2 21:00:53# Version:V1.01# Last Modified by: tcy shanghai song…

关于string转整数

又是leetcode的easy级别题&#xff0c;很基本的题目&#xff0c;却漏考虑很多情况&#xff0c;动手前一定要考虑清楚呀&#xff01;&#xff01;&#xff01; 就当做锻炼写作能力吧&#xff0c;先上题目&#xff01; 将文本转换成整数&#xff0c;注意一下几点&#xff1a; 1.文…

数字三角形——递归、递推、记忆化搜索

数字三角形 描述: 有一个由非负整数组成的三角形&#xff0c;第一行只有一个数&#xff0c;除了最下行之外每个数的左下方和右下方各有一个数。 问题&#xff1a; 从第一行的数开始&#xff0c;每次可以往左下或右下走一格&#xff0c;直到走到最下行…

Java 7功能概述

前面我们讨论了所有未纳入Java 7的内容&#xff0c;然后回顾了将其纳入Java 7的有用的Fork / Join框架 。 今天的帖子将带我们了解Project Coin的每个功能-一系列小的语言增强功能&#xff0c;这些功能虽然不是开创性的&#xff0c;但是对于任何能够使用JDK 7的开发人员来说都是…

缓存技术

提升系统性能的主要方式之一就是缓存。它可以挡掉大部分的数据库访问的冲击&#xff0c;如果没有它&#xff0c;系统很可能会因为数据库不可用导致整个系统崩溃。 但是缓存带来了另外一些棘手的问题&#xff1a; 数据的一致性和实时性。 例如&#xff0c;数据库中的数据状态已经…

水晶报表分组分栏_web报表可视化设计器工具推荐

古往今来&#xff0c;信息就是决胜的关键。在科技时代的今天亦是如此。企业的数据管理在帮助企业加强管控、提高竞争力等方面具有不可或缺的作用。这就不得不说到报表工具。企业想要将储存于各种商业信息系统中的数据转化成有用的信息&#xff0c;最终帮助决策者做出更快、更好…

嵌套矩形——DAG上的动态规划

有向无环图&#xff08;DAG,Directed Acyclic Graph&#xff09;上的动态规划是学习动态规划的基础。很多问题都可以转化为DAG上的最长路、最短路或路径计数问题。 题目描述&#xff1a; 有n个矩形&#xff0c;每个矩形可以用两个整数a,b描述&#xff0c;表示它的长和宽。矩形…

Twisted

Twisted定义Twisted是一个基于事件驱动的网络引擎框架网络框架&#xff0c;别人预先定义好的一个框架&#xff08;一个项目&#xff09;&#xff0c;如.net某个web框架有25个class&#xff0c;从BeginRequest依次执行类里的process方法&#xff0c;程序员自己定义一个类&#x…

从Spring到Java EE 6

我最近在一个非常复杂的项目中工作&#xff0c;其中融合了许多Java EE 6技术&#xff08;例如JPA&#xff0c;JAXB&#xff0c;JMS&#xff0c;JTA&#xff0c;JAX-RS等&#xff09;。 出于生产力和计划方面的原因&#xff0c;将原型应用程序设计为独立的纯Spring应用程序。 当…

Centos 6.5 搭建php环境(nginx+mariadb+php7)

1.mariaDb vim /etc/yum.repos.d/MariaDB.repo [mariadb] name MariaDB baseurl http://yum.mariadb.org/5.5/centos5-x86 gpgkeyhttps://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck1#如果服务器已经安装了MariaDB-Galera-server包&#xff0c;你可能需要在安装MariaDB-s…