Closed
Description
Version
- Phaser Version: v3.55.2
- Operating system: Linux
- Browser: Google Chrome
Description
I try to load multiple textures with this.load.pack()
. JSON file contains a section of spritesheets and one of them has a normal map included.
When I load the game browser shows the error: Texture key already in use: m4a1
. I'm sure my JSON file doesn't contain the same key twice. Then I move a normalMap definition to the next image - the error now is: Texture key already in use: gun2
.
This means generating sprites with normal map uses the same key twice somewhere.
📝 | The example below is very basic, so the error happens once per 30-50 page refreshes, not every single time. In my bigger project this happens much more often |
---|
Detailed browser error:
Texture key already in use: m4a1
checkKey @ phaser-arcade-physics-3.55.2.js:96888
addImage @ phaser-arcade-physics-3.55.2.js:97083
addToCache @ phaser-arcade-physics-3.55.2.js:16963
fileProcessComplete @ phaser-arcade-physics-3.55.2.js:189073
onProcessComplete @ phaser-arcade-physics-3.55.2.js:4961
data.onload @ phaser-arcade-physics-3.55.2.js:16931
load (async)
onProcess @ phaser-arcade-physics-3.55.2.js:16927
nextFile @ phaser-arcade-physics-3.55.2.js:189018
onLoad @ phaser-arcade-physics-3.55.2.js:4890
load (async)
XHRLoader @ phaser-arcade-physics-3.55.2.js:117741
load @ phaser-arcade-physics-3.55.2.js:4855
(anonymous) @ phaser-arcade-physics-3.55.2.js:188972
each @ phaser-arcade-physics-3.55.2.js:36745
checkLoadQueue @ phaser-arcade-physics-3.55.2.js:188958
update @ phaser-arcade-physics-3.55.2.js:188940
emit @ phaser-arcade-physics-3.55.2.js:1928
step @ phaser-arcade-physics-3.55.2.js:44529
update @ phaser-arcade-physics-3.55.2.js:95105
step @ phaser-arcade-physics-3.55.2.js:155129
step @ phaser-arcade-physics-3.55.2.js:84182
step @ phaser-arcade-physics-3.55.2.js:84429
requestAnimationFrame (async)
step @ phaser-arcade-physics-3.55.2.js:84431
requestAnimationFrame (async)
step @ phaser-arcade-physics-3.55.2.js:84431
requestAnimationFrame (async)
start @ phaser-arcade-physics-3.55.2.js:84483
start @ phaser-arcade-physics-3.55.2.js:84052
start @ phaser-arcade-physics-3.55.2.js:155074
texturesReady @ phaser-arcade-physics-3.55.2.js:155054
emit @ phaser-arcade-physics-3.55.2.js:1926
updatePending @ phaser-arcade-physics-3.55.2.js:96868
emit @ phaser-arcade-physics-3.55.2.js:1907
image.onload @ phaser-arcade-physics-3.55.2.js:96998
load (async)
addBase64 @ phaser-arcade-physics-3.55.2.js:96990
boot @ phaser-arcade-physics-3.55.2.js:96847
emit @ phaser-arcade-physics-3.55.2.js:1926
boot @ phaser-arcade-physics-3.55.2.js:155037
check @ phaser-arcade-physics-3.55.2.js:86801
Example Test Code
<!DOCTYPE html>
<html>
<head>
<script src="files/phaser-arcade-physics-3.55.2.js"></script>
</head>
<body>
<script>
var config = {
type: Phaser.AUTO,
width: 800,
height: 600,
scene: {
preload: preload,
create: create
}
};
var game = new Phaser.Game(config);
function preload ()
{
this.load.pack('assets', 'files/pack.json');
}
function create ()
{
gun = this.add.sprite(100, 100, 'm4a1');
}
</script>
</body>
</html>
pack.json
content:
{
"spritesheets": {
"path": "files",
"defaultType": "spritesheet",
"files": [
{ "key": "m4a1", "url": "m4a1.png", "frameConfig": { "frameWidth": 58, "frameHeight": 21 }, "normalMap": "m4a1-normal.png" },
{ "key": "gun2", "url": "gun2.png", "frameConfig": { "frameWidth": 58, "frameHeight": 21 }}
]
}
}