Перехід між рівнями, створення більшої карти - Створення 2D гри, використовуючи можливості Java
Спершу, я збільшу кулькість елементів двумірного масиву у класу GameMap, але тільки цього не достатньо, тому що виникає проблема. Карта дійсно стала більше, але виходить за межі видимості.(ст.60[3]) Тому потрібно зробити так щоб при пересуванні персонажу рухалась сама карта, а персонаж залишився на одному місті, і тим самим буде досягнена іллюзія руху персонажу.
Для початку я додав до класу ігрока Player для поля, що відповідають за його положення при малюванні.
Поля posY і posY як і раніше зберігають реальний стан персонажа, а posRenderX і posRenderY положення, видиме на ігровому екрані. Наступні зміни торкнуться класу Game, конкретно методу update. Для початку ми визначимо розміри, які будуть відповідати за відображення на нашому ігровому екрані - widthTile і heightTile, вони будуть зберігати значення, скільки плиток по ширині і висоті можна намалювати за раз. Поля cWidthTile і cHeightTile визначають центральне положення в нашій ігровий рамці. Поля startTileX, startTileY, endTileX, endTileY визначають координати, які потрібно взяти з об'єкта карти і намалювати на екрані. Змінні offsetX і offsetY це поправка, яка виникає через нерівномірність переміщення персонажа, тобто швидкість руху персонажа не дорівнює розміру плитки, тому залишається залишок, на який потрібно зрушити карту для плавного руху. І нарешті, movePlayerX і movePlayerY визначають потрібно рухати карту або самого персонажа. Якщо персонаж підійшов надто близько до краю, то картка не зміщується, а пересувається сам персонаж, якщо ж він знаходиться в центрі, то рухаємо саму карту.
До методу start додаємо:
//устанавливаем позицию
- 1. player. posRenderX =BaseTile. SIZE; 2. player. posRenderY =BaseTile. SIZE;
При компіляції ми отримаємо лабіринт, в якому буде рухатися наш персонаж. При знаходженні персонажа в центрі змінюється позиція карти, при наближенні їм краю, він переміщається сам. Працювати з дуже великим масивом незручно, та й справа витратна в плані ресурсів. Але є рішення - створити дві карти і об'єднати їх дверима. Свого роду магічні портали, перетинаючи які, персонаж виявляється на іншій карті. Інакше кажучи, ми зробимо, так що б персонаж, встаючи на певну плитку, переміщався на іншу карту. Для реалізації цього ми зробимо з GemaMap абстрактний клас, і визначимо від нього ще два Map1 і Map2.
Звичайно, карта 2 виглядає маленькою кімнатою, але нам для прикладу цього буде достатньо. Далі в класі BaseTile ми визначимо поле door - це числове поле які буде зберігати номер карти, на який вона посилається, якщо "0" то це звичайна клітина. І зробимо спеціальну плитку з номером 3 і 4 - вони будуть посилатися на карти, нехай їх кольору будуть червоного кольору.
До класу Game додамо новий метод, відповідаючий за встановлення карти:
/**
- 1. * Метод отвечает за установку карты. 2. * @param mapId Номер карты. 3. */ 4. public void setMap(int mapId) { 5. if(mapId == 2) { 6. map = new Map2(); 7. } else { 8. map = new Map1(); 9. }
Та додамо метод checkingChangeMap, котрий буде викликатися з початку update.
За таким принципом можна будувати багатовимірні простору і практично нічим не обмежені карти.
Похожие статьи
-
УПРАВЛІННЯ ЗА ДОПОМОГОЮ МИШІ - Створення 2D гри, використовуючи можливості Java
Наше завдання складається з двох підзадач: визначення точки на карті куди було вказано йти персонажу; знайти найкоротший шлях персонажу від поточної його...
-
РОБОТА З "PLAYER", Створення персонажу - Створення 2D гри, використовуючи можливості Java
У цьому розділі я частково розповім про функціонал коду, та буду приводити для прикладу деякі фрагменти коду. Створення персонажу У данній частині я буду...
-
Боти та штучний інтелект - Створення 2D гри, використовуючи можливості Java
Перш ніж створити клас самого бота, ми введемо якусь абстракцію, клас Unit. Цей абстрактний клас Unit візьме на себе весь функціонал який зараз закладено...
-
Створення карти - Створення 2D гри, використовуючи можливості Java
Початок роботи: Я буду розробляти гру на тайлах(Tile -- плитка). В основі гри на тайлах є карта, усе що можна побачити у грі на карті -- гори, ріки,...
-
ЗАГАЛЬНА РОБОТА З ГРАФІКОЮ - Створення 2D гри, використовуючи можливості Java
Двомірні гри це добре, але з них можна вичавити більше застосувавши изометрическую проекцію, тим самим створивши ілюзію тривимірного простору. Треба...
-
Спрайти - Створення 2D гри, використовуючи можливості Java
Для того щоб оживити гру і додати в неї динаміки можна використовувати по кадрову анімацію. Така анімація заснована на спрайт, вони в свою чергу являють...
-
ВИСНОВОК, ВИКОРИСТАНІ ДЖЕРЕЛА - Створення 2D гри, використовуючи можливості Java
Виконавши даний проект я закріпив знання з використання JDK та ізометричної проекції для створення графічної оболчки, багато потокового програмування....
-
ВСТУП, СТВОРЕННЯ ПРОЕКТУ. РОБОТА З КЛАСОМ "MAIN" - Створення 2D гри, використовуючи можливості Java
Актуальність теми. На сучасному етапі актуальність даної теми є очевидною, Оскільки ігри у наш час користуються популярністю, а Java - один з провідних...
-
Введення даних і створення звітів - Система керування базами даних Access
Працюючи в СУБД Access, можна вводити інформацію, по-перше, безпосередньо до таблиці, по-друге, за допомогою форми і, нарешті, шляхом імпорту зовнішньої...
-
Перед написанням драйверу доцільно переконатись чи працює фізичний пристрій як це очікувалось. Майстер можно використати для такої перевірки пристрою....
-
Етапи рішення прикладних задач з використанням комп'ютерів 1) Формулювання задачі в термінах певної предметної галузі знань (математика, фізика,...
-
Геоінформаційний система проектування моделювання Порядок реєстрації земельних ділянок З набранням чинності Законом України "Про Державний земельний...
-
Описанный метод, по сути, анализирует поведение веб-приложения на предмет совершения недопустимых относительно профиля нормального поведения операций....
-
До сих пір ми торкалися лише імпортних продуктів в Internet. А як же складаються справи з нашими? Чесно кажучи, поки що туговато. Напрочуд необмежені...
-
Экологическая часть, Термины и определения - Искусственный интеллект
Cтандарт ГОСТ Р 54148-2010 - "Воздействие на человека электромагнитных полей от бытовых аналогичных электрических приборов. Методы оценки и измерений"...
-
При добавлении текста Word автоматически вставляет мягкий (изменяемый) перенос, иначе называемый разрывом страницы. По мере редактирования текста этот...
-
Собственными называют периодические колебания консервативной системы, совершающиеся исключительно под воздействием инерционных и упругих сил. Для...
-
Структура мережі - Розробка мережі в Cisco Packet Tracer
З власних міркувань загальну мережу я вирішив скласти з окремих так-званих підмереж (1 поверх одна мережа), це забезпечить насамперед значну швидкодію та...
-
Згідно технічного завдання потрібно спроектувати локальну комп'ютерну мережу, яка складається з п'яти поверхів, на кожному з яких знаходиться по п'ять...
-
Інфологічна модель бази даних "відділ кадрів" Мета інфологічного моделювання - забезпечення найбільш природних для людини способів збору і представлення...
-
Найменування та галузь використання Найменування розробки: гнучкої системи інформаційної підтримки підвищення кваліфікації персоналу ДП№ 9. Розроблена...
-
Створення INF-файлу Майстер "DriverWizard", є складовою частиною пакету WinDriver. Це інструмент з графічним інтерфейсом для діагностування та...
-
Сутність поняття Internet - Створення комп'ютерних технологій
Багатогранність Internet не дає змоги однозначно його визначити. З погляду техніки Internet -- це система з'єднаних між собою комп'ютерних мереж,...
-
Етапи розвитку інформаційних технологій - Створення комп'ютерних технологій
З появою ЕОМ настала ера "комп'ютерної" інформаційної технології, яка у своєму розвитку пройшла кілька етапів. Основне завдання інформаційних технологій...
-
Система адрес та імен Internet - Створення комп'ютерних технологій
Для роботи в Internet потрібно знати адреси та імена людей і комп'ютерів. Правильно вказати адресу чи ім'я в мережі так само важливо, як і точно написати...
-
Реальність та міфи "інформаційної магістралі" - Створення комп'ютерних технологій
Швидкість, з якою розвивається Internet та супутні технології, поставила його в один ряд з найдинамічнішими галузями людської діяльності. Те, що вчора...
-
Для створення нового проекту типу "консольний додаток" виконайте наступні дії: Виберіть в рядку меню головного вікна команду File New... У діалоговому...
-
У декількох словах - на PHP можна зробити усе, що можна зробити за допомогою СGI-программ. Наприклад: обробляти дані з форм, генерувати динамічні...
-
Веб-сервер (англ. Web Server) -- це сервер, приймаючий HTTP-запити від клієнтів, зазвичай веб-браузерів, який видає їм HTTP-відповіді, зазвичай разом з...
-
С помощью диалоговых окон были отображены задания, их выбор, поля для ввода входных данных, заполняемые по умолчанию, полученный результат и визуализация...
-
Классы StatMetric содержат всю логику библиотеки и предоставляют интерфейс для обновления и получения значений агрегатов. Рисунок 4. Диаграмма классов...
-
Особенностью API для коммуникации с СКУД является то, что авторизация методов происходит не с помощью токена, а с помощью проверки IP адреса клиента на...
-
Вокодеры с линейным предсказанием (липредеры) - Вокодеры с линейным предсказанием
Этот тип вокодера (рис. 3, рис. 4), в отличие от остальных типов, для передачи речи применяет не фильтры, а систему линейного предсказания. В линию...
-
Для третьего способа мне понадобился способ под названием "Стемминг". Данное понятие очень популярно во всемирной паутине, так как оно применяется в...
-
Физические модели БД - Банки и базы данных. Системы управления базами данных
Под физической моделью БД понимается способ размещения данных на устройствах внешней памяти и способ доступа к этим данным. Каждая СУБД по-разному...
-
Прямое использование предсказания позволяет воспроизводить звук, но с плохим качеством. Поэтому этот метод имеет много различных разновидностей,...
-
Шестой метод - построение суффиксных деревьев. Среди большого количества методов анализа текста метод аннотированного суффиксного дерева выделяется тем,...
-
Записи, множества, файлы - Структуры данных
Обобщением массива является комбинированный тип данных - запись, являющаяся неоднородной упорядоченной статической структурой прямого доступа. Запись...
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
Застосування масивів при розв'язанні задач у Visual Basic 6.0
- Для створення відкритого масиву (public array) треба використати оператор Public у секції Declaration модуля; - Для створення масиву рівня модуля...
Перехід між рівнями, створення більшої карти - Створення 2D гри, використовуючи можливості Java