Игра "Zone of Alienation: The Beginning" << 1 ... 63 64 65 66 67 ... 73 >> 4.11.2014 / 20:22 | | RblSb Пользователь Сейчас: Offline
Регистрация: 25.07.2011
| Zvers, гибкость для мобильных игр вещь очень вредная, на midp 1.0 даже для разных экранов были отдельные сборки. Короче говоря все довольно печально вышло, слишком тяжелый проект для стандартов j2me. Судя по фикс-версиям ты сам уже перестал понимать работу кода, думаю на ведре все бы отлично могло выйти. Теперь ты чем занят?
|
4.11.2014 / 20:36 | | Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| RblSb, Чтобы качественно в данном случае сделать несколько версий для разных устройств, нужно заново переписывать весь код под определённую архитектуру. В ходе тестирования после добавления какой-нибудь оптимизационной фичи постоянно проявлялось повышение производительности на целевом устройстве с одновременным понижением её на других. Кстати, долго мучались над Z каналом. Сначала был реализован алгоритм, работающий за O(1) по перемещению слоёв, но из-за того, что НПЦ тоже умеют двигаться, он не всегда давал корректный результат. Пришлось сортировать все объекты. Поначалу был QSort. И тут тоже проблемы - неустойчивые сортировки приводили к "миганию" объектов в некоторых местах. А устойчивые чаще всего дольше работают, либо используют дополнительную память. А какая нафиг дополнительная память много раз в секунду, когда итак это основная проблема. Что-то в этом роде. Сейчас много чем занимаюсь. Учёба очень много времени занимает. А так сейчас RB2 на Android уже, надеюсь, выйти должна.
|
4.11.2014 / 21:09 | | RblSb Пользователь Сейчас: Offline
Регистрация: 25.07.2011
| Zvers, что за z канал? всмысле перемещение слоев?
|
4.11.2014 / 21:24 | | dimon_net Пользователь Сейчас: Offline
Регистрация: 11.06.2013
| dimon_net, В классе Quests дефолтного пакета все квесты. Добавить квест просто, но не очень удобно. Для начала для квеста нужно придумать ID - целое число. Для второстепенных квестов оно меньше -1000, для основных желательно делать его положительным (но не обязательно). ID квеста должен быть уникальным и отличаться от айдишников других квестов (все ID можно узреть в классе Quests). В классе Quests нужно описать квест в методах beginQuest и endQuest. В beginQuest создаётся объект квеста. quest_pointer = new Quest(String name, String descr); Первый аргумент - название, второй - описание (второй в ЗОА не используется, можно что угодно написать) Затем нужно добавить в квест контрольные точки. quest_pointer.addPoint(TypeQuest type, QuestProperties prop, String name); // один из примеров метода (там есть ещё пара перегруженных) type - модель квеста, в которой хранится информация о прогрессе данной контрольной точки. TypeQuest - абстрактный класс, от которого наследуются все типы (PositionQuest, KillerQuest, ItemQuest, DialogQuest и т.д., все типы находятся в пакете org.mlge.quest.type) prop - объект, в котором хранится информация о награде за выполнение данной контрольной точки (деньги, какие предметы появятся в инвентаре, какие уберутся). name - если использовать данный аргумент, то при выполнении данной контрольной точки в сообщениях будет фигурировать этот параметр, а не название квеста (Задание обновлено: name и т.д.)
Затем нужно указать quest_pointer.type = ID; // ID - тот айди, который вы придумали для квеста
Всё это надо сунуть в условие else if (n - ID == 0) { // .. = new Quest ( ..... }
В endQuest() нужно в такой же условный блок сунуть обнуление ссылки на квест.
Квест создан и теперь нужно в нужный момент вызвать QuestManager.addQuest(ID);Спасибо. Но и ещё как добавить новые карты в игру?
|
4.11.2014 / 21:37 | | Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| dimon_net, Карты добавить проще, просто создать их с помощью утилит ML Map Creator, добавить в ресурсы и LocationManager.addLocation(new Location(String path_1, String path_back, String path_2, false, String name)); path_1 - путь к бинарику карты path_2 - путь к бинарику объектов карты path_back - путь к картинке с тайлами name - название карты
Переходы между локациями тоже нужно добавлять, если надо World.locareas.addElement(new LocationArea(int id, int id2, int x, int y, int w, int h, int player_x, int player_y, int dir)); id - айдишка локации, на которой находится переход id2 - айдишка локации, куда нужно перейти x, y, w, h - координаты и размеры области, в которой действует переход player_x, player_y - координаты игрока после перехода на новую локацию (-1, если должна сохраниться текущая координата) dir - направление, при котором переход на новую локацию происходит автоматически (без нажатия пользователем кнопки 0). -1 если пользователь должен нажать на 0 чтобы перейти, иначе автоматический переход действителен, поле имеет значения Game.player.LEFT, Game.player.RIGHT, Game.player.DOWN, Game.player.UP
|
4.11.2014 / 21:39 | | Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| RblSb, Грубо говоря порядок отрисовки объектов
|
4.11.2014 / 21:39 | | dimon_net Пользователь Сейчас: Offline
Регистрация: 11.06.2013
| dimon_net, Карты добавить проще, просто создать их с помощью утилит ML Map Creator, добавить в ресурсы и LocationManager.addLocation(new Location(String path_1, String path_back, String path_2, false, String name)); path_1 - путь к бинарику карты path_2 - путь к бинарику объектов карты path_back - путь к картинке с тайлами name - название карты
Переходы между локациями тоже нужно добавлять, если надо World.locareas.addElement(new LocationArea(int id, int id2, int x, int y, int w, int h, int player_x, int player_y, int dir)); id - айдишка локации, на которой находится переход id2 - айдишка локации, куда нужно перейти x, y, w, h - координаты и размеры области, в которой действует переход player_x, player_y - координаты игрока после перехода на новую локацию (-1, если должна сохраниться текущая координата) dir - направление, при котором переход на новую локацию происходит автоматически (без нажатия пользователем кнопки 0). -1 если пользователь должен нажать на 0 чтобы перейти, иначе автоматический переход действителен, поле имеет значения Game.player.LEFT, Game.player.RIGHT, Game.player.DOWN, Game.player.UPСпасибо. А на HTML5 можна создать такую игру?
|
4.11.2014 / 21:41 | | Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| RblSb (04.11.2014/21:09) Zvers, что за z канал? всмысле перемещение слоев?Глубина же, используется в играх, где спрайты могут перекрывать друг друга |
5.11.2014 / 02:45 | | AGet Пользователь Сейчас: Offline
Регистрация: 20.07.2012
| Zvers, пример: в .jar'нике папка Levels. В ней файлы: Level_1.zoalvl, Level_2.zoalvl, etc. Внутренности: Map ... /// Карта к которой цепляем AddNPC Medic x y WithQuest quest1 /// Добавить NPC с квестом на карту AddNPC Medic x y WithoutQuest /// Добавить "столба" Quest quest1 If Not SayWithNPC1 DisplaySimpleDialog "Привет! Мы похоже раньше не виделись!" Else DisplaySimpleDialog "Мы раньше, похоже, виделись" EndIf EndQuest
Считываем все карты, считываем все файлы квестов, цепляем, читаем, добавляем, погнали Так ГОРАЗДО удобнее. Наверно... |
5.11.2014 / 05:00 | | DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| AGet, это уже скриптовая машина как в сталкере или зомбишутере
|
<< 1 ... 63 64 65 66 67 ... 73 >> Всего сообщений: 729 Фильтровать сообщения Поиск по теме Файлы топика (22)
|