探索Pico-8中的中文支持,从安装到开发pg模拟电子中文

探索Pico-8中的中文支持,从安装到开发pg模拟电子中文,

本文目录导读:

  1. 安装中文支持
  2. 开发中文项目

在Pico-8这个小小的编程平台上,中文支持一直是一个让人充满期待的功能,随着技术的进步,越来越多的开发者开始尝试在自己的项目中加入中文元素,如何在Pico-8中实现中文支持,仍然是一些开发者面临的挑战,本文将详细介绍如何在Pico-8中安装中文支持,以及如何开发出一款支持中文的Pico-8项目。

安装中文支持

安装必要的依赖

Pico-8本身是一个非常轻量的平台,但它支持通过添加必要的依赖来扩展功能,中文支持需要安装一些特定的库和字体。

下载依赖

我们需要下载并安装Pico-8的中文支持依赖,这些依赖包括:

  • 中文乱码字体(Cjk Mono):用于显示中文字符的字体。
  • 中文库(Pico-8中文字符编码库):提供中文字符编码和解码功能。
  • 中文乱码字体扩展(Cjk Mono Extended):提供更多的中文字符支持。

这些依赖可以通过以下链接下载:

编译依赖

在安装了依赖后,我们需要编译它们,编译可以通过在终端中运行以下命令完成:

cargo build

编译完成后,依赖将被安装到指定的目录中。

配置环境变量

为了确保中文支持能够正常工作,我们需要在项目中配置一些环境变量,这些环境变量包括:

  • CJKBOLD: 指定使用哪种中文字体,默认值为 "Cjk Mono"。
  • CJKBOLD_SIZE: 指定字体的大小,默认值为 12。
  • CJKBOLD权重: 指定字体的权重,默认值为 "400"。

这些环境变量可以通过在项目的 Cargo.toml 文件中添加以下内容来配置:

[dependencies.cjk]
cjk-bold = "Cjk Mono Bold"
cjk-bold_size = 12
cjk-bold_weight = "400"
cjk-mono = "Cjk Mono"
cjk-mono_size = 12
cjk-mono_weight = "400"
cjk-monoextended = "Cjk Mono Extended"
cjk-monoextended_size = 12
cjk-monoextended_weight = "400"

开发中文项目

创建一个基本的中文项目

在Pico-8中创建一个基本的中文项目,可以通过以下步骤完成:

打开Pico-8 Studio

启动Pico-8 Studio,进入编辑器。

创建新项目

在菜单栏中选择“文件” > “新建项目”,然后选择“Pico-8项目”。

添加中文支持

在项目的 Cargo.toml 文件中添加中文支持所需的依赖和配置。

[dependencies.cjk]
cjk-bold = "Cjk Mono Bold"
cjk-bold_size = 12
cjk-bold_weight = "400"
cjk-mono = "Cjk Mono"
cjk-mono_size = 12
cjk-mono_weight = "400"
cjk-monoextended = "Cjk Mono Extended"
cjk-monoextended_size = 12
cjk-monoextended_weight = "400"

编译项目

在终端中运行以下命令编译项目:

cargo build

运行项目

在终端中运行以下命令启动项目:

cargo run

开发中文小游戏

我们已经有了中文支持,可以开始开发一款中文小游戏了,以下是一个简单的中文小游戏示例:

