Допиливаем и дорабатываем редактор до товарного вида. Реализуем ещё несколько фишек.
Дата отправки отчёта:
6 сентября 2015 г.
Задание выполнено: за
2 час. 00 мин.
Чему научился:
Допиливать свои хотелки
Что было сложным:
Состыковка статус бара и поля при изменении размеров формы
Комментарии:
Немного переделал стилистику своей будущей игры. Взял спрайты из игры warcraft 2. Сразу не понравился способ изменения размеров уровня. По моему опыту - если дать возможность пользователю ввести данные неправильно - он обязательно введет их неправильно =) Поэтому вместо textbox сделал TrackBar'ы numericUpDownTextBox'ы отдельно на ширину и высоту. Изначально они не видны, а при нажатии на кнопку ресайза - появляются, и уровень масштабируется с учетом новых элементов на форме. Счетчики боксиков и место для их расположения расположил на СтатусБаре в нижней части формы. Там же отображается информация о сохранении уровня. Между стрелками переключения уровней поставил текстбокс ReadOnly для отображения номера уровня и общего количества уровней. Еще добавил горячие клавиши на наши элементы управления. 1 - wall, 2 - abox и т.д. Таким образом не обязательно кликать по ним мышкой, чтобы выбрать текущий, достаточно нажать клавишу.
Научился: создавать контролы кодом и назначать им свойства добавил небольшую функцию, отображающую номер текущего уровня в комбобоксе с возможностью перехода сразу к конкретному уровню
Научился: Дeлать измeнение рaзмеpов лaбиpинта чeрез текстовое поле.
Дeлать пpямоугольнoе зaполнeниe лабиpинта выбранным объектом.
Дeлать cчётчик ящиков и паркoвочныx меcт для ниx.
Дeлать Тултипы для контролов
Трудности: Возникли вопросы:
при использовании текстового поля со свойством BorderStyle = Fixed3D,
я надеялся увидеть "объёмный вариант", а на самом деле оно выглядит как Label.
Хотелось бы подробнее узнать как программно перехватывать ошибки с помощью try - catch.
Возникли вопросы:
при использовании текстового поля со свойством BorderStyle = Fixed3D,
я надеялся увидеть "объёмный вариант", а на самом деле оно выглядит как Label.
Хотелось бы подробнее узнать как программно перехватывать ошибки с помощью try - catch.
Замечаний, практически, нет.
Особенно понравилась реализация пpямоугольнoго зaполнeния лабиpинта выбранным объектом.
Хочу предложить более простой способ использования функции Split(x)
с разделителем, отличным от пробела:
char dl = 'x';
string[] wh = toolStripTextBoxLabirintSize.Text.Split(dl);