GitHub项目地址 SGDK_CJK (github.com)

SGDK_CJK是一个基于SGDK开发套件的实现多语言显示的世嘉Mega Drive游戏框架。命名为CJK是因为最初计划只是在SGDK中实现中日韩统一表意文字的显示,不过后来又加入了对其他各国语言和表情符号的支持,理论上可以显示Shift-JIS(cp932)、GBK(cp936)、KS_C(cp949)、Big5(cp950)代码页的所有双字节全宽字符和UTF-8(cp65001)代码页中Unicode范围在0000~FFFF的所有从左向右书写的半宽字符,以及最大255个额外的自定义字符和最大255个自定义彩色表情图标。

SGDK使用方法

SGDK开发套件的部署和相关说明请参照:https://github.com/Stephane-D/SGDK

SGDK_CJK函数

VDP_drawTextCJK(VDPPlane plane, u8 palette, u8 backColor, unsigned char *text, int tileIndex, u8 x, u8 y, u8 w) 绘制文本

plane:显示平面(BG_A、BG_B、WINDOW)

palette:调色盘(PAL0、PAL1、PAL2、PAL3)

backColor:背景色在调色盘中的序号

text:显示文本

x:y:显示坐标(以左上角为基准,以tile为单位)

w:显示宽度(以tile为单位)

getLanguage(u8 lang) 设置当前语言

lang:语言代码,预设支持以下6种语言

zh_CN:简体中文;zh_HK:繁体中文;ja_JP:日文;ko_KR:韩文;en_US:英文;ru_RU:俄文

可参考预设文件,自行在\src\localization目录添加其他语言,并在\src\language.c中包含头文件#include “localization/*.h”

getString(u8 index) 获取当前语言字符串

index:字符串序号

getStringEx(u8 lang, u8 index) 获取指定语言字符串

lang:语言代码

index:字符串序号

在\src\localization目录对应的*.c文件中可以编辑字符串数组,需要使用对应语言的代码页打开文件。

控制字符

在文本中插入以下控制字符可以实现一些特殊功能

/0:空字符

/n:换行回车

/a:/a/x01-/a/xff 额外的自定义字符

/e:/e/x01-/e/xff 彩色表情图标字符

/t:水平制表符

/v:垂直制表符

/f:/f0-/f5 切换代码页,依次为UTF-8(cp65001)、Shift-JIS(cp932)、GBK(cp936)、KS_C(cp949)、Big5(cp950),/f 切换代码页为当前语言默认代码页

/r:/r0-/rf 切换文本颜色(调色盘序号15-0倒序), /r 切换文本颜色为默认颜色(调色盘序号15)

/b:回退光标,使用“/f”和“/r”时,如果产生多余的空格,可以使用“/b”进行调整

授权许可

使用 「MIT 许可证」 授权。

虽然不强制,但是使用了SGDK_CJK的游戏项目,在正式发布时,希望能发一份拷贝给我

配套工具

有两个生成字符dat文件的小工具放在\tool目录

SGDK_CJK用于生成常规字体文件

SGDK_CJK_EX用于生成额外的附加字符和表情图标

生成后的dat文件放到\res\font目录替换原文件

游戏开发调试时可直接使用预设字符dat文件,正式发布前建议重新生成dat文件,使用“Identify From Files”筛选游戏项目中实际使用的字符,并取消勾选“Anti-Overflow”选项,以节省空间

点阵字体

预设字符dat文件使用缝合像素字体12px生成

缝合像素字体 / Fusion Pixel Font:https://github.com/TakWolf/fusion-pixel-font

表情图标

预设字符文件中的示例表情图标参考了Google Noto Color Emoji(2008)

仅供功能演示使用,请不要用在正式的游戏项目中

Published 1 day ago
StatusIn development
CategoryTool
PlatformsHTML5
AuthorDrunkloong
Tags16-bit, Mega Drive, Sega Genesis

Download

Download NowName your own price

Click download now to get access to the following files:

source.zip 803 kB

Leave a comment

Log in with itch.io to leave a comment.