Comments (5)
Are you sure that bug still is reproduced?
Can i help with it, becuse it a will be required for my game.
My game use a atlass for movement animation, and flips can be used for avoid doubling right-left movements.
from wasm4.
Yeah, it's still an issue. Here's a repro case:
import * as w4 from "./wasm4";
const skullWidth = 8;
const skullHeight = 16;
const skullFlags = 1; // BLIT_2BPP
const skull = memory.data<u8>([ 0xaa,0x80,0xa8,0x3f,0xa3,0xff,0xa3,0xff,0x8f,0xff,0x8f,0xff,0x3c,0x03,0x30,0x53,0x30,0x53,0x30,0x03,0x8c,0x0f,0xa3,0xfc,0xa8,0xfc,0xa8,0xff,0xa8,0xf3,0xaa,0x08 ]);
let x = -16;
let frame = 0;
store<u16>(w4.DRAW_COLORS, 0x2014);
export function update (): void {
let x = i32(16*Math.sin(0.01*frame)+144);
// Draw skull left half
w4.blit(skull, x, 64, skullWidth, skullHeight, skullFlags);
// BUG: Draw flipped skull right half
w4.blit(skull, x+skullWidth, 64, skullWidth, skullHeight, skullFlags | w4.BLIT_FLIP_X);
++frame;
}
You can see that as the flipped right half of the sprite is partially off screen, it's not drawn correctly. It also happens when using BLIT_ROTATE
.
If you want to take a stab at this, the fix is probably in the sx/sy calculation in framebuffer.js.
from wasm4.
This is still an issue in 2.2.0. Might give a shot at fixing it later tonight unless it's already in progress...?
#include "wasm4.h"
const uint8_t smiley[] = {
0b11000011,
0b10000001,
0b00100100,
0b00100100,
0b00000000,
0b00100100,
0b10011001,
0b11000011,
};
void update () {
*DRAW_COLORS = 2;
blit(smiley, 0, 145, 8, 8, BLIT_1BPP);
blit(smiley, 20, 150, 8, 8, BLIT_1BPP);
blit(smiley, 40, 155, 8, 8, BLIT_1BPP);
blit(smiley, 60, 160, 8, 8, BLIT_1BPP);
blit(smiley, 80, 145, 8, 8, BLIT_1BPP | BLIT_FLIP_Y);
blit(smiley, 100, 150, 8, 8, BLIT_1BPP | BLIT_FLIP_Y);
blit(smiley, 120, 155, 8, 8, BLIT_1BPP | BLIT_FLIP_Y);
blit(smiley, 140, 160, 8, 8, BLIT_1BPP | BLIT_FLIP_Y);
}
from wasm4.
Please do @JerwuQu! A fix would be much appreciated π
from wasm4.
Fixed in #319
from wasm4.
Related Issues (20)
- The online multiplayer system has stalls and halts
- Expose A Portable Web Runtime? HOT 1
- Zig v0.11 breaks w4's build file
- Run-native under Linux: lots of buttons donβt work, and some undocumented ones do HOT 1
- Document embedding carts using a wasm4.org iframe
- Suggestion: display runtime version number on menu HOT 1
- WASM globals are not managed by the netplay synchronization engine HOT 1
- Move games elsewhere
- [Web build] Mouse can be detected outside the screen HOT 3
- Use Go 1.21 WASI GOOS in examples HOT 2
- Start function is not called when DEV_NETPLAY flag is set.
- update zig template HOT 5
- wasm4 project runs on native mode, but doesnt run on browser HOT 1
- Inconsistent Audio Output HOT 2
- WasmGC support? HOT 1
- Correct FPS not being passed to devtools
- Zig template doesn't build HOT 3
- Make `w4 watch` less resource-hungry
- Cut new release? HOT 1
- shadow dom?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasm4.