Импортеры рамок XNA - PullRequest
       13

Импортеры рамок XNA

4 голосов
/ 05 августа 2009

Я работаю над игрой, используя платформу XNA. Моя игра имеет несколько уровней, которые я храню в виде простого старого текстового файла. В VS 2008, когда я добавляю файл уровня в проект и компилирую, я получаю следующее сообщение об ошибке.

Ошибка 1 Не удается автоматически определить, какой импортер использовать для «Levels \ 0.txt». Там нет импортеров, которые обрабатывают этот тип файла. Укажите импортер, который обрабатывает этот тип файла в вашем проекте. F: \ Projects \ BrickBreaker \ BrickBreaker \ Content \ Levels \ 0.txt BrickBreaker

Причина, по которой я рассказываю об этом, заключается в том, что если я переключаю свои уровни и запускаю игру, уровень не обновляется. Я обнаружил, что уровень не обновляется, потому что VS запускает игру из папки bin \ debug, а поскольку файлы уровней не включены в проект, они не копируются при их изменении. Я также обнаружил, что образец платформы, который поставляется с платформой, включает данные уровня в проекте, откуда я и получил эту технику.

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

Разрешение - покопавшись в ответах на этот пост, я нашел решение. Я добавил текстовые файлы в проект и установил для свойства сборки значение none. Ошибка больше не возникает при компиляции и файл включен в проект.

Ответы [ 3 ]

8 голосов
/ 05 августа 2009

Вы можете сделать Visual Studio просто скопировать файлы, если вы хотите в выходной каталог. Под свойствами текстового файла в проекте выберите Build Action: None и измените копию в выходной каталог на необходимый.

Вы также можете проверить образец платформера. Они используют текстовые файлы в качестве формата уровня.

2 голосов
/ 05 августа 2009

Отсутствует импортер содержимого для текстовых файлов. Игнорируйте конвейер содержимого и просто читайте файл так же, как и любой другой обычный текстовый файл.

string line = string.empty;
using(StreamReader sr = new StreamReader("filename")){
    while((line = sr.ReadLine()) != null){
        //reads line by line until eof
        //do whatever you want with the text
    }
}
0 голосов
/ 08 июня 2012

У меня была похожая проблема, и мне было проще добавлять файлы в проект контента и задавать действие сборки равным none, чем вообще пропустить конвейер контента.

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