ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Pyxel Editor 完全指南:内置资源编辑器四大模块的操作与实现原理

Pyxel Editor 完全指南:内置资源编辑器四大模块的操作与实现原理 游戏开发【免费下载链接】pyxelA retro game engine for Python项目地址https://gitcode.com/GitHub_Trending/py/pyxel点击查看免费下载Pyxel Editor 是 PyxelA retro game engine for Python内置的资源编辑工具覆盖精灵图、瓦片地图、音效与 BGM 的完整制作流程。本文以 docs/editor-manual.md 官方手册为主体结合仓库内 CLI 入口、编辑器实现与 Rust 核心常量系统讲解pyxel edit的启动方式、四个编辑器的全部规格与快捷键并补充源码级的运行原理帮助你直接上手制作可被pyxel.load()加载的.pyxres资源文件。概览一个工具四种编辑器Pyxel Editor 是一个内置的图形化资源编辑工具由四个独立编辑器组成可通过屏幕顶部的编辑器切换按钮随时切换图像编辑器Image Editor编辑用于精灵与瓦片贴图的图像库image bank瓦片地图编辑器Tilemap Editor将图像库中的图像作为瓦片排列拼出地图声音编辑器Sound Editor编辑用于音效与旋律的声音sound音乐编辑器Music Editor按播放顺序排列声音编曲成 BGM 等音乐music从源码结构看这四种编辑器分别由 python/pyxel/editor/image_editor.py、python/pyxel/editor/tilemap_editor.py、python/pyxel/editor/sound_editor.py 与 python/pyxel/editor/music_editor.py 实现并在 python/pyxel/editor/app.py 中以_editors列表统一注册、按索引切换编辑器窗口尺寸固定为 240×180见 python/pyxel/editor/settings.py。快速上手启动 Pyxel Editor在终端中执行以下命令即可启动编辑器pyxel edit [PYXEL_RESOURCE_FILE]行为规则如下若指定的 Pyxel 资源文件.pyxres已存在则加载该文件内容若不存在则以指定名称创建新文件若省略文件名则创建默认文件my_resource.pyxres。命令行入口的实现在 python/pyxel/cli.py未提供文件名时自动补全为my_resource并通过_complete_extension自动追加.pyxres扩展名最终调用pyxel.editor.App(resource_file, starting_editor)启动编辑器编辑器默认以图像编辑器starting_editorimage打开。随后 python/pyxel/editor/app.py 会初始化 240×180 的 Pyxel 窗口、开启鼠标支持并在资源文件存在时调用pyxel.load()否则调用pyxel.load_pal()建立默认调色板。通用操作以下操作在所有编辑器中通用。菜单栏屏幕顶部的菜单栏包含四个编辑器切换按钮、撤销/重做按钮与保存按钮。右侧的帮助消息区域会根据光标位置显示上下文相关的操作提示例如悬停撤销按钮时提示UNDO:CTRLZ对应实现见 python/pyxel/editor/app.py。按钮功能快捷键图像编辑器切换到图像编辑器—瓦片地图编辑器切换到瓦片地图编辑器—声音编辑器切换到声音编辑器—音乐编辑器切换到音乐编辑器—撤销撤销上一步操作Ctrl(Cmd)Z重做重做被撤销的操作Ctrl(Cmd)Y保存保存资源文件Ctrl(Cmd)S其他快捷键快捷键作用Alt(Option)Left/Right切换编辑器类型ShiftCtrl(Cmd)C复制整个编辑目标ShiftCtrl(Cmd)X剪切整个编辑目标复制并清空ShiftCtrl(Cmd)V粘贴复制的目标Shift点击[]/[-] 按钮数值按 ±10 的增量变化在程序中使用编辑器产物创建好的资源文件在 Pyxel 应用中通过pyxel.load()加载使用import pyxel pyxel.init(256, 256) pyxel.load(my_resource.pyxres) # 加载编辑器保存的资源 pyxel.run(...)pyxel.load()的完整签名见 python/pyxel/init.pyi可通过exclude_images、exclude_tilemaps、exclude_sounds、exclude_musics四个开关按需排除部分资源若同目录存在同名.pyxpal调色板文件也会一并更新显示颜色。保存则使用pyxel.save()python/pyxel/init.pyi两者在 Rust 侧的底层实现位于 crates/pyxel-binding/src/resource_wrapper.rs。切换资源文件编辑器运行期间可拖拽另一个.pyxres文件到窗口以加载其内容。注意该操作会覆盖当前所有编辑内容若有未保存的修改请提前保存。图像编辑器Image Editor图像编辑器用于编辑每个图像库中的图像是制作像素精灵与瓦片贴图的核心模块。规格图像库Image Banks0–2共 3 个尺寸每个 256×256 像素坐标系原点 (0,0) 位于左上角X 轴向右、Y 轴向下上述数值与 Rust 核心常量一一对应NUM_IMAGES3、IMAGE_SIZE256见 crates/pyxel-core/src/settings.rs这意味着一个图像库恰好可容纳 32×32 个 8×8 瓦片是设计瓦片素材时的重要参照。界面布局图像画布Image Canvas显示图像库视图中选中区域的放大视图鼠标点击并拖拽即可绘制像素。操作作用右键点击取色拾取光标位置的像素颜色右键拖拽平移视图图像库视图Image Bank View整个图像库的缩略图白色边框标示当前编辑区域。操作作用方向键移动编辑区域白色边框点击将编辑区域移动到点击位置右键拖拽平移视图工具按钮选择绘制工具各工具的默认快捷键如下工具快捷键说明选区SelectS选择矩形区域铅笔PencilP自由绘制按住 Shift 绘制直线空心矩形Rect OutlineR绘制矩形边框按住 Shift 绘制正方形实心矩形Rect FilledShiftR绘制实心矩形按住 Shift 绘制正方形空心椭圆Ellipse OutlineC绘制椭圆边框按住 Shift 绘制圆形实心椭圆Ellipse FilledShiftC绘制实心椭圆按住 Shift 绘制圆形油漆桶BucketB填充同色连通区域选区工具快捷键在使用选区工具时以下快捷键可用快捷键作用Ctrl(Cmd)A全选整个画布Ctrl(Cmd)C复制选区Ctrl(Cmd)X剪切选区复制并清空Ctrl(Cmd)V粘贴复制的区域H水平翻转选区V垂直翻转选区调色板从 16 色调色板中选择绘制颜色。快捷键作用1–8选择颜色 0–7Shift1–8选择颜色 8–15这 16 色的默认色值定义在 crates/pyxel-core/src/settings.rs 的DEFAULT_COLORS中从索引 0 的黑色0x000000到索引 15 的桃色0xedc7b0并对应COLOR_NAVY、COLOR_PURPLE等命名常量crates/pyxel-core/src/settings.rs。图像库编号Bank Number切换目标图像库0–2。加载外部图片将 PNG、JPG 等图片文件拖拽到图像编辑器即可在编辑区域位置加载该图片。原图颜色会自动转换为 Pyxel 调色板中的颜色超出图像库边界的部分会被裁剪。瓦片地图编辑器Tilemap Editor瓦片地图编辑器用于将图像库中的图像作为瓦片图案排列并编辑瓦片地图。规格瓦片地图Tilemaps0–7共 8 个尺寸每个 256×256 瓦片瓦片图像图像库中的 8×8 像素区域引用图像库每个瓦片地图引用一个图像库对应核心常量NUM_TILEMAPS8、TILEMAP_SIZE256、TILE_SIZE8crates/pyxel-core/src/settings.rs。256×256 的瓦片地图配合 8×8 瓦片意味着单张地图最多可编排 1024×1024 像素的内容。界面布局瓦片地图画布Tilemap Canvas显示瓦片地图视图中选中区域的放大视图在此放置瓦片图像视图中选中的瓦片。绘制工具与选区快捷键与图像编辑器共用。注意所有格子默认填充瓦片 (0,0)因此建议保持图像库 (0,0) 位置为空以免地图初始状态出现意外内容。操作作用右键点击拾取光标位置的瓦片右键拖拽平移视图瓦片地图视图Tilemap View整个瓦片地图的缩略图白色边框标示当前编辑区域。操作作用方向键移动编辑区域白色边框点击/拖拽将编辑区域移动到点击位置瓦片图像视图Tile Image View显示被引用的图像库通过白色边框选择瓦片图像。操作作用Shift方向键移动选区拖拽矩形框选多个瓦片右键拖拽平移视图瓦片地图编号切换目标瓦片地图0–7。引用图像库编号Ref. Image Bank Number切换用于瓦片图像的图像库0–2。工具按钮与图像编辑器相同的七种工具选区 S / 铅笔 P / 空心矩形 R / 实心矩形 ShiftR / 空心椭圆 C / 实心椭圆 ShiftC / 油漆桶 B用于在瓦片地图上绘制。放置多个瓦片在瓦片图像视图中拖拽选中多个瓦片后绘制时选中的瓦片会作为循环图案被放置。例如纵向选中两个瓦片后用铅笔绘制两个瓦片会交替循环出现横向与纵向同时多选时同理。绘制起始位置对应所选区域的左上角。加载 TMX 文件将 Tiled Map Editor 创建的TMX 文件拖拽到瓦片地图编辑器即可在编辑区域位置加载第 0 层layer 0的内容。仓库中的示例资源 python/pyxel/examples/assets/urban_rpg.tmx 搭配 python/pyxel/examples/15_tiled_map_file.py 演示了 TMX 的典型用法。声音编辑器Sound Editor声音编辑器用于编辑旋律与音效sound是 Pyxel 复古音频系统的核心入口。规格声音Sounds0–63共 64 个音高范围C0–B4最大长度48 个音符复音数单音一个音符或休止符每个音符的设置音色Tone、音量Volume、效果Effect数值对应关系NUM_SOUNDS64crates/pyxel-core/src/settings.rs最大 48 个音符定义于编辑器常量MAX_SOUND_LENGTH48python/pyxel/editor/settings.py。界面布局声音编号Sound Number切换目标声音0–63实现为NumberPicker范围取自pyxel.NUM_SOUNDS - 1python/pyxel/editor/sound_editor.py。播放速度Playback Speed设置每个音符的播放时长对全部音符统一生效取值范围1–99。数值越小播放越快1 个速度单位 1/120 秒例如速度 60 表示每音符 0.5 秒。音效通常用 1–9旋律建议 10 及以上。该换算依据核心常量SOUND_TICKS_PER_SECOND120crates/pyxel-core/src/settings.rs速度值即音符占用的 tick 数。播放 / 停止 / 循环按钮快捷键作用播放Space播放声音停止Space播放中再次按 Space 停止循环L切换循环播放钢琴卷帘Piano Roll点击即可输入音符音高。红色方块代表音符蓝色方块代表休止符。钢琴卷帘编辑时显示蓝色光标属性区编辑时显示另一种光标。音符从左到右依次播放空位自动插入休止符点击已有位置可覆盖改写拖拽可连续输入音符并自动线性插值滑音式过渡。操作作用Up/Down在钢琴卷帘与属性区之间切换Left/Right移动光标Delete(fndelete)删除当前位置的音符Backspace(delete)删除当前位置之前的音符ShiftSpace从光标位置开始播放Ctrl(Cmd)A全选整个范围ShiftLeft/Right开始范围选择范围选择快捷键作用Ctrl(Cmd)C复制选区Ctrl(Cmd)X剪切选区复制并清空Ctrl(Cmd)V粘贴复制的区域Ctrl(Cmd)U将选区音高整体升高 1Ctrl(Cmd)D将选区音高整体降低 1八度栏Octave Bar显示键盘输入的起始八度0–3键盘从所选八度起覆盖两个八度。快捷键作用PageUp(fnUp)八度 1PageDown(fnDown)八度 -1键盘输入可使用 PC 键盘直接输入音符。上行QWE 行 数字行与下行ZXC 行 ASD 行各对应一个八度的钢琴键共覆盖两个八度白键对应自然音灰键对应升半音。用八度栏选择起始八度0–3。上行八度QWE 行 数字行音符按键CQC#2DWD#3EEFRF#5GTG#6AYA#7BU下行八度ZXC 行 ASD 行音符按键CZC#SDXD#DECFVF#GGBG#HANA#JBM休止符A快捷键作用键盘按键 → Enter将按下的键盘音符输入到钢琴卷帘1循环切换键盘输入的预览音色共 4 种属性区TON / VOL / EFX为每个音符设置音色TON、音量VOL与效果EFX。在钢琴卷帘编辑时按↓键或点击 TON 行即可进入属性区。光标移动、范围选择、复制粘贴等操作与钢琴卷帘共用。在对应行上按键即可输入该行的值例如在 TON 行按P即设置 Pulse 音色。要中途改变某个属性需从目标位置起为所有音符设置该值VOL 与 EFX 同理。音色Tone光标位于 TON 行时按以下键设置音色未设置时默认 TTriangle。按键名称说明TTriangle三角波柔和温和的音色类似长笛SSquare方波电子感清晰音色类似单簧管或风琴PPulse脉冲波明亮华丽的音色类似小号NNoise噪声无音高适合打击乐与爆炸音效四种音色对应核心常量TONE_TRIANGLE0、TONE_SQUARE1、TONE_PULSE2、TONE_NOISE3其波形采样数据定义于 crates/pyxel-core/src/settings.rs 与DEFAULT_TONE_*系列常量crates/pyxel-core/src/settings.rs三角波采用 32 点 wavetable方波与脉冲波为不同占空比的 wavetable噪声则使用长周期噪声模式。音量Volume光标位于 VOL 行时按数字键0–7设置音量0 静音7 最大默认值为 7。注意多个声道同时使用最大音量可能导致整体响度过大。核心侧MAX_VOLUME7与默认声道增益DEFAULT_CHANNEL_GAIN0.125见 crates/pyxel-core/src/settings.rs。效果Effect光标位于 EFX 行时按以下键设置效果默认值为 NNone。按键名称说明NNone无效果SSlide从前一音符平滑滑音到本音符VVibrato周期性振荡音高核心实现为 6Hz 周期、±25 音分深度见VIBRATO_PERIOD_TICKS与VIBRATO_DEPTH_CENTScrates/pyxel-core/src/settings.rsFFadeOut整个音符期间音量渐减也用于区分同音高的连续音符HHalf-FadeOut音符后半段音量渐减比 F 更长的延音QQuarter-FadeOut音符最后四分之一音量渐减比 H 更长的延音六种效果对应核心常量EFFECT_NONE0至EFFECT_QUARTER_FADEOUT5见 crates/pyxel-core/src/settings.rs。音乐编辑器Music Editor音乐编辑器用于按播放顺序排列声音编曲成音乐轨道。规格音乐轨道Music Tracks0–7共 8 个声道Channels4每声道最大声音数32对应核心常量NUM_MUSICS8、NUM_CHANNELS4crates/pyxel-core/src/settings.rs每声道最大 32 个声音槽由编辑器常量MAX_MUSIC_LENGTH32定义python/pyxel/editor/settings.py。界面布局音乐编号Music Number切换目标音乐轨道0–7。播放 / 停止 / 循环按钮快捷键作用播放Space播放音乐停止Space播放中再次按 Space 停止循环L切换循环播放序列编辑器CH0–CH3在四个声道CH0–CH3中按播放顺序放置声音编号支持跨声道复制粘贴。源码中四个声道由四个MusicField实例并排构成python/pyxel/editor/music_editor.py其底层数据为每个音乐轨道内的seqs序列列表。快捷键作用Up/Down切换编辑声道Left/Right移动编辑光标Delete(fndelete)删除当前位置的声音Backspace(delete)删除当前位置之前的声音ShiftSpace从光标位置开始播放Ctrl(Cmd)A全选当前声道的整个范围Shift方向键在声道内选择范围Ctrl(Cmd)C复制选区Ctrl(Cmd)X剪切选区复制并清空Ctrl(Cmd)V粘贴选区也支持跨声道Ctrl(Cmd)U选区声音编号整体 1Ctrl(Cmd)D选区声音编号整体 -1声音按钮0–63用于插入声音编号0–63的按钮。点击按钮即把该声音编号插入到编辑光标位置。已创建的声音显示为蓝色未创建的显示为灰色鼠标悬停在按钮上可预览该声音。测试与验证仓库为编辑器提供了自动化测试保障 python/tests/test_editor.py 通过参数化用例逐帧截屏对比compare_screenshots验证图像、瓦片地图、声音、音乐各编辑器的渲染结果参考图存放于 python/tests/references/editor如editor_image_f1.png、editor_sound_fedit.png等同时覆盖了按钮初始范围、数值钳制与自定义调色板映射等边界行为。这意味着本文介绍的全部快捷键与绘制行为均有可回归验证的实现支撑。从编辑到运行完整工作流综合全文一个典型的 Pyxel 资源制作与使用流程为运行pyxel edit my_resource.pyxres打开编辑器省略文件名则创建my_resource.pyxres在图像编辑器中绘制精灵与瓦片素材16 色、256×256、3 个图像库在瓦片地图编辑器中编排 8 个瓦片地图每图 256×256 瓦片、引用一个图像库在声音编辑器中创作最多 64 个声音48 音符上限、T/S/P/N 四种音色、六种效果在音乐编辑器中用 4 个声道编排最多 8 首音乐每声道 32 个声音槽按 Ctrl(Cmd)S 保存或在运行期间拖入新.pyxres切换资源在应用代码中调用pyxel.load(my_resource.pyxres)加载通过pyxel.images、pyxel.tilemaps、pyxel.sounds、pyxel.musics系列 API 在游戏中使用。通过掌握上述规格与快捷键你可以在不编写任何资源生成代码的情况下纯可视化地完成 Pyxel 游戏所需的全部美术与音频资产。赞分享游戏开发【免费下载链接】pyxelA retro game engine for Python项目地址https://gitcode.com/GitHub_Trending/py/pyxel点击查看免费下载相关推荐OpenSCAD 编辑器代码模板Editor Templates完全指南原理、内置模板与自定义方法OpenSCAD 编辑器代码模板Editor Templates完全指南原理、内置模板与自定义方法 导读 OpenSCAD 是一款面向程序员的参数化 3D图形学3D建模桌面应用ModelScope NLP 训练器模块深度解析四大 Trainer 的实现原理与实战配置指南ModelScope NLP 训练器模块深度解析四大 Trainer 的实现原理与实战配置指南 ModelScopeModel as a Service在人工智能大模型微调模型评测预训练Automatisch Google Tasks 动作详解四个内置任务操作的使用与实现原理Automatisch Google Tasks 动作详解四个内置任务操作的使用与实现原理 本文围绕 Automatisch 开源自动化平台内置的 Googl工作流自动化后端前端低代码任务调度上一篇抖音TikTok数据采集终极指南5分钟掌握DouK-Downloader批量下载技巧下一篇Potatis未来路线图终极NES模拟器的全新功能与跨平台扩展计划创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表