字体渲染基本可以满足要求,特此记录,字体渲染里面的各种坐标转换能搞定,其他所有涉及坐标变换的问题,应该都可以解决了。 演示截图
包括功能繁简互转,字体设置,颜色大小角度的设置。
Talk is cheap show me the code.

	int nFontSize = 50;
	string strContent[] =
	{
		"君子中庸,小人反中庸。",
		"君子之中庸也,君子而时中。",
		"小人之中庸也,小人而无忌惮也。"
	};

	CText textSimplify[ARRAY_SIZE(strContent)];
	CText textTradition[ARRAY_SIZE(strContent)];
	for (int i = 0; i < ARRAY_SIZE(strContent); i++)
	{
		textSimplify[i].SetFontFile("Resource\\Fonts\\STLITI.TTF");
		textSimplify[i].SetContent(strContent[i]);
		textSimplify[i].SetScale(nFontSize, nFontSize);
		textSimplify[i].SetPos(0, (i + 1) * nFontSize);
		textSimplify[i].SetColor(0, 0, 0, 1);
		textSimplify[i].SetAngle(0);

		textTradition[i].SetFontFile("Resource\\Fonts\\simsun.ttc");
		textTradition[i].SetContent(CFontEngine::GetInstance()->Simplify2Tradition(strContent[i], true));
		textTradition[i].SetScale(nFontSize, 2 * nFontSize);
		textTradition[i].SetPos(0, (i + 1) * 2 * nFontSize + 5 * nFontSize);
		textTradition[i].SetColor(1, 0, 1, 1);
		textTradition[i].SetAngle(30);
	}

文字渲染源码
这里面关键是坐标转换的那几行代码,原理很清晰,不过移动坐标就不那么容易了。

简单总结

字体渲染的功能,自己目前需要的都实现了,如果后续发现有什么需要添加的再添加处理。总结的话,主要就是坐标处理,涉及到字形image在矩形框中的坐标,这里使用freetype的imageheight和left,top来进行处理,然后基于基准字进行了y坐标的调整,最后需要转为中心点坐标绘制,因为我的图元(暂且这么称呼)都是采用中心点坐标的形式组织的。关于字体的角度,这里处理的是基准点不变,基于中心点旋转。这里面也有一些问题没有搞明白,比如字形里面的advance.x这个值里有关64的值,不过暂时也没必要去深究,知道这是一个盲点就行。

后续处理

可以开始着手游戏开发了,画一些砖块,小球,挡板什么的,也就是场景类的设计开发,然后发现问题再重构处理,不求面面俱到的设计,而是在处理的过程中针对问题再进行分析和优化。游戏资源的话暂时考虑直接用photoshop画几个长条矩形,圆形以及方块来处理,这可真是完全自主知识产权,哈哈,后续可以去网上找些好的资源替换,暂时就这么处理。