fix: 追逐战

This commit is contained in:
unanmed 2024-11-19 23:21:37 +08:00
parent 3eab0b6cc5
commit 6e3effd2c5
2 changed files with 21 additions and 9 deletions

View File

@ -1,5 +1,8 @@
import { Shader, ShaderProgram } from '@/core/render/shader'; import { Shader, ShaderProgram } from '@/core/render/shader';
import { IWeather, WeatherController } from './weather'; import { IWeather, WeatherController } from './weather';
import { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d';
import { GL2Program } from '@/core/render/gl2';
import { Transform } from '@/core/render/transform';
export class SunWeather implements IWeather { export class SunWeather implements IWeather {
static id: string = 'sun'; static id: string = 'sun';
@ -14,5 +17,19 @@ export class SunWeather implements IWeather {
WeatherController.register(SunWeather); WeatherController.register(SunWeather);
class SunShader extends Shader { class SunShader extends Shader {
protected override postDraw(gl: WebGL2RenderingContext): void {} protected preDraw(
canvas: MotaOffscreenCanvas2D,
transform: Transform,
gl: WebGL2RenderingContext,
program: GL2Program
): boolean {
return true;
}
protected postDraw(
canvas: MotaOffscreenCanvas2D,
transform: Transform,
gl: WebGL2RenderingContext,
program: GL2Program
): void {}
} }

View File

@ -1,5 +1,6 @@
import { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d'; import { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d';
import { CameraAnimation } from '@/core/render/camera'; import { CameraAnimation } from '@/core/render/camera';
import { Container } from '@/core/render/container';
import { LayerGroup } from '@/core/render/preset/layer'; import { LayerGroup } from '@/core/render/preset/layer';
import { MotaRenderer } from '@/core/render/render'; import { MotaRenderer } from '@/core/render/render';
import { Shader } from '@/core/render/shader'; import { Shader } from '@/core/render/shader';
@ -319,10 +320,8 @@ export class Chase extends EventEmitter<ChaseEvent> {
} }
this.onTimeListener.sort((a, b) => a.time - b.time); this.onTimeListener.sort((a, b) => a.time - b.time);
const render = MotaRenderer.get('render-main')!; const render = MotaRenderer.get('render-main')!;
const mapDraw = render.getElementById('map-draw')!; const mapDraw = render.getElementById('map-draw') as Container;
render.appendChild(Chase.shader); Chase.shader.append(mapDraw);
mapDraw.remove();
mapDraw.append(Chase.shader);
this.emit('start'); this.emit('start');
} }
@ -335,11 +334,7 @@ export class Chase extends EventEmitter<ChaseEvent> {
this.layer.removeTicker(this.delegation); this.layer.removeTicker(this.delegation);
this.pathSprite?.destroy(); this.pathSprite?.destroy();
this.heroMove.off('stepEnd', this.onStepEnd); this.heroMove.off('stepEnd', this.onStepEnd);
const render = MotaRenderer.get('render-main')!;
const mapDraw = render.getElementById('map-draw')!;
mapDraw.remove();
Chase.shader.remove(); Chase.shader.remove();
mapDraw.append(render);
this.emit('end', success); this.emit('end', success);
this.removeAllListeners(); this.removeAllListeners();
} }