feat: desktop pet v2 with 8 skins and state notifications

This commit is contained in:
Liang Jiaqing
2026-04-14 11:07:58 +08:00
parent acb0f93d5f
commit 0b54df85be
30 changed files with 1503 additions and 25 deletions

BIN
frontends/skins/boy/pet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,63 @@
{
"name": "Boy",
"version": "1.0.0",
"author": "pzuh",
"source": "https://pzuh.itch.io/temple-run-game-sprites",
"description": "Boy 角色皮肤",
"style": "pixel",
"format": "sprite",
"size": {
"width": 40,
"height": 61
},
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 64,
"frameHeight": 98,
"frameCount": 10,
"columns": 40,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 64,
"frameHeight": 98,
"frameCount": 10,
"columns": 40,
"fps": 3,
"startFrame": 20
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 64,
"frameHeight": 98,
"frameCount": 10,
"columns": 40,
"fps": 10,
"startFrame": 20
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 64,
"frameHeight": 98,
"frameCount": 10,
"columns": 40,
"fps": 24,
"startFrame": 20
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

View File

@@ -0,0 +1,60 @@
{
"name": "Dinosaur",
"version": "1.0.0",
"author": "voidcord54",
"source": "https://voidcord54.itch.io/",
"description": "像素风小恐龙 Dinosaur",
"style": "pixel",
"format": "sprite",
"size": { "width": 64, "height": 64 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 128,
"frameHeight": 128,
"frameCount": 2,
"columns": 5,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 128,
"frameHeight": 128,
"frameCount": 2,
"columns": 5,
"fps": 4,
"startFrame": 2
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 128,
"frameHeight": 128,
"frameCount": 2,
"columns": 5,
"fps": 8,
"startFrame": 2
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 128,
"frameHeight": 128,
"frameCount": 2,
"columns": 5,
"fps": 16,
"startFrame": 2
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

View File

@@ -0,0 +1,61 @@
{
"name": "Doux",
"version": "1.0.0",
"author": "arks",
"source": "https://arks.itch.io/dino-characters",
"license": "CC0",
"description": "像素风小恐龙 Doux",
"style": "pixel",
"format": "sprite",
"size": { "width": 48, "height": 48 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 4,
"columns": 24,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 6,
"startFrame": 5
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 8,
"columns": 24,
"fps": 16,
"startFrame": 6
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 16,
"startFrame": 17
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,60 @@
{
"name": "Glube",
"version": "1.0.0",
"author": "SketchesWithKevin",
"source": "https://sketcheswithkevin.itch.io/glube-platformer",
"description": "像素风小怪兽 Glube",
"style": "pixel",
"format": "sprite",
"size": { "width": 65, "height": 38 },
"animations": {
"idle": {
"file": "idle.png",
"loop": true,
"sprite": {
"frameWidth": 44,
"frameHeight": 31,
"frameCount": 6,
"columns": 6,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "walk.png",
"loop": true,
"sprite": {
"frameWidth": 65,
"frameHeight": 32,
"frameCount": 8,
"columns": 8,
"fps": 6,
"startFrame": 0
}
},
"run": {
"file": "run.png",
"loop": true,
"sprite": {
"frameWidth": 65,
"frameHeight": 32,
"frameCount": 8,
"columns": 8,
"fps": 12,
"startFrame": 0
}
},
"sprint": {
"file": "run.png",
"loop": true,
"sprite": {
"frameWidth": 65,
"frameHeight": 32,
"frameCount": 8,
"columns": 8,
"fps": 24,
"startFrame": 0
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,6 @@
License is CC0 - https://creativecommons.org/public-domain/cc0/
YOU CAN:
-> You can do whatever you want with this asset, including modifying it for commercial use.
-> Credit is not required, but is greatly appreciated!

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,60 @@
{
"name": "Line",
"version": "1.0.0",
"author": "itch.io",
"source": "https://itch.io",
"description": "Line 角色皮肤",
"style": "pixel",
"format": "sprite",
"size": { "width": 39, "height": 46 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 156,
"frameHeight": 185,
"frameCount": 4,
"columns": 28,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 156,
"frameHeight": 185,
"frameCount": 8,
"columns": 28,
"fps": 6,
"startFrame": 4
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 156,
"frameHeight": 185,
"frameCount": 8,
"columns": 28,
"fps": 10,
"startFrame": 12
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 156,
"frameHeight": 185,
"frameCount": 8,
"columns": 28,
"fps": 24,
"startFrame": 12
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

View File

@@ -0,0 +1,61 @@
{
"name": "Mort",
"version": "1.0.0",
"author": "arks",
"source": "https://arks.itch.io/dino-characters",
"license": "CC0",
"description": "像素风小恐龙 Mort",
"style": "pixel",
"format": "sprite",
"size": { "width": 48, "height": 48 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 4,
"columns": 24,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 6,
"startFrame": 5
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 8,
"columns": 24,
"fps": 16,
"startFrame": 6
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 16,
"startFrame": 17
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

View File

@@ -0,0 +1,61 @@
{
"name": "Tard",
"version": "1.0.0",
"author": "arks",
"source": "https://arks.itch.io/dino-characters",
"license": "CC0",
"description": "像素风小恐龙 Tard",
"style": "pixel",
"format": "sprite",
"size": { "width": 48, "height": 48 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 4,
"columns": 24,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 6,
"startFrame": 5
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 8,
"columns": 24,
"fps": 16,
"startFrame": 6
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 16,
"startFrame": 17
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

View File

@@ -0,0 +1,61 @@
{
"name": "Vita",
"version": "1.0.0",
"author": "arks",
"source": "https://arks.itch.io/dino-characters",
"license": "CC0",
"description": "像素风小恐龙 Vita",
"style": "pixel",
"format": "sprite",
"size": { "width": 128, "height": 128 },
"animations": {
"idle": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 4,
"columns": 24,
"fps": 6,
"startFrame": 0
}
},
"walk": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 6,
"startFrame": 5
}
},
"run": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 8,
"columns": 24,
"fps": 16,
"startFrame": 6
}
},
"sprint": {
"file": "skin.png",
"loop": true,
"sprite": {
"frameWidth": 24,
"frameHeight": 24,
"frameCount": 6,
"columns": 24,
"fps": 16,
"startFrame": 17
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB