mirror of
https://github.com/unanmed/HumanBreak.git
synced 2026-11-01 07:24:30 +08:00
fix: 装备录像问题 & 移动录像问题
This commit is contained in:
1 parent
8f894ad1e0
commit
0b0d9d2cf5
7 files changed
+56
-39
No files matched your search
@@ -58,6 +58,7 @@ export class HeroKeyMover {
|
||||
|
||||
private onPressKey = (code: KeyCode) => {
|
||||
if (core.isReplaying()) return;
|
||||
core.waitHeroToStop();
|
||||
if (code === this.hotkeyData.left.key) this.press('left');
|
||||
else if (code === this.hotkeyData.right.key) this.press('right');
|
||||
else if (code === this.hotkeyData.up.key) this.press('up');
|
||||
|
||||
@@ -255,7 +255,9 @@ export class HeroRenderer
|
||||
move(dir: Dir2): Promise<void> {
|
||||
if (!this.moving) {
|
||||
logger.error(12);
|
||||
return Promise.reject();
|
||||
return Promise.reject(
|
||||
'Cannot moving hero while hero not in moving!'
|
||||
);
|
||||
}
|
||||
|
||||
this.moveDir = dir;
|
||||
@@ -276,7 +278,7 @@ export class HeroRenderer
|
||||
* 结束勇士的移动过程
|
||||
*/
|
||||
endMove(): Promise<void> {
|
||||
if (!this.moving) return Promise.reject();
|
||||
if (!this.moving) return Promise.resolve();
|
||||
if (this.moveEnding) return this.moveEnding;
|
||||
else {
|
||||
const promise = new Promise<void>(resolve => {
|
||||
@@ -347,8 +349,8 @@ export class HeroRenderer
|
||||
* 因为此举会导致层级的重新排序,降低渲染性能。
|
||||
*/
|
||||
moveAs(x: number, y: number, time: number, fn: TimingFn<3>): Promise<void> {
|
||||
if (!this.moving) return Promise.reject();
|
||||
if (!this.renderable) return Promise.reject();
|
||||
if (!this.moving) return Promise.resolve();
|
||||
if (!this.renderable) return Promise.resolve();
|
||||
let nowZIndex = fn(0)[2];
|
||||
let startTime = Date.now();
|
||||
return new Promise(res => {
|
||||
|
||||
@@ -486,12 +486,10 @@ export class HeroMover extends ObjectMoverBase {
|
||||
const adapter = HeroMover.adapter;
|
||||
const viewport = HeroMover.viewport;
|
||||
if (!adapter || !viewport) return;
|
||||
// if (!core.isReplaying()) {
|
||||
if (!core.isReplaying() || core.status.replay.speed <= 3) {
|
||||
adapter.sync('startAnimate');
|
||||
await adapter.all('readyMove');
|
||||
}
|
||||
// }
|
||||
// 这里要检查前面那一格能不能走,不能走则不触发平滑视角,以避免撞墙上视角卡住
|
||||
if (!this.ignoreTerrain) {
|
||||
const { x, y } = core.status.hero.loc;
|
||||
@@ -515,12 +513,8 @@ export class HeroMover extends ObjectMoverBase {
|
||||
const adapter = HeroMover.adapter;
|
||||
const viewport = HeroMover.viewport;
|
||||
if (!adapter || !viewport) return;
|
||||
// if (!core.isReplaying()) {
|
||||
if (!core.isReplaying() || core.status.replay.speed <= 3) {
|
||||
await adapter.all('endMove');
|
||||
adapter.sync('endAnimate');
|
||||
}
|
||||
// }
|
||||
adapter.sync('endAnimate');
|
||||
await adapter.all('endMove');
|
||||
viewport.sync('endMove');
|
||||
core.clearContinueAutomaticRoute();
|
||||
core.stopAutomaticRoute();
|
||||
@@ -623,6 +617,7 @@ export class HeroMover extends ObjectMoverBase {
|
||||
if (x === 0) core.trigger(floor.width - 1, y);
|
||||
else core.trigger(0, y);
|
||||
}
|
||||
core.checkRouteFolding();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -693,9 +688,13 @@ export class HeroMover extends ObjectMoverBase {
|
||||
viewport.all('moveTo', x, y, speed * 1.6);
|
||||
adapter.sync('setAnimateDir', showDir);
|
||||
if (core.isReplaying() && core.status.replay.speed > 3) {
|
||||
adapter.sync('endAnimate');
|
||||
await sleep(speed);
|
||||
await adapter.all('setHeroLoc', x, y);
|
||||
} else {
|
||||
if (core.isReplaying()) {
|
||||
adapter.sync('startAnimate');
|
||||
}
|
||||
await adapter.all('move', moveDir);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ export function init() {
|
||||
core.control.controldata.updateStatusBar();
|
||||
if (!core.control.noAutoEvents) core.checkAutoEvents();
|
||||
core.control._updateStatusBar_setToolboxIcon();
|
||||
core.clearRouteFolding();
|
||||
core.control.noAutoEvents = true;
|
||||
// 更新vue状态栏
|
||||
updateVueStatusBar();
|
||||
|
||||
Vendored
+1
@@ -232,6 +232,7 @@ type BgmIds =
|
||||
|
||||
type FontIds =
|
||||
| 'normal'
|
||||
| 'FiraCode'
|
||||
|
||||
interface NameMap {
|
||||
'确定': 'confirm.mp3';
|
||||
|
||||
Reference in new issue
Block a user