use sys, graphics, audio, math, coroutines, cjk;
const W = 800;
const H = 600;
const FPS = 60;
const FPS_TARGET = 60;
const WIDTH = 1280;
const HEIGHT = 720;
const X_POS = WIDTH / 2;
const Y_POS = HEIGHT / 2;
const FALL_SPEED = 2;
const CJK_FONT = "Cjk Mono";
const CJK_SIZE = 12;
const CJK_WEIGHT = "400";
const SPRITE_SIZE = 32;
const ANIMATION_SPEED = 1;
const START_SPELL = 0;
const HOLD_SPELL = 1;
const FIGHT_SPELL = 2;
const DROWN_SPELL = 3;
const ANIMATION_DURATION = 100;
const MAX_LV = 5;
const BASEiative = 100;
const STR = 10;
const ATK = 10;
const DEF = 10;
const INITiative = BASEiative + STR;
const Dmg = ATK - DEF;
const FIGHT_DURATION = 100;
const DROWN_DURATION = 100;
const RELEWAY_DURATION = 100;
const CJK_FONTS = [
    "Cjk Mono",
    "Cjk Mono Bold",
    "Cjk Mono Medium",
    "Cjk Mono Light",
    "Cjk Mono Extended"
];
const CJK_SIZES = [12, 24, 36, 48, 60];
const CJK Weights = ["400", "500", "600", "700", "800"];
const SPRITE_SIZES = [32, 64, 128];
const ANIMATION_SPEEDS = [1, 2, 3];
const ANIMATION_DURATIONS = [50, 100, 150];
const ANIMATION Phases = ["fadeIn", "flyUp", "fadeOut"];
const SPRITE Phases = ["front", "side", "back"];
const CJK Phases = ["mono", "mono bold", "mono medium", "mono light", "mono extended"];
const FIGHT Phases = ["init", "attack", "defense", "heal"];
const DROWN Phases = ["normal", "drown", "resurrection"];
const RELEWAY Phases = ["attack", "defense", "heal", "revive"];
const CJK_FONTS Extended = [
    "Cjk Mono Extended",
    "Cjk Mono Extended Bold",
    "Cjk Mono Extended Medium",
    "Cjk Mono Extended Light",
    "Cjk Mono Extended Extended"
];
const CJK_SIZES Extended = [60, 72, 84, 96, 108];
const CJK Weights Extended = ["800", "900", "1000", "1100", "1200"];
const SPRITE_SIZES Extended = [128, 256, 512];
const ANIMATION_SPEEDS Extended = [3, 4, 5];
const ANIMATION_DURATIONS Extended = [150, 200, 250];
const ANIMATION Phases Extended = ["fadeIn", "flyUp", "fadeIn", "flyUp", "fadeIn"];
const SPRITE Phases Extended = ["front", "side", "back", "front", "side"];
const CJK Phases Extended = ["mono", "mono bold", "mono medium", "mono light", "mono extended", "mono extended bold", "mono extended medium", "mono extended light", "mono extended extended"];
const FIGHT Phases Extended = ["init", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal"];
const DROWN Phases Extended = ["normal", "drown", "resurrection", "normal", "drown", "resurrection", "normal", "drown", "resurrection", "normal"];
const RELEWAY Phases Extended = ["attack", "defense", "heal", "revive", "attack", "defense", "heal", "revive", "attack", "defense", "heal", "revive"];
const CJK_FONTS Extended Extended = [
    "Cjk Mono Extended Extended",
    "Cjk Mono Extended Extended Bold",
    "Cjk Mono Extended Extended Medium",
    "Cjk Mono Extended Extended Light",
    "Cjk Mono Extended Extended Extended"
];
const CJK_SIZES Extended Extended = [108, 120, 132, 144, 156];
const CJK Weights Extended Extended = ["1200", "1300", "1400", "1500", "1600"];
const SPRITE_SIZES Extended Extended = [256, 512, 1024];
const ANIMATION_SPEEDS Extended Extended = [5, 6, 7];
const ANIMATION_DURATIONS Extended Extended = [250, 300, 350];
const ANIMATION Phases Extended Extended = ["fadeIn", "flyUp", "fadeIn", "flyUp", "fadeIn", "flyUp", "fadeIn", "flyUp", "fadeIn", "flyUp"];
const SPRITE Phases Extended Extended = ["front", "side", "back", "front", "side", "back", "front", "side", "back", "front", "side", "back"];
const CJK Phases Extended Extended = ["mono", "mono bold", "mono medium", "mono light", "mono extended", "mono extended bold", "mono extended medium", "mono extended light", "mono extended extended", "mono extended extended bold", "mono extended extended medium", "mono extended extended light", "mono extended extended extended"];
const FIGHT Phases Extended Extended = ["init", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "heal", "attack", "defense", "
探索Pico-8中的中文支持,从安装到开发pg模拟电子中文,

发表评论