add face-down card sprite
This commit is contained in:
		@ -935,13 +935,31 @@
 | 
			
		||||
				"x": 0,
 | 
			
		||||
				"y": 0
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"unknown": {
 | 
			
		||||
			"frame": {
 | 
			
		||||
				"w": 144,
 | 
			
		||||
				"h": 224,
 | 
			
		||||
				"x": 1872,
 | 
			
		||||
				"y": 0
 | 
			
		||||
			},
 | 
			
		||||
			"sourceSize": {
 | 
			
		||||
				"w": 144,
 | 
			
		||||
				"h": 224
 | 
			
		||||
			},
 | 
			
		||||
			"spriteSourceSize": {
 | 
			
		||||
				"w": 144,
 | 
			
		||||
				"h": 224,
 | 
			
		||||
				"x": 0,
 | 
			
		||||
				"y": 0
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	"meta": {
 | 
			
		||||
		"image": "cards.png",
 | 
			
		||||
		"format": "RGBA8888",
 | 
			
		||||
		"size": {
 | 
			
		||||
			"w": 1872,
 | 
			
		||||
			"w": 2016,
 | 
			
		||||
			"h": 896
 | 
			
		||||
		},
 | 
			
		||||
		"scale": 1
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 229 KiB  | 
@ -50,4 +50,5 @@ export type Card =
 | 
			
		||||
	| "jackOfDiamonds"
 | 
			
		||||
	| "queenOfDiamonds"
 | 
			
		||||
	| "kingOfDiamonds"
 | 
			
		||||
	| "aceOfDiamonds";
 | 
			
		||||
	| "aceOfDiamonds"
 | 
			
		||||
	| "unknown";
 | 
			
		||||
 | 
			
		||||
@ -1,24 +1,19 @@
 | 
			
		||||
import { Assets, Container, Size, Sprite } from "pixi.js";
 | 
			
		||||
import { Assets, Container, Sprite } from "pixi.js";
 | 
			
		||||
import { Card } from "./Card";
 | 
			
		||||
 | 
			
		||||
const CARD_WIDTH = 144;
 | 
			
		||||
const CARD_HEIGHT = 224;
 | 
			
		||||
 | 
			
		||||
const spritesheet = await Assets.load("/public/assets/cards.json");
 | 
			
		||||
 | 
			
		||||
export class Hand {
 | 
			
		||||
	cards: Container;
 | 
			
		||||
	#containerSize: Size;
 | 
			
		||||
	#offset: number;
 | 
			
		||||
	#roomRemaining: number;
 | 
			
		||||
 | 
			
		||||
	constructor(maxWidth: number, cards: Card[] = []) {
 | 
			
		||||
		if (maxWidth < CARD_WIDTH) {
 | 
			
		||||
			throw new Error("hand cannot be narrower than a single card");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		this.#roomRemaining = maxWidth;
 | 
			
		||||
		this.#containerSize = { width: maxWidth, height: CARD_HEIGHT };
 | 
			
		||||
		this.#offset = CARD_WIDTH;
 | 
			
		||||
 | 
			
		||||
		const sprites: Container = new Container();
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { Application, Assets, Sprite } from "pixi.js";
 | 
			
		||||
import { Application } from "pixi.js";
 | 
			
		||||
import { Hand } from "./Hand";
 | 
			
		||||
 | 
			
		||||
(async () => {
 | 
			
		||||
@ -17,6 +17,7 @@ import { Hand } from "./Hand";
 | 
			
		||||
			"eightOfDiamonds",
 | 
			
		||||
			"threeOfClubs",
 | 
			
		||||
			"kingOfSpades",
 | 
			
		||||
			"unknown",
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
		app.stage.addChild(hand.cards);
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@ function getCardSpritesheet() {
 | 
			
		||||
		meta: {
 | 
			
		||||
			image: "/public/assets/cards.png",
 | 
			
		||||
			format: "RGBA8888",
 | 
			
		||||
			size: { w: 1872, h: 896 },
 | 
			
		||||
			size: { w: 2016, h: 896 },
 | 
			
		||||
			scale: 1,
 | 
			
		||||
		},
 | 
			
		||||
	};
 | 
			
		||||
@ -48,10 +48,10 @@ function getCardSpritesheet() {
 | 
			
		||||
		"ace",
 | 
			
		||||
	];
 | 
			
		||||
 | 
			
		||||
	const size = { w: 144, h: 224 };
 | 
			
		||||
	for (let i = 0; i < 4; i++) {
 | 
			
		||||
		for (let j = 0; j < 13; j++) {
 | 
			
		||||
			const cardName = `${values[j]}Of${suits[i]}`;
 | 
			
		||||
			const size = { w: 144, h: 224 };
 | 
			
		||||
			const position = { x: j * size.w, y: i * size.h };
 | 
			
		||||
 | 
			
		||||
			spriteSheet.frames[cardName] = {
 | 
			
		||||
@ -62,5 +62,11 @@ function getCardSpritesheet() {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	spriteSheet.frames["unknown"] = {
 | 
			
		||||
		frame: { ...size, x: size.w * 13, y: 0 },
 | 
			
		||||
		sourceSize: size,
 | 
			
		||||
		spriteSourceSize: { ...size, x: 0, y: 0 },
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	return spriteSheet;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user