Giter Site home page Giter Site logo

Comments (5)

eXponenta avatar eXponenta commented on May 14, 2024 1

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.

aduros avatar aduros commented on May 14, 2024

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.

JerwuQu avatar JerwuQu commented on May 14, 2024

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);
}

image

from wasm4.

aduros avatar aduros commented on May 14, 2024

Please do @JerwuQu! A fix would be much appreciated πŸ˜ƒ

from wasm4.

JerwuQu avatar JerwuQu commented on May 14, 2024

Fixed in #319

from wasm4.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.