Реализация списка ресурсов в WP7 - PullRequest
0 голосов
/ 26 марта 2012

Я портирую игру JAVA на WP7.У нас есть много изображений в нашей игре, и для загрузки их в JAVA используйте функцию наподобие «Resources.getImage (IMG_BULLETS);»где IMG_BULLETS - это идентификатор (int) изображения.

Но в WP7 мы должны передать путь (строку) изображения, чтобы загрузить его.

Теперь мой вопрос:

  • Как добиться отображения Int-String?так что мне не нужно вручную менять Id на путь.

Одно из возможных решений, которое мне приходит в голову, - это иметь файл .txt, содержащий путь к изображению и его Id, и анализировать его.Но я уверен, что это гораздо лучшее решение для этого.

Примечание: у нас также есть многоуровневая структура папок для изображений и других файлов.

1 Ответ

0 голосов
/ 26 марта 2012

Если вы действительно хотите ссылаться на ресурсы по int, вам придется сопоставить их как с их путями. Насколько я знаю, нет возможности сканировать ваши активы, и даже если бы вы могли, я сомневаюсь, что вы получите такой же индексный порядок, и вам придется переделать ваше перечисление.

Будет несколько препятствий, с которыми вы столкнетесь при попытке изменения порта и кода. Еще один (который у вас все еще будет даже при работе с txt-файлом) будет заключаться в том, что contentManager.Load принимает тип, например, contentManager.Load<Texture2D>('path'), возвращающий Texture2D.

Один из вариантов - создать свой собственный одноэлементный класс 'Resources', в котором есть методы get, которые принимают int для получения соответствующего актива, однако вам все равно понадобится отображение через xml или txt файл somekind. Однако это потребует загрузки всех ваших ресурсов с самого начала, что создает больше собственных проблем (ограничение памяти 90 МБ и очень длительное время загрузки).

Мой совет - заглянуть в раздел разработки игр App Hub и взглянуть на пример состояния игры , чтобы помочь вам понять, как вы можете структурировать свою игру. игра, чтобы хорошо работать с XNA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...