[4.0.0-rc.6] Spine position incorrect inside a container with .setFiltersForceComposite(true)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- computer-graphics, game-dev
Direzione di ricerca
Inizia eseguendo la riproduzione HTML fornita con Phaser 4.0.0-rc.6 e il plugin Spine, quindi confronta il rendering con e senza setFiltersForceComposite(true) e con allContainer in posizioni diverse. Traccia i percorsi di compositing dei filtri dei container e di rendering di Spine; il lavoro è completato quando l’oggetto Spine mantiene la posizione corretta in entrambi i casi di container annidati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version
- Phaser Version: 4.0.0-rc.6
Description
If a spine game object is placed inside a container with .setFiltersForceComposite(true), it's position will be rendered wrong
Example Test Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/phaser.js"></script>
<script src="https://unpkg.com/@esotericsoftware/[email protected].*/dist/iife/spine-phaser-v4.min.js"></script>
<title>Spine Phaser Example</title>
</head>
<body>
</body>
<script>
class BasicExample extends Phaser.Scene {
preload() {
this.load.spineBinary("spineboy-data", "https://esotericsoftware.com/files/examples/4.2/spineboy/export/spineboy-pro.skel");
this.load.spineAtlas("spineboy-atlas", "https://esotericsoftware.com/files/examples/4.2/spineboy/export/spineboy-pma.atlas");
}
create() {
const allContainer = this.add.container(100, 100);
const container = new Phaser.GameObjects.Container(this);
allContainer.add(container);
const container2 = new Phaser.GameObjects.Container(this)
.enableFilters()
.setFiltersForceComposite(true);
allContainer.add(container2);
const spineContainer = new Phaser.GameObjects.Container(this, 300, 400).setScale(0.5);
spineContainer.add(new Phaser.GameObjects.Rectangle(this, 0, -300, 500, 500, 0xFF0000, 0.5));
const spine = this.add.spine(0, 0, `spineboy-data`, `spineboy-atlas`);
spineContainer.add(spine);
container.add(spineContainer);
this.time.delayedCall(2000, () => {
container2.add(spineContainer);
});
}
}
new Phaser.Game({
type: Phaser.WEBGL,
width: 800,
height: 600,
scene: [BasicExample],
plugins: {
scene: [
{
key: "spine.SpinePlugin",
plugin: spine.SpinePlugin,
mapping: "spine",
},
],
},
});
</script>
</html>
In the code above, if .setFiltersForceComposite(true) is not called on container2, or if allContainer is at position (0,0) then the spine will be rendered correctly
- Lingua principale
- JavaScript
- Stelle
- 40.3k
- Fork
- 7.2k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di phaserjs/phaser
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Tutte le issue di phaserjs/phaser
Issue simili
-
Design only Leadership Survey SLFS
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
bcgov/digital-journeys#2293 ·
-
Toolkit
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
API Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ProjectSidewalk/SidewalkWebpage#5556 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
jessepollak/home#1454 ·
I maintainer di solito rispondono entro 1 giorno
-
Mend: dependency security vulnerability untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
opensearch-project/OpenSearch-Dashboards#12822 ·
I maintainer di solito rispondono entro 1 giorno