python制作galgame引擎(五)
姗姗来迟的续篇不是么(笑)。嗯哼,不要在意上一篇充满忧郁的离别气氛~~~ 这一篇是新增语法的设计和解释,分别是立绘的绘制(渲染?或许用render更靠谱?)语法和跳转指定帧的语法。前者很麻烦,后者很简单。 所谓人物立绘,galgame游戏中,就是人物的肖像,一般来说就是对话对方的肖像。非gal玩家估计比较难想象……有兴趣的话可以查一下相关定义。顺便,虽然不是gal,但是东方的zun绘,依然是人物立绘…… 值得注意的是,人物立绘出现的频度很频繁,这就要求语法定义必须要很简单。但是问题是,立绘的渲染本身需要的参数就很多,这算是一个不大不小的矛盾。 如果对立绘参数要求很多这一点有异议,请仔细考虑一下。人物立绘的渲染,到底需要哪些参数:本地人物图片的右下角(切割图片位置),缩放大小,屏幕位置。对吧,至少需要三个参数。为了简便起见,后面也只考虑这三个参数。 考虑需求的频度较高,使用[xxxxxx]语法就过于麻烦了,这里我使用{}来标明立绘的语法域。 因为立绘有几个特征:同样的图片可以在画面移动(用来表现走路啊什么的);同样大小的图片,虽然位置不动,但是图片本身改变了(人物表情变化);图片和图片位置(中心位置)不改变,大小变化(人物由远及近)。处于便捷性考虑,每次都填写同样的东西并不爽,于是允许缺失值,缺失值会直接使用之前一帧的值,这样的思路要好一点。不太好理解?请看一下我定义的语法吧: {