基础语法
注释
使用 // 进行单行注释:
// 这是注释,不会被执行
林晓: 你好! // 行尾注释叙述文本
以 > 开头的文本为旁白叙述:
> 月光透过树梢洒落,四周寂静。
> 你不记得自己是如何来到这里的。对话
格式:角色名: 对话内容
林晓: 这里是...哪里?
神秘精灵: 欢迎来到魔法森林。带表情的对话:
林晓 (惊讶): 这怎么可能!文本插值 {{ }}
NovaMark 支持在显示给玩家的文本中插入表达式结果。当前支持的位置包括:
- 旁白
- 角色对话
- 选择选项文本
基本写法:
@var hp = 100
@var mp = 35
> 当前生命:{{hp}}
林晓: 我还有 {{mp}} 点魔力。
? 你要做什么?
- [消耗 {{mp}} 点魔力施法] -> .cast支持的表达式
{{ }} 中不是只能写变量名,而是可以写任意合法表达式,例如:
@var hp = 100
@var cost = 20
> 受伤后生命:{{hp - 10}}
> 是否拿到钥匙:{{has_flag("got_key")}}
- [支付 {{cost}} 枚金币] -> .pay常见场景:
{{hp}}:读取变量{{hp - 10}}:算术表达式{{has_flag("got_key")}}:函数调用
使用边界
{{ }} 目前只用于显示文本,不会用于:
- 命令参数本身
@check/if的条件位置- 跳转目标、角色名、资源路径等结构性语法位置
也就是说,它的职责是“把运行时值显示到文本里”,而不是替代脚本其它语法。
解析失败时的行为
如果 {{ }} 没有正确闭合,或内部表达式无法被解析,NovaMark 会保留原始文本,而不是中断整段文本渲染。
Front Matter
文件开头可以使用 YAML 格式的元数据:
---
title: 游戏标题
author: 作者名
version: 1.0
description: 游戏描述
---标识符
NovaMark 完整支持中文标识符:
@var 生命值 = 100
@var 金币 = 50
林晓: 我有 {{金币}} 枚金币。Last updated on