engines.renpy.sentence_generators.camera_generator 源代码

"""
Ren'Py Scene Clear Generator
生成场景清除命令
"""
from core.base_sentence_generator import BaseSentenceGenerator


[文档] class CameraGenerator(BaseSentenceGenerator): """镜头效果生成器""" param_config = { "Camera": { "translate_type": "Camera" }, "CameraLayer": { "translate_type": "Layer", "format": " {value}" }, "CameraAt": { "translate_type": "Transform", "format": " at {value}" }, "Zoom": { "format": " zoom {value}" }, "OffsetX": { "format": " xoffset {value}" }, "OffsetY": { "format": " yoffset {value}" }, "CameraATL": { }, } @property def category(self): return "Camera" @property def priority(self) -> int: return 150
[文档] def process(self, data): """ 处理镜头效果参数 Args: data: 参数字典 Returns: List[str]: 生成的镜头效果命令 """ if not self.can_process(data): return None data = self.do_translate(data) camera = self.get_value("Camera", data) command = "camera" layer = self.get_sentence("CameraOnlayer", data) if camera == "transform": at = self.get_sentence("CameraAt", data) return [f"{command}{layer}{at}"] lines = [] if camera == "move": zoom = self.get_sentence("Zoom", data) x = self.get_sentence("OffsetX", data) y = self.get_sentence("OffsetY", data) lines.append(f"{command}{layer}:") lines.append(f" {zoom}{x}{y}") return lines if camera == "custom": custom = self.get_value("CameraATL", data) lines.append(f"{command}{layer}:") lines.append(f" {custom}") return lines return ["camera"]