利用SDL绘制点阵字

本文介绍了如何利用SDL来绘制点阵字,避免在游戏项目中引入大型字体库如SDL_ttf。通过获取16x16点阵字的字模数组,并在终端和SDL窗口中显示,展示了实现过程。点阵字库的使用能简化这一过程。
摘要由CSDN通过智能技术生成

看sdlpal源码的时候,想了解下游戏界面上那些像素字是如何绘制显示的,于是就去了解了下点阵字。虽然有SDL_ttf这个库,你只需要找个字体文件,然后调用库提供的API就可以在屏幕上显示字体了。但是如果游戏只是显示下简单的像素字的话,加个SDL_ttf库就显得臃肿了。不管怎样,多深入了解下又不是坏事,你还是可以使用更简单方便的字体库来显示字体。
关于点阵字的一些介绍就不细讲了,网上一搜一大把。我只讲下用SDL绘制点阵字的过程。首先,我们要有在屏幕上显示的汉字字模(拿1616的点阵字来说的话,字模就是一个16行2列的一个二维数组,里边存放着十六进制数,这些十六进制数描述了这个1616矩阵中每个点是0还是1。具体是怎样的,看后面的代码),这个搜一下在线点阵字体生成器就有了。这里绘制一下“廖望塔”三个字,下面这张图就是16*16的字体点阵了:
这里写图片描述
白点代表1,蓝点代表0。所以它的十六进制数组是(上面的图和下面的数组是不对应的,因为不是同一个地方生成的,把途中的点用对应的十六进制描述会对应不上…不过都差不多,懒得统一了):

// 这里直接把三个字的字模写在一个16行6列的数组里了,也可以单独用3个16*
6的数组存放
const unsigned char wangtal[][6] = {
	// 十六进制下,2位为一个字节,二进制下8位为一个字节.所以16个点需要两个2位十六进制表示
	//  廖   |     望     |     塔
	{0x00, 0x80, 0x10, 0x04
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值