Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Single header C library for parsing/using exported data and playing animations

Aperta
#84 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
15/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
c

Direzione di ricerca

The payload names no source files or tests. The exported JSON shape is in the issue body: sprites entries with origin and source, and animations with frames holding sprite_index and ms. Start by agreeing with the maintainer on a better name for origin, since the first checkbox is a naming decision. The C library is an open design question with no scope, so a newcomer should not start it without a maintainer decision. Done means an agreed field name and a settled library scope.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

@ZackeryRSmith

Reasoning

This is an extension of a note that parsing the atlas requires a lot of manual labor. The goal of the project was to export a simple json file that included all the data needed to align the sprites back to a grid using the offset and source for each sprite, and then animations being just lists that include timings for each sprite index.

{
    "sprites": [
        {
            "origin": [
                0,
                22
            ],
            "source": [
                0,
                0,
                22,
                22
            ]
        },

...

"animations": [
        {
            "name": "pencil_default",
            "frames": [
                {
                    "sprite_index": 0,
                    "ms": 1000
                }
            ]
        },
...

this describes the pencil used in Pixi as a cursor. It is the first sprite in the atlas, and the origin is set to the pencil tip such that it is drawn at the mouse position offset from the top left.

However, It seems to really trip people up that this origin value includes the origin of the sprite set through Pixi. We currently do not have UI to set the sprite origin, so every sprite currently defaults to an origin at the top left corner.

This means the exported atlas data includes the distance the sprite shrunk when it was packed, such that each sprite can be back aligned to stack with other sprites of the same origin.

When Pixi allows users to set a per-sprite origin, this will allow the artist to specify the origin point at design-time and the programmer no longer has to choose and set an origin, or manage setting these origins per sprite later on when drawing them in-game. The idea would be that the final sprite rendering code just offsets the sprite position by the origin value and the sprites would be drawn correctly. i.e. origin at characters feet rather than the top left of the sprite.

Proposed changes

I don't really believe theres much of an issue with the data we are exporting. But I want to make using that data easier.

  • Potentially just find a better name for origin such that it better describes that the value includes the offset to realign the sprite at the origin the user specifies.

  • Eventually write a small portable single-header C library that can be consumed in other languages that can help users interpret the data Pixi exports. I think this would be a great bridge to allow other frameworks and engines to very simply import and use Pixi data

Lingua principale
Zig
Stelle
1.5k
Fork
40
Merge medio
5h 35m
PR unite (30g)
151

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di fizzyedit/fizzy

Tutte le issue di fizzyedit/fizzy

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.