Skip to content

Commit

Permalink
加一层阴影提升质感
Browse files Browse the repository at this point in the history
  • Loading branch information
qiuxiang committed Oct 23, 2023
1 parent 711b4a1 commit 4c16878
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/area-picker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export function AreaPicker() {
return null;
}

const iconClassName = "w-8 h-8 md:w-10 md:h-10 text-white";
const iconClassName = "w-8 h-8 text-white";
return (
<>
<div
Expand Down
2 changes: 2 additions & 0 deletions src/genshin-map/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { ActiveMarkerLayer } from "./active-marker-layer";
import { AreaItemLayer } from "./area-item-layer";
import { AreaNamesLayer } from "./area-names-layer";
import { Settings } from "./settings";
import { ShadowLayer } from "./shadow-layer";
import { onTilemapClick, onTilemapMove, onTilemapReady } from "./state";
import { TeleportLayer } from "./teleport-layer";
import { UndergroundLayer } from "./underground-layer";
Expand Down Expand Up @@ -46,6 +47,7 @@ export function GenshinMap() {
<UndergroundLayer />
<TeleportLayer />
<AreaNamesLayer />
<ShadowLayer />
</CanvaskitMap>
);
}
37 changes: 37 additions & 0 deletions src/genshin-map/shadow-layer.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Layer } from "@canvaskit-map/core";
import { CustomLayer } from "@canvaskit-map/react";
import { Canvas, Paint } from "canvaskit-wasm";
import { zIndex } from ".";

class _ShadowLayer extends Layer {
_paint?: Paint;

constructor() {
super({ zIndex: zIndex.underground });
}

async init() {
this._paint = new this.canvaskit!.Paint();
this._paint!.setShader(
this.canvaskit!.Shader.MakeRadialGradient(
[this.map!.size[0] / 2, this.map!.size[1] / 2],
Math.max(...this.map!.size),
[this.canvaskit!.TRANSPARENT, this.canvaskit!.BLACK],
[0.1, 1],
this.canvaskit!.TileMode.Clamp
)
);
}

draw(canvas: Canvas) {
canvas.save();
canvas.concat(this.canvaskit!.Matrix.invert(canvas.getTotalMatrix())!);
canvas.scale(devicePixelRatio, devicePixelRatio);
canvas.drawPaint(this._paint!);
canvas.restore();
}
}

export function ShadowLayer() {
return <CustomLayer createLayer={() => new _ShadowLayer()} />;
}

0 comments on commit 4c16878

Please sign in to comment.