Initial commit: XinLanDiary dev0.0.7

添加 HUD 画廊/日期面板:右上角页面图标按钮,点击弹出叠层显示当前游戏内日期(Day 1 = 2029年9月3日)。
修复 renpy.pygame.draw.rect 不支持 border_radius 的兼容性问题。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 03:44:59 +08:00
commit 4e305599f2
148 changed files with 4984 additions and 0 deletions

426
game/Chapters/Chapter1.rpy Executable file
View File

@@ -0,0 +1,426 @@
# Chapter 1: 画廊风波
# Characters defined here that are not in script.rpy
label Chapter1_Scene1:
$ game_day = 1
$ game_period = "morning"
scene bg classroom featryt with fade
system_ "【Day 1·上午·七班教室】"
me "{cps=25}九月的风还带着夏末的燥热,那道斜切过窗台的阳光,在黑板上画出一道明晃晃的线。\n就像我的人生被分成了两半——线的那头是重点班线的这头是我。"
me "这道光就这么直直地切过来,像是在提醒我,你就在这儿,也只能在这儿了。\n曾经唾手可得如今遥不可及。"
pause 0.5
show xingyu thinking at left
xingyu "涛哥,你咋又对着黑板发呆?"
play music "audio/XinLanDiary-Part1.ogg" fadein 2
show xingyu laughing
xingyu "该不会是在研究光线折射角度吧?"
hide xingyu
show ryt dialogue normal at right
me "{cps=28}错!{cps=1} {cps=17}我在思考一个深刻的哲学问题 ——{cps=5} {cps=18}为什么物理老师的头发总是逆着地心引力生长?"
hide ryt
show lhy dialogue normal at left
lhy "根据观察王老师的发际线在过去六个月里上移了0.8厘米,主要集中于期中考试前后。\n相关性系数0.76。"
show ryt hit at right
me "你们看!{cps=6} {cps=20}这就是重点班的余孽,看什么都得用数据说话。吃我一掌!"
show lhy dialogue normal at left, shake_rotate
lhy "你的发力角度今天调整了从之前的斜上45度改为42度动能转化效率提升了约5\%。有进步。"
hide lhy
show lhy dialogue normal at left
show ryt dialogue embarrass pocket at right
show xingyu laughing big
xingyu "{cps=5}哈哈哈哈哈{cps=15}\n真是一对苦命鸳鸯"
$ game_period = "after_school"
stop music fadeout 1.0
play sound "audio/AfterClassRing.ogg" noloop
queue sound "audio/MainMenu.ogg" fadein 1.0
scene bg black with fade
pause 1.0
scene bg playground twilight
show xingyu laughing 2
xingyu "终于放学了!\n操场三对三今天必须把九班那群人打趴下"
hide xingyu
mom "「17:40校门口便利店别迟到。」"
show ryt dialogue normal at right
me "......妈妈又给我发这消息"
me "我得等车。\n你们先打下次我一定来 {cps=3} {cps=20}——前提是我妈能接受她儿子在篮球场上挥洒青春而不是在车里背单词。"
show xingyu at left
xingyu "涛哥,你这样不行啊,迟早得「起义」。"
stop sound fadeout 1.0
hide xingyu with dissolve
play music "audio/MainMenu.ogg" fadein 1.0
me "那声'起义'在心里荡开了一个小涟漪。"
me "他说得对——但说出口的代价,比他想的要重得多。"
hide ryt with dissolve
pause 0.8
# 草稿原文:「教室里人快走空时,手机震动了」——切回空教室背景
scene bg classroom wide afterschool with dissolve
lzx "画廊更新了,有惊喜。友情提示:这次可能会火。"
me "……“任懿涛观察日志?”"
system_ "【画廊更新】力学之美:作用力与反作用力在友谊中的应用。\n图注请注意研究对象在空中时的肢体协调度与落地后的平衡恢复能力。"
#system_ "图注:请注意研究对象在空中时的肢体协调度与落地后的平衡恢复能力。"
show ryt dialogue embarrass pocket at center with dissolve
me "三张连拍……全程记录,还加了学术注释。行吧,就是个玩笑。"
hide ryt with dissolve
stop music fadeout 1.0
$ lhy_stats["affection"] += 3
$ lhy_stats["trust"] += 2
$ xingyu_stats["affection"] += 3
$ xingyu_stats["cooperation"] += 2
$ tao_stats["humorSense"] += 2
$ lzx_stats["infoOpenness"] += 1
jump Chapter1_Scene2
label Chapter1_Scene2:
$ game_day = 2
$ game_period = "morning"
scene bg classroom morning featryt with fade
play music "audio/XinLanDiary-Part1.ogg" fadein 2
system_ "【Day 2·早自习前·七班教室】"
me "第二天早上,一切都不一样了。"
me "刚踏进七班,就感觉空气里有种微妙的兴奋。"
me "几个别班男生挤在后门,看到我进来——"
tongxue "涛哥!高手啊!"
tongxue "这弹跳力,不考虑加入校篮球队?"
tongxue "刘泓予还好吗?需要验伤不?"
show ryt dialogue normal at c1s2_ryt_pos with dissolve
me "笑,我只管笑。"
hide ryt with dissolve
me "走到座位,拿出手机——"
system_ "【匿名论坛·置顶】震惊!高二学霸竟在教室对同学实施「物理攻击」!\n 回复502层 | 转发88"
show ryt dialogue embarrass pocket at c1s2_ryt_pos with dissolve
me "……五百多层?"
me "李泽瑄那个链接,被人转到论坛上了?!"
hide ryt with dissolve
scene bg playground morning aerial with fade
me "课间操,成了公开处刑。"
me "站在队列里,我能感觉到四面八方投来的目光,听到各处的窃窃私语。"
#show ryt hit at center with dissolve
scene bg playground with dissolve
me "深吸一口气——经过八班队列时,我故意做了个跳起来打空气的动作,表情夸张。"
hide ryt with dissolve
tongxue "哈哈哈哈——"
stop music fadeout 1.0
me "果然,又是一阵笑声。"
me "我的那层盔甲还在。 对吗?"
pause 0.3
# 关键场景:刘泓予看穿
play music "audio/MainMenu.ogg" fadein 2.0
show lhy dialogue normal at right with dissolve
lhy "你刚才那个假动作面部肌肉的紧张程度是平时的1.3倍。"
show ryt dialogue embarrass pocket at left with dissolve
me "……"
lhy "高强度社交应激状态下人体会产生应激性微表情抑制行为。你的眼轮匝肌收缩时序比平时延迟了0.2秒。"
hide ryt with dissolve
hide lhy with dissolve
me "他说这话的时候,语气跟讲公式一模一样。"
me "但不知道为什么,被他这么一说……我反而松了口气。"
me "有人看见了,但没有嘲笑。只是……记录。"
#stop music fadeout 1.0
$ lhy_stats["affection"] += 5
$ lhy_stats["trust"] += 5
$ lhy_stats["empathy"] += 3
$ tao_stats["selfAcceptance"] += 1
$ tao_stats["studyStress"] += 2
jump Chapter1_Scene3
label Chapter1_Scene3:
# —— 视角A苏雨桐·学生会会议室 ——
$ game_period = "afternoon"
scene bg meetingroom meeting with fade
"{cps=20}【同日下午·学生会会议室】" # system_ "【同日下午·学生会会议室】"
me "下午的学生会会议室里,宣传部的干事滔滔不绝。"
ganshi "——就像最近论坛里很火的那个'力学之美'系列,这种原生内容特别容易引发共鸣,我们宣传部可以朝这个方向多发掘——"
pause 0.3
scene bg meetingroom featlxw at zoom_to_upper_right
yutong "稍等。"
pause 0.5
yutong "这类内容涉及肖像权问题。根据《民法典》第一千零一十九条,未经同意使用他人肖像,即便没有营利目的,如果造成当事人困扰,也涉嫌侵权。"
yutong "尤其是这种可能引发负面关注的传播,我们需要更谨慎。"
me "会议室陷入短暂沉默。" # 把me删掉 不删!.lzx
scene bg meetingroom meeting with dissolve
ganshi "雨桐提醒得对……这个问题我们后续会注意的。那继续下一项——"
"{cps=20}会议继续。没人看见,她放在桌下的手机屏幕上——" # 这个me也删掉删掉.lzx
system_ "【苏雨桐手机·加密相册·新增1张】"
yutong "……力学之美……有趣的视角。"
"{cps=20}她把第三张连拍放大,看了很久。"
"{cps=20}那个落地踉跄、表情错愕的瞬间,和高一时那个数学竞赛获奖后,在走廊里短暂发呆的男生,微妙地重合了。"
yutong "「给岁月以文明,而不是给文明以岁月。」"
yutong "我那天递给他的纸条上可不仅写了“恭喜”二字……"
yutong "这句话,他没有回应。\n 或许他根本就没有看见……"
stop music fadeout 1.0
$ yutong_stats["affection"] += 3
$ yutong_stats["attention"] += 5
$ yutong_stats["h_academicSupport"] += 1
pause 0.5
# —— 视角B林晓薇·高二一班走廊 ——
play music "audio/XinLanDiary-Part1.ogg" fadein 2.0
scene bg corridor with dissolve
"【同日下午·高二一班走廊】"
show xiaowei at left with dissolve
"同一时间,另一个人也在看那张照片。"
tongxue "晓薇你快看!这不是你们一班那个任懿涛吗?他怎么还是这么搞笑!"
xiaowei "拍得好生动啊!你们说,要是我也这样跳起来打人,会不会也这么有效果?"
tongxue "哈哈哈哈!"
hide xiaowei with dissolve
stop music fadeout 1.0
"{cps=20}她笑着,眼睛却没有离开屏幕。"
"{cps=20}那种真实的活力,让她觉得……在礼貌而疏离的文科班里,有什么东西被触动了。"
#system_ "【切换账号:薇风拂晓】"
play music "audio/XinLanDiary-Part1.ogg" fadein 2.0
scene bg classroom phone closeup with dissolve
system_ "好友列表:逍遥剑客 [[在线]"
xiaowei_w "在吗?问个事。你们学校是不是有个挺搞笑的人?最近好像因为什么照片火了。"
"发出去的瞬间她就后悔了。太突兀了——但已经来不及撤回。"
pause 0.8
me_w "???你哪个学校的?"
xiaowei_w "就随便问问,不想说算了。"
me "她收起手机。上课铃响了。"
me "路过七班门口时,她下意识往里看了一眼——"
show ryt dialogue normal at right with dissolve
show xingyu at left with dissolve
me "任懿涛正背对门口,和陈星宇比划着什么。大概又是游戏攻略。"
hide ryt with dissolve
hide xingyu with dissolve
stop music fadeout 1.0
$ xiaowei_stats["affection"] += 4
$ xiaowei_stats["interactionFrequency"] += 2
$ xiaowei_stats["is_xiaowei_w"] = False
jump Chapter1_Scene4
label Chapter1_Scene4:
$ game_period = "after_school"
play music "audio/MainMenu.ogg" fadein 2.0
scene bg classroom wide afterschool with fade
"{cps=20}【同日放学后·七班教室】" # system_ "【同日放学后·七班教室】"
show ryt dialogue normal at right with dissolve
me "放学了。教室里还剩几个人。"
me "'薇风拂晓'……你哪个学校的?"
me "这个账号……我好像只在游戏里见过。"
show xingyu at left with dissolve
xingyu "涛哥,你咋了?还在想那个破照片的事?"
me "我在思考更严肃的问题——为什么总有人对我的英姿如此念念不忘?"
me "我来看看画廊的统计数据,\n论坛转发之后访问量肯定不少——就当看个热闹。"
hide ryt with dissolve
system_ "【画廊后台·访问统计】今日新增347次 | 来源:匿名论坛转发"
show ryt dialogue normal at right with dissolve
me "果然,三百多。论坛一转,全涌进来了。"
me "不过……"
me "我往下翻,手指停在了一条记录上。"
hide ryt with dissolve
system_ "固定IP · 实验楼三层 · 每隔2-3天 · 晚9-10点"
system_ "最早记录:高一上学期(画廊建立初期)"
show ryt dialogue embarrass pocket at right with dissolve
me "……等等。这个IP从高一就开始了"
me "星宇实验楼三层的网络是不是只有13班和实验室在用"
xingyu "哟有人盯上你了啊。对那个段就是13班和几个竞赛实验室专用。"
xingyu "怎么,涛哥的英姿连重点班都征服了?"
hide xingyu with dissolve
show ryt dialogue embarrass pocket2 at right with dissolve
me "13班。那个我刚离开的世界。"
me "……是谁?"
pause 0.5
hide ryt with dissolve
# 反侦察行动
play music "audio/XinLanDiary-Part1.ogg" fadein 2.0
show xingyu at left with dissolve
xingyu "各位!我有个绝妙的主意——"
xingyu "既然那个画廊这么喜欢拍涛哥,咱们不如搞个「反侦察行动」!"
xingyu "找出那个偷拍者,然后拍他的黑历史!怎么样?"
show lhy dialogue normal with dissolve
lhy "理论上可行,但需要注意几个问题:\n第一如何确定拍摄者会再次行动\n第二如何在保护自身隐私的前提下进行反追踪\n第三——"
xingyu "哎呀小卡你别扫兴!就是玩嘛!涛哥,你说干不干?"
hide lhy with dissolve
stop music fadeout 0.8
show ryt dialogue normal at right with dissolve
me "看着眼前这群人。认识不过一个多月——但他们就这么凑过来,商量这种无聊又有趣的计划。"
me "在重点班时,从来没有过这样的时刻。"
play music "audio/XinLanDiary-Part1.ogg" fadein 1.0
me "行啊!但咱们得专业!要有分工!有排班表!有应急预案!还要有——"
hide ryt with dissolve
hide xingyu with dissolve
pause 0.4
# 颜涵出场
show yh camerabag at left with dissolve
yh "要有旁观席位。"
#me "声音从后门传来。颜涵,拎着相机包,表情平静。"
yh "我负责记录你们的失败过程。"
hide yh with dissolve
tongxue "哈哈哈哈哈!"
stop music fadeout 1.0
show ryt dialogue normal at right with dissolve
me "我也跟着笑。但眼睛不自觉地望向窗外。"
me "夕阳下的实验楼泛着暖黄的光,三楼东侧的窗户反射着落日的余晖。"
me "那里有谁,在看着我?"
me "还有那个'薇风拂晓',到底是谁?"
hide ryt with dissolve
$ xingyu_stats["affection"] += 5
$ xingyu_stats["cooperation"] += 5
$ xingyu_stats["helpfulness"] += 3
$ lhy_stats["affection"] += 3
$ yh_stats["affection"] += 3
$ yh_stats["understanding"] += 2
$ tao_stats["selfAcceptance"] += 2
pause 0.5
# 便利店
$ game_period = "evening"
play music "audio/XinLanDiary-Part2.ogg" fadein 2.0
scene bg convenience store with fade
system_ "【傍晚17:25·校门外便利店】"
show ryt normal spec at c1s4_ryt_pos with dissolve
me "17:25准时出现在校门外三百米处的便利店。"
me "买瓶饮料,站在店门口等车,看着其他学生自由地走过。"
me "骑车的,步行的,三五成群说笑的。每个人脸上都有种松弛感。"
#hide ryt with dissolve
show aunt normal at left with dissolve
"便利店主" "小任,新品。尝尝,你们年轻人喜欢这个。"
#show ryt dialogue normal at right with dissolve
me "谢了阿姨。"
hide ryt with dissolve
hide aunt with dissolve
me "拧开那瓶柚子味气泡水,靠在栏杆上。"
pause 0.6
# 苏雨桐骑车经过——本章关键镜头
scene bg schoolgate featsyt with dissolve
me "那是 ——{cps=1} {cps=20}苏雨桐"
me "她推着自行车从校门口出来。车篮里放着一本厚厚的书。"
me "她停在路口等红灯,低头看了眼手机——"
me "然后嘴角很轻地抬了一下。几乎算不上笑,只是一个微小的弧度。"
scene bg convenience store with dissolve
show ryt normal spec at c1s4_ryt_pos with dissolve
show ryt normal spec at slide_right(distance=200, duration=0.5) with dissolve
me "我下意识往便利店的阴影里退了半步。"
hide ryt with dissolve
scene bg sunset featsyt with dissolve
me "绿灯。她跨上车,黑发在傍晚的风里扬起,朝着与我家相反的方向骑远了。"
scene bg convenience store with dissolve
pause 0.5
me "自由。"
me "这个词突然撞进脑子里——不是解题时的快感,而是一种更基础的东西:掌控自己轨迹的权利。"
mom "「到了。」"
show ryt dialogue normal at right with dissolve
me "挺好的。特别开心。"
hide ryt with dissolve
me "……我说出这句话的时候,语气轻松得像是真的。"
me "车驶入车流。靠在车窗上,看着外面倒退的街景。"
$ yutong_stats["affection"] += 2
$ yutong_stats["attention"] += 3
$ tao_stats["selfAcceptance"] += 1
$ tao_stats["studyStress"] += 1
pause 0.5
# 双视角结尾
$ game_period = "night"
scene bg black with fade
system_ "【同夜·城市另一头】"
me "城市的另一头,苏雨桐刚回到家。"
yutong "TaoliTaoli……今天依然没有更新。"
system_ "【任懿涛画廊·访问计数器:+1】"
me "她一张张翻看那些照片。相册里已经积累了二十几张,按时间顺序排列。"
yutong "……在这个高度秩序化的生活里,观察一个如此不协调、如此鲜活的存在……有种奇妙的慰藉。"
$ yutong_stats["affection"] += 3
$ yutong_stats["attention"] += 4
pause 0.5
system_ "【几公里外·林晓薇的房间】"
me "几公里外,林晓薇躺在床上,盯着天花板发呆。"
me_w "你问的那个人,确实是我们学校的。怎么,你认识?"
me "那条回复躺在对话框里,她还没想好怎么回。"
me "她翻看相册,看着任懿涛在空中那个狰狞又认真的表情,看着落地时那个措手不及的踉跄。"
me "然后,她做了个决定。"
xiaowei "明天,课间的时候,以真实身份去七班找他。"
xiaowei "就说:那张照片拍得真好,特别生动。"
xiaowei "……就想看看,他会是什么反应。"
$ xiaowei_stats["affection"] += 3
$ xiaowei_stats["interactionFrequency"] += 3
pause 0.5
# 章节尾声
scene bg black with fade
me "窗外,九月的夜晚渐渐深了。城市灯火一盏盏亮起,每扇窗户后都是一个正在展开的故事。"
me "任懿涛的故事,在这一天,因为几张滑稽的照片,悄悄拐上了一条他自己都未曾预料的道路。"
me "这条路上,已经有两位女生在等着他——"
me "一个在暗处静静观察,一个在明处准备靠近。"
pause 1.0
me "而他自己,还不知道。"
pause 1.5
system_ "【第一章·画廊风波·完】"
return

