Статьи, которые добавил aNNiMON: Быстрое создание 2D ландшафтаПри написании некоторых игр возникает необходимость создать холмистый ландшафт. Есть множество различных алгоритмов таких как, например, разбиение пополам: берётся прямая линия на всю ширину игровой области, затем берётся середина этой линии и поднимается или опускается на некоторую величину. Затем полученные две линии снова делятся пополам и изменяются на некоторую величину в центральной точке и так до тех пор, пока размер разделённой пополам линии не достигнет какого-то предела, обычно в один пиксель. Но есть и более простой и быстрый способ генерирования 2D ландшафта. Создаём массив размером с ширину игровой области. int[] blockHeights = new int[width]; Определяем максимальную высоту, чтобы земля не вышла за пределы экрана. int maxHeight = height / 2; Рассчитываем Продолжить Рейтинг: 11 (За: 11 | Против: 0) Добавлено: 15.03.2014 от aNNiMON Комментарии (11) ООП в примерах. Часть 4. Интерфейсы, повторное использованиеПродолжим наше изучение ООП. Давайте создадим сущность Меню и обернём её вокруг наших пунктов, то есть перенесём всё, что касается меню в отдельный класс Menu. Позиция курсора (int cursor), массив с пунктами меню (MenuItem[] items), отрисовка, обработка клавиш теперь будет в классе Menu. ![]() Вместо массива я добавил Vector, чтобы можно было динамически добавлять элементы. Теперь класс Canvas будет ещё проще:
Продолжить Рейтинг: 6 (За: 7 | Против: 1) Добавлено: 7.02.2014 от aNNiMON Комментарии (24) ООП в примерах. Часть 3. Переопределение методов, уровни абстракцииПункт меню должен рисоваться на экране. Так почему бы нам не добавить метод отрисовки сразу в класс MenuItem и в его классы-потомки? Передадим этому методу все нужные нам параметры и будем рисовать.
Продолжить Рейтинг: 8 (За: 9 | Против: 1) Добавлено: 6.02.2014 от aNNiMON Комментарии (23) ООП в примерах. Часть 2. НаследованиеПродолжаем осваивать ООП. Разберёмся с наследованием. Наследование позволяет взять доступные свойства родительского (базового) класса и использовать их в производных (потомках). Сразу пример. Вернём наш класс пункта меню в первоначальный вид:
Продолжить Рейтинг: 5 (За: 6 | Против: 1) Добавлено: 6.02.2014 от aNNiMON Комментарии (0) ООП в примерах. Часть 1Недавно я пообещал написать что-нибудь про ООП. Честно сказать, тема довольно щекотливая, новичку без пяти капель не разобраться. Я не знал, с чего начать, поэтому решил просто начать, а дальше уже, по отзывам, буду решать в какую сторону делать упор. Итак, я не буду сразу парить вас нудной информацией о том, что такое ООП, где оно используется, зачем и т.д. Сразу открываем среду разработки и пишем код!! Пишем меню на Canvas. Вариант 1. Меню без ООП. ![]() Как видно, мы определили массив строк items для пунктов меню и числовое значение cursor для текущего выделенного элемента. При выборе пункта меню мы просто выводим Alert с текстом этого пункта, всё просто. - Ну и норм, без ООП справились, - подумаете вы. - Хорошо, а если нам надо Продолжить Рейтинг: 16 (За: 17 | Против: 1) Добавлено: 6.02.2014 от aNNiMON Комментарии (18) Всего: 113 ![]() |