设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1639|回复: 2
打印 上一主题 下一主题

[讨论] BitmapFont-位图字体

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9622
在线时间
3220 小时
注册时间
2011-3-24
帖子
739

开拓者

跳转到指定楼层
1
发表于 2016-9-1 17:11:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
位图字体类呢 简单来说就是 用文字的图像和文字在图像中的位置数据结合成的一个绘制位图的工具
比如像这样子的:


只粗略找了一下,没有找到,索性写了一个比较基本的实现,效果如下:


因为我不会转编码……也就不支持中文,所以目前这个脚本的用处比较小
希望有对位图字体感兴趣的朋友来交流一下
VA工程:
BitmapFontV0.5.zip (1.29 MB, 下载次数: 74)
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39816
在线时间
7488 小时
注册时间
2009-7-6
帖子
13484

开拓者贵宾

2
发表于 2016-9-3 09:09:12 | 只看该作者
RM里转码无非是用MultiByteToWideChar和WideCharToMultiByte
  1. # 声明
  2.   MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  3.   WideCharToMultiByte = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  4.   #--------------------------------------------------------------------------
  5.   # ● 转码:系统转UTF-8
  6.   #--------------------------------------------------------------------------
  7.   def s2u(text)
  8.     len = MultiByteToWideChar.call(0, 0, text, -1, nil, 0);
  9.     buf = "\0" * (len*2)
  10.     MultiByteToWideChar.call(0, 0, text, -1, buf, buf.size/2);
  11.     len = WideCharToMultiByte.call(65001, 0, buf, -1, nil, 0, nil, nil);
  12.     ret = "\0" * len
  13.     WideCharToMultiByte.call(65001, 0, buf, -1, ret, ret.size, nil, nil);
  14.     return ret.delete("\000")
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 转码:UTF-8转系统
  18.   #--------------------------------------------------------------------------
  19.   def u2s(text)
  20.     len = MultiByteToWideChar.call(65001, 0, text, -1, nil, 0);
  21.     buf = "\0" * (len*2)
  22.     MultiByteToWideChar.call(65001, 0, text, -1, buf, buf.size/2);
  23.     len = WideCharToMultiByte.call(0, 0, buf, -1, nil, 0, nil, nil);
  24.     ret = "\0" * len
  25.     WideCharToMultiByte.call(0, 0, buf, -1, ret, ret.size, nil, nil);
  26.     return ret.delete("\000")
  27.   end
复制代码

但本人对字体文件的数据结构没什么了解,你可以试试转码后是否有对应的下标。

点评

谢谢,我回到家了就试试  发表于 2016-9-3 19:52
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 03:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表