mirror of
https://github.com/motajs/template.git
synced 2026-04-14 16:41:12 +08:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { MotaOffscreenCanvas2D } from '@motajs/render-core';
|
|
import { CloudLike } from './cloudLike';
|
|
import { SizedCanvasImageSource } from '@motajs/render-assets';
|
|
|
|
export class FogWeather extends CloudLike {
|
|
/** 雾天气的图像比较小,因此将四个进行合并 */
|
|
private static mergedFog: MotaOffscreenCanvas2D | null = null;
|
|
|
|
getImage(): SizedCanvasImageSource | null {
|
|
if (FogWeather.mergedFog) {
|
|
return FogWeather.mergedFog.canvas;
|
|
} else {
|
|
return FogWeather.mergeFog();
|
|
}
|
|
}
|
|
|
|
onDestroy(): void {}
|
|
|
|
/**
|
|
* 将雾天气的图片 2x2 合并
|
|
*/
|
|
static mergeFog() {
|
|
const image = core.material.images.images['fog.png'];
|
|
if (!image) return null;
|
|
const { width, height } = image;
|
|
this.mergedFog = new MotaOffscreenCanvas2D();
|
|
this.mergedFog.size(width * 2, height * 2);
|
|
const ctx = this.mergedFog.ctx;
|
|
ctx.drawImage(image, 0, 0, width, width);
|
|
ctx.drawImage(image, width, 0, width, width);
|
|
ctx.drawImage(image, 0, height, width, width);
|
|
ctx.drawImage(image, width, height, width, width);
|
|
return this.mergedFog.canvas;
|
|
}
|
|
}
|