mirror of
https://github.com/unanmed/HumanBreak.git
synced 2026-11-05 19:44:32 +08:00
feat: 楼层滤镜
This commit is contained in:
1 parent
929ca6f18d
commit
63765ab626
10 files changed
+74
-45
No files matched your search
@@ -5,6 +5,7 @@ import { HeroRenderer } from './preset/hero';
|
||||
import { LayerGroup, FloorLayer } from './preset/layer';
|
||||
import { MotaRenderer } from './render';
|
||||
import { LayerShadowExtends } from '../fx/shadow';
|
||||
import { LayerGroupFilter } from '@/plugin/fx/gameCanvas';
|
||||
|
||||
let main: MotaRenderer;
|
||||
|
||||
@@ -29,8 +30,10 @@ Mota.require('var', 'loading').once('loaded', () => {
|
||||
const detail = new FloorItemDetail();
|
||||
const door = new LayerDoorAnimate();
|
||||
const shadow = new LayerShadowExtends();
|
||||
const filter = new LayerGroupFilter();
|
||||
layer.extends(damage);
|
||||
layer.extends(detail);
|
||||
layer.extends(filter);
|
||||
layer.getLayer('event')?.extends(hero);
|
||||
layer.getLayer('event')?.extends(door);
|
||||
layer.getLayer('event')?.extends(shadow);
|
||||
|
||||
@@ -228,8 +228,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
|
||||
const ay = -this.anchorY * this.height;
|
||||
|
||||
canvas.ctx.save();
|
||||
canvas.ctx.filter = this.filter;
|
||||
canvas.setAntiAliasing(this.antiAliasing);
|
||||
if (this.enableCache) canvas.ctx.filter = this.filter;
|
||||
if (this.type === 'static') transformCanvas(canvas, tran);
|
||||
if (this.enableCache) {
|
||||
const { width, height, ctx } = this.cache;
|
||||
@@ -264,7 +264,7 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
|
||||
* 设置本元素的滤镜
|
||||
* @param filter 滤镜
|
||||
*/
|
||||
seyFilter(filter: string) {
|
||||
setFilter(filter: string) {
|
||||
this.filter = filter;
|
||||
this.update(this);
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ hook.on('changingFloor', floor => {
|
||||
// 考虑到楼层转换一般不会同时执行很多次,因此这里改为立刻更新
|
||||
LayerGroupFloorBinder.activedBinder.forEach(v => {
|
||||
if (v.bindThisFloor) v.updateBindData();
|
||||
v.emit('floorChange', floor);
|
||||
});
|
||||
LayerFloorBinder.listenedBinder.forEach(v => {
|
||||
if (v.bindThisFloor) v.updateBindData();
|
||||
|
||||
@@ -102,7 +102,7 @@ export class LayerGroup extends Container implements IAnimateFrame {
|
||||
private extend: Map<string, ILayerGroupRenderExtends> = new Map();
|
||||
|
||||
constructor() {
|
||||
super('static', false);
|
||||
super('static');
|
||||
|
||||
this.setHD(true);
|
||||
this.setAntiAliasing(false);
|
||||
|
||||
Reference in new issue
Block a user