SkillAgentSearch skills...

PySLGalMaker

A light-weighted python tool to make youself's Galgame

Install / Use

/learn @SeavantUUz/PySLGalMaker
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PySLGalMaker

描述:一个轻量级的galgame引擎,使用语言为python,依赖包为pygame

使用说明

从github获取程序:

git clone git@github.com:SeavantUUz/PySLGalMaker.git 

注意

  • 通过修改script.sanae来书写剧本
  • 把BGM放入BGM文件夹
  • 背景图片放入BG文件夹
  • 立绘放入PORTRAIT文件夹
  • SYSTEM文件夹中负责存档界面以及离开按钮的定制,可自由修改
  • 书写script.sanae需要按照一定的语法,后面会详述
  • python run.py
  • 如果对具体实现感兴趣,请参阅个人博客上的关联文章

已实现语法

  • [ ] 背景显示语法
  • [ ] 音乐指定语法
  • [ ] 立绘显示语法
  • [ ] 文本显示语法
  • [ ] 选择枝语法
  • [ ] 索引语法

已知问题

  • 理论上,这个程序可以在Linux或者Windows下运行,事实上,最开始也做了这方面处理。但是后来部分,时间仓促没有添加,所以,windows下可能出现乱码问题。推荐的方法是,用vim等文本编辑器把字符编码转成gb2313,可能能解决。
  • 本机测试时,存档功能表现很不稳定,暂时不知道问题出处。

语法说明
读完下面语法后,建议读一读自带的script.sanae文件,里面是默认的剧本

  • 索引
    语法模式:数字
    解释:
    这是必填项,代表当前的索引。一般来说都只是个数字。这一版,相邻两帧只能是连续的数字---除了有选择按钮的帧。注意,索引必从0开始。
    举例:
    0

  • 背景
    语法模式:[background = 'xxx.xxx']
    解释:
    [],background,=为必填项,等号两旁可以有空格也可以没有,单引号括住图片的名字,图片请放在BG文件夹下。所有符号均为英文输入情况下的符号。这句话的作用是插入背景图片。图片的格式的话,常见的图片格式都能解析。大小会自动转成 800x600,最好不要用竖着的图片
    举例:
    [background = 'sanae.png']

  • BGM
    语法模式: [BGM = 'xxx.xxx']
    解释:
    要求同上,支持音乐格式,windows下为mp3和wav,Linux下为wav和ogg。这句话插入背景音乐,播放方式为无限循环。
    举例:
    [BGM = 'uuz.wav']

  • 文本
    语法模式: <xxxxxx>
    解释:
    文本,也就是一般gal的文字。尖括号的所有内容均会出现在文本框中。有上限,大致是120个字,支持两种形式:
    * <风笳:今天天气哇哈哈> * <今天天气哇哈哈>
    对a这种形式,显示时,风笳会单独放在第一行,并加上:,表示说话人,剩下内容在第二行显示。而b的话,第一行留空,第二行显示。具体请查看script。有一个比较大的bug是:如果当前帧没有说话人,但是出现了:,那会造成一些问题,建议是文本中不出现 :
    举例:

    • <th13.5,th14,全面自机丢失>
  • 选择枝
    语法模式:
    [choice]
    xxxx->xxx
    xxxx->xxx
    [/choice]
    解释:
    这是出现选项按钮的写法,事实上,[choice]和[/choice]并不影响解析,也就是说,你写成:
    xxxx->xxx
    xxxx->xxx
    也是完全可以的。但是为了保持脚本的易懂,推荐加上。当然,你自己定义为:
    [b]
    xxxx->xxx
    xxxx->xxx
    [/f]
    都是可以的。
    举例:
    [choice]
    选择卯之花->40
    选择葵->50
    选择佐奈->60
    选择苏方->200
    [/choice]

  • 人物立绘
    语法模式:{'图片名';1.(切割位置);2.(图片在屏幕上大小);3.(图片在屏幕上位置)}
    解释:
    最复杂的语法,需要有四个参数,切割位置指在原图上进行切割的右下角坐标。
    支持多行解析
    支持一次初始化传递之后的缺省传递
    具体的请参看 script中的示例
    举例:

    • {'sanae.png';1.(600,600);2.(200,200);3.(200,200)}(初始化传入形式)
    • {'sanae.png';1.(600,600);2.(200,200);3.(200,200) 'sanae1.png';1.(600,600);2.(300,300);3.(0,0)}(多行初始化传入形式)
    • {'sanae.png';2.(300,400)}(缺省出入形式)
    • {'sanae.png';}(移除sanae.png立绘)
    • {}(移除全部立绘)

如果有问题请联系:axdiaoqi220@gmail.com 请随意fork

License

GPL

View on GitHub
GitHub Stars25
CategoryDevelopment
Updated1y ago
Forks7

Languages

Python

Security Score

60/100

Audited on Mar 25, 2025

No findings