Как включить мои 2d карты в игру для Windows Phone? - PullRequest
0 голосов
/ 21 января 2012

Я делаю глупую 2D-игру, но немного борюсь с внешними файлами, которые описывают, как должна выглядеть карта.

В настоящее время у меня есть map001.txt, который выглядит следующим образом

00000000000000000000
01111111111111111110
01111111111111111110
01111111111111111110
01111111111111111110
01111111111111111110
01111111111111111110
00000000000000000000
00000000000000000000
00000000000000000000

Использование TextReader не делает этого, кажется, он не может найти файл: (

1 Ответ

1 голос
/ 21 января 2012

Windows Phone 7 использует изолированное хранилище , что отличается от других систем, например Windows 7.

Я предполагаю, что вы используете C #, и у вас есть предопределенные карты. У вас есть два варианта

  • Включить файл в проект
  • записать эту строку карты в код

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

Лучший способ - определить помощника (если вам интересно, почему я сделал это static readonly вот объяснение)

public static class MapHelper
{
    public static readonly string Map = @"
                                          00000000000000000000
                                          01111111111111111110
                                          01111111111111111110
                                          01111111111111111110
                                          01111111111111111110
                                          01111111111111111110
                                          01111111111111111110
                                          00000000000000000000
                                          00000000000000000000
                                          00000000000000000000
                                          ";

}

Теперь, если вы хотите извлечь карту в виде линий, здесь приведен фрагмент

  var lines = Map.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

чтобы получить ширину и высоту используйте

        width = lines.Select(x => x.Length).Max();
        height = lines.Length;
...