View File

@@ -0,0 +1,88 @@
# intro.rpy
label splashscreen:
scene black
with Pause(1.0)
# 1. 环境铺垫
show bg school_gate with dissolve:
zoom 1.2
linear 5.0 zoom 1.0
play music "audio/intro_ambient.mp3" fadein 3.0
"2029年上海青澜高中"
"一所普通的市重点,有着不普通的故事"
# 2. 快速剪辑:主角的多个侧面
show bg classroom_empty with pixellate
"他是数学课上的王者..."
show bg basketball_court with pixellate
"篮球场上的活跃分子..."
show bg computer_lab with pixellate
"游戏世界的攻略者..."
# 3. 引入关键道具/符号
show phone_screen:
xalign 0.5 yalign 0.5
zoom 0.0
linear 0.5 zoom 1.0
"当他的生活被放上名为「任懿涛画廊」的网站..."
show gallery_website with dissolve:
xalign 0.5 yalign 0.5
"标签,比本人传播得更快"
hide gallery_website with dissolve
# 4. 关键冲突提示
scene bg corridor with dissolve
show shadow boy at left
show shadow girl at right
"重点班 → 普通班"
"学霸 → 偏科生"
"独立 → 依赖"
# 5. 角色群像闪现(可选,如果立绘已准备好)
show liuhongyu silhouette at left with dissolve
show yanhan silhouette at center with dissolve
show xuwei silhouette at right with dissolve
"在这段充满矛盾的高二生活中..."
hide liuhongyu
hide yanhan
hide xuwei
# 6. 核心问题
scene black with dissolve
show text "{size=40}当所有人都通过标签认识你...{/size}" at truecenter with dissolve
pause 1.5
hide text
show text "{size=40}你该如何认识自己?{/size}" at truecenter with dissolve
pause 2.0
hide text
# 7. 游戏标题
scene bg sunset with dissolve
show text "{size=80}{font=fonts/custom.ttf}青澜日记{/font}{/size}" at truecenter:
yalign 0.4
show text "{size=25}——任懿涛的高中恋爱物语——{/size}" at truecenter:
yalign 0.6
play sound "audio/title_appear.wav"
with hpunch
pause 3.0
# 8. 制作信息
scene black with dissolve
show text "游戏灵感来自真实事件" at truecenter with dissolve
pause 1.5
hide text
show text "任懿涛画廊真实存在:\nhttps://gallery.lizexuan.com" at truecenter with dissolve
pause 2.0
hide text
show text "按下任意键开始" at truecenter with dissolve
pause 1.0
return

