Является ли показ плитки 2d игры для редактора в отдельных картинках даже хорошей идеей?

1

Поэтому я создаю редактор карт для этой маленькой игры под названием "Cataclysm". Кодирование в сторону (так как это не проблема). Использует ли ящик для каждой плитки даже хорошую идею?

Есть ли у вас какие-либо другие идеи, которые упрощают работу как на моем, так и на моем ПК? (Используя визуальную студию, наблюдается заметное замедление при перемещении или обработке всех 144 иллюстраций для квадранта 12x12 файла карты)

Еще одна идея, которую я имел, - это просто собрать картинку для карты, а затем набить ее в один кадр, но как бы отредактировать отдельные плитки таким образом? Поместите растровое изображение над ним и проверьте, какая плитка для мыши включена, когда вы нажимаете?

Спасибо за ваши предложения!

Редактировать: это редактор, а не отдельная игра!

Теги:
2d
tiles
map

2 ответа

2
Лучший ответ

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

Существует предел процесса в 10 000 оконных дескрипторов. На данный момент вы далеко не исчерпали этот предел. Но что, если вы решите сделать карту (значительно) более крупной в более поздней версии игры? Кроме того, неплохой дизайн подходит к пределу. Существует также системный предел в 32 тыс., Поэтому чем больше ручек, потребляемых одним приложением (до предела 10 тыс.), Тем меньше доступно для других приложений.

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

  • 0
    Это не моя игра. Я просто бездельничаю с редактированием карты и сохраняемых файлов, так что я не беспокоюсь о том, что она станет больше Но спасибо, я даже не думал о том, чтобы использовать саму форму!
0

В 2D изометрических играх, которые я использую, используется один картинный ящик. Что я сделал, так это то, что я взял местоположение X и Y мыши и разделил его по высоте и ширине плитки. Преобразуйте это число в int (отбрасывая десятичные значения). Это должно дать вам точную черепицу. Но вам может потребоваться немного сыграть с формулой, если вы не используете местоположение мыши на самом изображении. Итак, при щелчке мыши вы получаете плитку, которую пользователь щелкнул, и просто нарисуйте новое изображение плитки в этом месте.

Если вы хотите делать игры с использованием С#, почему бы не использовать XNA? Это очень хороший фреймворк, и вы получаете много учебников по нему.

http://en.wikipedia.org/wiki/Microsoft_XNA

http://www.microsoft.com/en-za/download/details.aspx?id=23714

http://xnaresources.com/default.asp?page=TUTORIALS

  • 0
    Чтобы изложить это здесь, я не делаю игру - я делаю редактор. Я посмотрю в XNA, хотя!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню