Fix fog of war (#4031)

This PR fixes the fog of war example.

### Change Type


<!--  Please select a 'Type' label ️ -->

- [ ] `feature` — New feature
- [ ] `improvement` — Product improvement
- [ ] `api` — API change
- [x] `bugfix` — Bug fix
- [ ] `other` — Changes that don't affect SDK users, e.g. internal or
.com changes

---------

Co-authored-by: huppy-bot[bot] <128400622+huppy-bot[bot]@users.noreply.github.com>
This commit is contained in:
Steve Ruiz 2024-06-28 10:04:47 +01:00 committed by GitHub
parent ca5e268798
commit 964dd82f93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 7 additions and 7 deletions

View file

@ -44,7 +44,6 @@ export async function GET(req: NextRequest) {
[query, query] [query, query]
) )
await searchForArticle.all().then(async (queryResults) => { await searchForArticle.all().then(async (queryResults) => {
for (const article of queryResults) { for (const article of queryResults) {
const section = await db.getSection(article.sectionId) const section = await db.getSection(article.sectionId)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -38,20 +38,23 @@ export function Fog() {
for (const shape of shapes) { for (const shape of shapes) {
const point = editor.getShapePageBounds(shape)!.point const point = editor.getShapePageBounds(shape)!.point
const geometry = editor.getShapeGeometry(shape) const geometry = editor.getShapeGeometry(shape)
const adjustedPoint = Vec.Sub(point, geometry.bounds.point)
for (let i = 0; i < boxes.length; i++) { for (let i = 0; i < boxes.length; i++) {
for (let j = 0; j < boxes[i].length; j++) { for (let j = 0; j < boxes[i].length; j++) {
const box = boxes[i][j] const box = boxes[i][j]
box.translate(Vec.Neg(point)) box.translate(Vec.Neg(adjustedPoint))
if (geometry.bounds.collides(box)) { if (geometry.bounds.collides(box)) {
cells[i][j] = true cells[i][j] = true
} }
box.translate(point) box.translate(adjustedPoint)
} }
} }
} }
const cvs = rCanvas.current! const cvs = rCanvas.current!
const ctx = cvs.getContext('2d')! const ctx = cvs.getContext('2d')!
cvs.style.filter = `blur(${editor.getCamera().z * 15}px)`
ctx.resetTransform() ctx.resetTransform()
const camera = editor.getCamera() const camera = editor.getCamera()
@ -67,7 +70,6 @@ export function Fog() {
for (let j = 0; j < boxes[i].length; j++) { for (let j = 0; j < boxes[i].length; j++) {
if (!cells[i][j]) continue if (!cells[i][j]) continue
const box = boxes[i][j] const box = boxes[i][j]
ctx.filter = 'drop-shadow(100px)'
ctx.clearRect(box.x, box.y, box.width, box.height) ctx.clearRect(box.x, box.y, box.width, box.height)
} }
} }
@ -79,7 +81,6 @@ export function Fog() {
<canvas <canvas
ref={rCanvas} ref={rCanvas}
style={{ style={{
zIndex: 999999,
position: 'absolute', position: 'absolute',
top: -100, top: -100,
left: -100, left: -100,

View file

@ -1,7 +1,7 @@
--- ---
title: Fog of war title: Fog of war
component: ./FogOfWarExample.tsx component: ./FogOfWarExample.tsx
category: basic category: use-cases
keywords: [ui, fog, overlay] keywords: [ui, fog, overlay]
--- ---

View file

@ -38,7 +38,7 @@ const solidSettings = (strokeWidth: number): StrokeOptions => {
return { return {
size: strokeWidth, size: strokeWidth,
thinning: 0, thinning: 0,
streamline: modulate(strokeWidth, [9, 16], [0.68, 0.74], true), // 0.62 + ((1 + strokeWidth) / 8) * 0.06, streamline: modulate(strokeWidth, [9, 16], [0.64, 0.74], true), // 0.62 + ((1 + strokeWidth) / 8) * 0.06,
smoothing: 0.62, smoothing: 0.62,
simulatePressure: false, simulatePressure: false,
easing: EASINGS.linear, easing: EASINGS.linear,