Binary file not shown.

BIN
game/audio/MainMenu.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
game/fonts/SourceHanSansLite.ttf Executable file

Binary file not shown.

453
game/gui.rpy Executable file
View File

@@ -0,0 +1,453 @@
################################################################################
## 初始化
################################################################################
## “init offset”语句可使此文件中的初始化语句在任何其他文件中的“init”语句之前运
## 行。
init offset = -2
## 调用 gui.init 会将样式重置为合理的默认值,并设置游戏的宽度和高度(基准分辨
## 率)。
init python:
gui.init(1920, 1080)
## 启用对屏幕或变换中无效或不稳定属性的检查
define config.check_conflicting_properties = True
################################################################################
## GUI 配置变量
################################################################################
## 颜色 ##########################################################################
##
## 界面中文本的颜色。
## 整个界面中使用的强调色,用于标记和突出显示文本。
define gui.accent_color = '#003366'
## 当文本按钮既未被选中也未被悬停时使用的颜色。
define gui.idle_color = '#707070'
## 小的颜色用于小的文本,需要更亮/更暗才能达到同样的效果。
define gui.idle_small_color = '#606060'
## 当按钮和滑条被悬停时使用的颜色。
define gui.hover_color = '#003366'
## 当文本按钮被选中但非焦点时使用的颜色。当一个按钮为当前屏幕或设置选项值时,会
## 处于选中状态。
define gui.selected_color = '#555555'
## 当文本按钮无法被选择时使用的颜色。
define gui.insensitive_color = '#7070707f'
## 滑条未填充的部分使用的颜色。这些颜色不直接使用,但在重新生成条形图像文件时使
## 用。
define gui.muted_color = '#6684a3'
define gui.hover_muted_color = '#99adc1'
## 对话和菜单选择文本使用的颜色。
define gui.text_color = '#404040'
define gui.interface_text_color = '#404040'
## 字体和字体大小 #####################################################################
## 游戏内文本使用的字体。
define gui.text_font = "fonts/AlibabaPuHuiTi-3-55-Regular.ttf"
## 角色名称使用的字体。
define gui.name_text_font = "fonts/SmileySans-Oblique.ttf"
## 游戏外文本使用的字体。
define gui.interface_text_font = "fonts/AlibabaPuHuiTi-3-55-Regular.ttf"
## 普通对话文本的大小。
define gui.text_size = 30
## 角色名称的大小。
define gui.name_text_size = 42
## 游戏用户界面中文本的大小。
define gui.interface_text_size = 33
## 游戏用户界面中标签的大小。
define gui.label_text_size = 36
## 通知屏幕上文本的大小。
define gui.notify_text_size = 24
## 游戏标题的大小。
define gui.title_text_size = 75
## 标题和游戏菜单 #####################################################################
## 标题菜单和游戏菜单使用的图像。
define gui.main_menu_background = "gui/main_menu.png"
define gui.game_menu_background = "gui/game_menu.png"
## 对话 ##########################################################################
##
## 这些变量控制对话如何在屏幕上逐行显示。
## 包含对话的文本框的高度。
define gui.textbox_height = 278
## 文本框在屏幕上的垂直位置。0.0 是顶部0.5 是居中1.0 是底部。
define gui.textbox_yalign = 1.0
## 叙述角色名字相对于文本框的位置。可以是从左侧或顶部起的整数像素,或设为 0.5 来
## 居中。
define gui.name_xpos = 360
define gui.name_ypos = 0
## 角色名字的水平对齐方式。0.0 为左侧对齐0.5 为居中显示,而 1.0 为右侧对齐。
define gui.name_xalign = 0.0
## 包含角色名字的方框的宽度、高度和边框尺寸,或设为 None 来自动确定其大小。
define gui.namebox_width = None
define gui.namebox_height = None
## 包含角色名字的方框的边界尺寸,以左、上、右、下顺序排列。
define gui.namebox_borders = Borders(5, 5, 5, 5)
## 若为 True则名字框的背景将平铺若为 False则名字框的背景将缩放。
define gui.namebox_tile = False
## 对话相对于文本框的位置。可以是相对于文本框从左侧或顶部起的整数像素,或设为
## 0.5 来居中。
define gui.dialogue_xpos = 402
define gui.dialogue_ypos = 75
## 对话文本的最大宽度,以像素为单位。
define gui.dialogue_width = 1116
## 对话文本的水平对齐方式。0.0 为左侧对齐0.5 为居中显示,而 1.0 为右侧对齐。
define gui.dialogue_text_xalign = 0.0
## 按钮 ##########################################################################
##
## 这些变量以及 gui/button 中的图像文件控制着按钮显示方式。
## 按钮的宽度和高度像素数。如果为 None则 Ren'Py 将计算大小。
define gui.button_width = None
define gui.button_height = None
## 按钮两侧的边框,按左、上、右、下的顺序排列。
define gui.button_borders = Borders(6, 6, 6, 6)
## 若为 True则背景图像将平铺。若为 False则背景图像将线性缩放。
define gui.button_tile = False
## 按钮使用的字体。
define gui.button_text_font = gui.interface_text_font
## 按钮所使用的文本大小。
define gui.button_text_size = gui.interface_text_size
## 按钮文本在各种状态下的颜色。
define gui.button_text_idle_color = gui.idle_color
define gui.button_text_hover_color = gui.hover_color
define gui.button_text_selected_color = gui.selected_color
define gui.button_text_insensitive_color = gui.insensitive_color
## 按钮文本的水平对齐方式。0.0 为左侧对齐0.5 为居中对齐,而 1.0 为右侧对
## 齐)。
define gui.button_text_xalign = 0.0
## 这些变量覆盖了不同类型按钮的设置。关于可用的按钮种类以及每种按钮的用途,请参
## 阅 gui 文档。
##
## 这些定制由默认界面使用:
define gui.radio_button_borders = Borders(27, 6, 6, 6)
define gui.check_button_borders = Borders(27, 6, 6, 6)
define gui.confirm_button_text_xalign = 0.5
define gui.page_button_borders = Borders(15, 6, 15, 6)
define gui.quick_button_borders = Borders(15, 6, 15, 0)
define gui.quick_button_text_size = 21
define gui.quick_button_text_idle_color = gui.idle_small_color
define gui.quick_button_text_selected_color = gui.accent_color
## 您还可以通过添加正确命名的变量来添加自己的定制。例如,您可以将以下几行取消注
## 释来设置导航按钮的宽度。
# define gui.navigation_button_width = 250
## 选项按钮 ########################################################################
##
## 游戏内菜单使用的选项按钮。
define gui.choice_button_width = 1185
define gui.choice_button_height = None
define gui.choice_button_tile = False
define gui.choice_button_borders = Borders(150, 8, 150, 8)
define gui.choice_button_text_font = gui.text_font
define gui.choice_button_text_size = gui.text_size
define gui.choice_button_text_xalign = 0.5
define gui.choice_button_text_idle_color = '#707070'
define gui.choice_button_text_hover_color = "#003366"
define gui.choice_button_text_insensitive_color = '#7070707f'
## 存档按钮 ########################################################################
##
## 存档按钮是一种特殊的按钮。它包含一个缩略图和描述该存档内容的文本。存档使用
## gui/button 中的图像文件,就像其他类型的按钮一样。
## 存档位按钮。
define gui.slot_button_width = 414
define gui.slot_button_height = 309
define gui.slot_button_borders = Borders(15, 15, 15, 15)
define gui.slot_button_text_size = 21
define gui.slot_button_text_xalign = 0.5
define gui.slot_button_text_idle_color = gui.idle_small_color
define gui.slot_button_text_selected_idle_color = gui.selected_color
define gui.slot_button_text_selected_hover_color = gui.hover_color
## 存档所用缩略图的宽度和高度。
define config.thumbnail_width = 384
define config.thumbnail_height = 216
## 存档网格中的列数和行数。
define gui.file_slot_cols = 3
define gui.file_slot_rows = 2
## 定位和间距 #######################################################################
##
## 这些变量控制各种用户界面元素的位置和间距。
## 导航按钮左侧相对于屏幕左侧的位置。
define gui.navigation_xpos = 60
## 快进指示器的垂直位置。
define gui.skip_ypos = 15
## 通知界面的垂直位置。
define gui.notify_ypos = 68
## 菜单选项之间的间距。
define gui.choice_spacing = 33
## 标题菜单和游戏菜单的导航部分中的按钮。
define gui.navigation_spacing = 6
## 控制设置项目之间的间隔量。
define gui.pref_spacing = 15
## 控制设置按钮之间的间距。
define gui.pref_button_spacing = 0
## 存档页面按钮之间的间距。
define gui.page_spacing = 0
## 存档按钮之间的间距。
define gui.slot_spacing = 15
## 标题菜单文本的位置。
define gui.main_menu_text_xalign = 1.0
## 框架 ##########################################################################
##
## 这些变量控制在不存在覆盖层或窗口时可以包含用户界面组件的框架的外观。
## 通用框架。
define gui.frame_borders = Borders(6, 6, 6, 6)
## 用作确认界面部分的框架。
define gui.confirm_frame_borders = Borders(60, 60, 60, 60)
## 用作快进界面部分的框架。
define gui.skip_frame_borders = Borders(24, 8, 75, 8)
## 用作通知界面部分的框架。
define gui.notify_frame_borders = Borders(24, 8, 60, 8)
## 框架背景是否应平铺?
define gui.frame_tile = False
## 条,滚动条和滑块 ####################################################################
##
## 这些语句控制条,滚动条和滑块的外观和大小。
##
## 默认的 GUI 仅使用滑块和垂直滚动条。所有其他栏仅在创建者编写的屏幕中使用。
## 水平条,滚动条和滑块的高度。垂直条,滚动条和滑块的宽度。
define gui.bar_size = 38
define gui.scrollbar_size = 18
define gui.slider_size = 38
## 若为 True则条的底图平铺。若为 False则条的底图线性缩放。
define gui.bar_tile = False
define gui.scrollbar_tile = False
define gui.slider_tile = False
## 水平边框。
define gui.bar_borders = Borders(6, 6, 6, 6)
define gui.scrollbar_borders = Borders(6, 6, 6, 6)
define gui.slider_borders = Borders(6, 6, 6, 6)
## 垂直边框。
define gui.vbar_borders = Borders(6, 6, 6, 6)
define gui.vscrollbar_borders = Borders(6, 6, 6, 6)
define gui.vslider_borders = Borders(6, 6, 6, 6)
## What to do with unscrollable scrollbars in the game menu. "hide" hides them,
## while None shows them.
define gui.unscrollable = "hide"
## 历史 ##########################################################################
##
## 历史记录屏幕显示玩家已经阅读过的对话。
## Ren'Py 将保留的对话历史块数。
define config.history_length = 250
## 历史屏幕条目的高度,或设置为 None 以使高度变量自适应。
define gui.history_height = 210
## 在历史记录屏幕条目之间添加额外的空间。
define gui.history_spacing = 0
## 所指定叙述角色的标签的坐标、宽度和对齐方式。
define gui.history_name_xpos = 233
define gui.history_name_ypos = 0
define gui.history_name_width = 233
define gui.history_name_xalign = 1.0
## 对话文本的坐标、宽度和对齐方式。
define gui.history_text_xpos = 255
define gui.history_text_ypos = 3
define gui.history_text_width = 1110
define gui.history_text_xalign = 0.0
## NVL 模式 ######################################################################
##
## NVL 模式屏幕显示 NVL 模式的角色所产生的对话。
## NVL 模式背景窗口的背景边框。
define gui.nvl_borders = Borders(0, 15, 0, 30)
## Ren'Py 所显示的 NVL 模式条目的最大数量。当要显示的条目多于此数量时,最旧的条
## 目将被删除。
define gui.nvl_list_length = 6
## NVL 模式条目的高度。将此设置为 None 可使条目动态调整高度。
define gui.nvl_height = 173
## 当 gui.nvl_height 为 None 时NVL 模式条目之间的间距,以及 NVL 模式条目和 NVL
## 模式菜单之间的间距。
define gui.nvl_spacing = 15
## 所指定叙述角色的标签的坐标、宽度和对齐方式。
define gui.nvl_name_xpos = 645
define gui.nvl_name_ypos = 0
define gui.nvl_name_width = 225
define gui.nvl_name_xalign = 1.0
## 对话文本的坐标、宽度和对齐方式。
define gui.nvl_text_xpos = 675
define gui.nvl_text_ypos = 12
define gui.nvl_text_width = 885
define gui.nvl_text_xalign = 0.0
## nvl_thought 文本(由 nvl_narrator 字符表示的文本)的位置,宽度和对齐方式。
define gui.nvl_thought_xpos = 360
define gui.nvl_thought_ypos = 0
define gui.nvl_thought_width = 1170
define gui.nvl_thought_xalign = 0.0
## NVL menu_buttons 的位置。
define gui.nvl_button_xpos = 675
define gui.nvl_button_xalign = 0.0
## 本地化 #########################################################################
## 该变量控制允许在何时换行。默认值适用于大多数语言。可用的值请参见 https://
## www.renpy.org/doc/html/style_properties.html#style-property-language
define gui.language = "unicode"
################################################################################
## 移动设备
################################################################################
init python:
## 该变量增加快捷菜单按钮的尺寸来使它们在平板和手机上更容易被按到。
@gui.variant
def touch():
gui.quick_button_borders = Borders(60, 21, 60, 0)
## 该变量更改各个 GUI 元素的尺寸和间距来确保它们在手机上更容易被辨识。
@gui.variant
def small():
## 字体大小。
gui.text_size = 45
gui.name_text_size = 54
gui.notify_text_size = 38
gui.interface_text_size = 45
gui.button_text_size = 45
gui.label_text_size = 51
## 调整对话框的位置。
gui.textbox_height = 360
gui.name_xpos = 120
gui.dialogue_xpos = 135
gui.dialogue_width = 1650
## 更改各元素的尺寸和间距。
gui.slider_size = 54
gui.choice_button_width = 1860
gui.choice_button_text_size = 45
gui.navigation_spacing = 30
gui.pref_button_spacing = 15
gui.history_height = 285
gui.history_text_width = 1035
gui.quick_button_text_size = 30
## 文件按钮布局。
gui.file_slot_cols = 2
gui.file_slot_rows = 2
## NVL 模式。
gui.nvl_height = 255
gui.nvl_name_width = 458
gui.nvl_name_xpos = 488
gui.nvl_text_width = 1373
gui.nvl_text_xpos = 518
gui.nvl_text_ypos = 8
gui.nvl_thought_width = 1860
gui.nvl_thought_xpos = 30
gui.nvl_button_width = 1860
gui.nvl_button_xpos = 30

BIN
game/gui/bar/bottom.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

BIN
game/gui/bar/left.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

BIN
game/gui/bar/right.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

BIN
game/gui/bar/top.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

BIN
game/gui/bubble.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
game/gui/frame.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
game/gui/game_menu.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

BIN
game/gui/main_menu.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

BIN
game/gui/namebox.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

BIN
game/gui/namebox_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
game/gui/notify.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
game/gui/nvl.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
game/gui/overlay/confirm.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
game/gui/overlay/game_menu.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
game/gui/overlay/main_menu.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
game/gui/phone/bar/bottom.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

BIN
game/gui/phone/bar/left.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

BIN
game/gui/phone/bar/right.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

BIN
game/gui/phone/bar/top.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
game/gui/phone/nvl.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

BIN
game/gui/phone/textbox.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

BIN
game/gui/skip.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

BIN
game/gui/textbox-bu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

BIN
game/gui/textbox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
game/gui/textbox_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
game/gui/thoughtbubble.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
game/gui/window_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
game/icon.icns Normal file

Binary file not shown.

BIN
game/images/aunt normal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

BIN
game/images/bg black.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Some files were not shown because too many files have changed in this diff Show More