Вы должны инициализировать их все, но вам не нужно делать это руками.
Вы должны создать одно изображение, содержащее каждую отдельную карту, и загрузить его. BufferedImage
класс предоставляет вам getSubImage(int x, int y, int w, int h);
и возвращает часть (карты) из вашего BufferedImage.
Вы можете заполнить массив карты в то время как перекручивание через образ вашей колоды.
for(int i = 0; i<4; i++){
for(int j = 0; j < 13; j++){
deckArray[13 * i + j] == image.getSubImage(i * cardWidth,
j * cardHeight,
cardWidth,
cardHeight);
}
}
Нечто подобное. Обратите внимание, что я предполагаю, что 4 * 13 изображений os листа и между ними нет места. Вам нужно будет найти способ отслеживать ваши карты, какой из них в вашем массиве, независимо от того, как вы их храните, потому что то, что вы определенно не хотите, загружает изображение каждый раз, когда вы хотите его использовать.
Это не проверено и не на 100% уверен, что я выполнил всю математику правильно, просто быструю ссылку, как бы вы могли добиться чего-то подобного.
Трудно помочь без примеров о том, что вы хотите – ItamarG3
Вопрос очень неясен. Представьте, что тот, кто читает, не знает, что вы делаете. Пожалуйста, прочитайте эти две ссылки, а затем отредактируйте свой вопрос, чтобы вставить дополнительную информацию. http://stackoverflow.com/tour и http://stackoverflow.com/help/how-to-ask – Tom
При запуске приложения вы должны прочитать все изображения своей карты. Таким образом, все изображения карт находятся в памяти. Затем вы можете получить к ним доступ, как вам нужно. –