PPT 移动属性
该页面原文来自 Hard Drop Wiki,原页面链接:Puyo Puyo Tetris movement intricacies。 |
这篇文章需要改进。你可以帮助俄罗斯方块中文维基进行编辑。 |
- 主条目:噗哟噗哟俄罗斯方块
帧内处理顺序
噗哟噗哟俄罗斯方块中,一帧以内的操作按以下顺序处理:
- DAS
- 暂存
- 旋转
- 移动(只测试是否可行,不执行移动操作)
- 重力(包括软降)
- 硬降
- 移动与 ARR(执行移动操作)
由于代码错误,玩家无法在同一帧进行水平移动和硬降的操作。处理水平移动操作时,游戏不会立刻给方块赋予最新的水平位置,而是将这一位置存于他处,以便之后使用。然而,这一处理顺序受硬降操作的影响。由于新的水平位置还未写入方块属性中,游戏会采用旧的水平位置进行硬降。
正因如此,玩家理论上可复现“方块相撞”的错误。此时游戏会按如下方式检测:
- 检测方块是否可水平移动。
- 如果是,将新的水平位置写入内存,而非写入方块属性。
- 检测是否耗尽 15 次锁延重置
- 如果是,根据旧的水平位置检测方块是否可下移一格。
- 如果可移动,在方块数据内写入新的方块垂直位置。
- 将内存中的旧方块水平位置写入方块数据。由于垂直位置已更改,会出现方块碰撞的错误。
本质上,水平与垂直位置更改的不同步导致了这一错误。即使水平与垂直位置各自的判定均为有效,但它们合并时却不尽然。
使用内存修改工具 Cheat Engine,玩家可修改一帧中的操作。由此可得出游戏对按键冲突的判定:
- 同时按向左和向右 - 不移动
- 同时按向左和硬降 - 硬降,不移动
- 同时按旋转和硬降 - 旋转,然后硬降
- 同时按左转与右转 - 不旋转
- 同时按旋转与移动 - 先旋转,再移动
- 在向右 DAS 充能时按住向左 - 方块左移,打断向右的 DAS。
- 在向左 DAS 充能时按住向右 - 方块右移,打断向左的 DAS。
进入延迟与消行延迟
玩家可在进入延迟中为 DAS 充能,除此之外,不可进行其他预操作(包括硬降、暂存、横移与旋转)。
然而,若在进入延迟的最后三帧尝试按下硬降、暂存、横移与旋转,方块会在其可被操作的第一帧执行这些操作。
在进入延迟的最后一帧中,场地会投射方块的阴影。
这类操作判定不会提升玩家的操作速度,因此玩家不将其称为预操作。
双向 DAS 充能
游戏为左右两个方向分别设置了 DAS 充能,玩家可同时充能两个方向的 DAS。
例:
- 利用 DAS 将第一块移动到右边的墙,降落。
- 按住左键,但不松开右键。
- 利用 DAS 将第二块移动到左边的墙,降落。此时左右两侧的 DAS 均已充能。
- 松开左键,方块在向右 DAS 的作用下,会更快到达右侧的墙。
混合操作
噗哟噗哟俄罗斯方块基于玩家多样的按键布局预设。大多数预设中,一些动作可通过不同的按键或输入实现。例如,玩家可利用十字键或摇杆操纵方块。
游戏内部使用“虚拟输入”处理这些多对一的按键对应关系。对于一次操作,若在按下其对应的一个按键的同时按下另一个按键,游戏会将其视为同一次操作,而不是将其拆分为两次操作。例如,同时按下两个同向的移动/旋转键不会让方块移动/旋转两次。因此,玩家无法利用不同的按键完成快速的180度旋转。此外,同时按下一个操作的两个按键,并首先松开其中的一个,不会产生特殊的效果。游戏会认为玩家仍在进行对应的操作。[1]
这意味着,玩家无法通过输入层面进行特殊的操作。