Добавлен , опубликован
Вот и наступило 26 сентября, а это значит что именно сегодня участники конкурса карт «Мини-игры» должны поделиться информацией о том как обстоят у них дела на этапе разработки.
Мне наверное в каком то роде не повезло так как остальным, я действительно начал работу с нуля 20 сентября, не было каких либо наработок/заготовок/идей подходящего направления, в отличии от других участников.
Картинка к новости от 20 сентября поселила в мою голову воспоминания о 8/16 битных приставках, поэтому проектом для реализации я выбрал Dendy, да и более интересного ничего не пришло в голову, всё остальное мне показалось заезженным и избитым.
Для начала я решил сделать тетрис, на тот момент мне подумалось, что это одна из самых простых для реализации игр.
Скачал эмулятор, ром, запустил.. и чёт затянуло, просидел весь вечер проиграл в него :D, так и не взялся что-либо делать.
В первую очередь хочу, что бы результат получился как можно более похожим и внешне, и геймплеем. Решил начать с реализации внешнего вида, а потом уже реализовывать функционал и работу игры в целом.
Решил, что отличным вариантом для создания тетриса будет использование тайлов (ландшафт), ведь в функции на отрисовку ландшафта есть возможность установки именно нужной вариации тайла из тайлсета:
call SetTerrainType(Х,Y,айдиТайлСета,Вариация,Размер,Форма)
И для этой задачи я нарисовал собственные тайлсеты.
Импортировал их в карту, выставил порядок наложения, поработал кистью и в итоге получилось:
Далее разбил алфавит на 2 тайлсета, A-Q (17 букв) на первом и R-Z (9 букв) на втором.
После импорта букв я осознал, что идея тайлинга крайне не удачна и нужно искать другое решение для отрисовки элементов, так как тайлы накладываются друг на друга в строгом порядке, и это не подходит для решения задачи.
В итоге написать слово score на 5 соседних клетках подряд не получилось. (в рамках таких тайлсетов)
(Вообще о наложения слоёв я изначально знал, но почему-то не придал этому значения)
Так же остро стояла проблема раскраски блоков и алфавита, на мой взгляд будет уныло, если весь текст будет белым, а все блоки серыми, решил в новой реализации сделать под каждый кусок блока/символ отдельную модель со своими альфа-маской и цветом. Для этого придётся курить моделлинг, благо в разделе статей я смогу найти необходимую информацию.
О результатах этой затеи (и не только) я напишу в следующем недельном отчёте, следите за развитием данного проекта.
А пока можете порубать в тетрис на эмуляторе денди :D (ссылка) - там эмуль и ром тетриса, управление на стрелки, Z, X, Enter.
Благодарю за внимание и надеюсь на вашу поддержку.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
10 лет назад
Отредактирован awesomesk1ll
0
nvc123:
awesomesk1ll, массив структур
Ох, не.. После прочтения на 1 раз двух статей, в моей голове мало очень осело.. Я с джассом еще пока не "на ты", а v/cJass это вообще что-то далекое)).
В моей голове это был простой цикл с движением 4 юнитов (for 1 to 4), который в свою очередь прицеплен на таймер, который регулируется сложностью. Как то так, вот это доступно для моего понимания, а массив структур..
Вообще v/c jass вроде на уровень выше чем jass, и должны быть для понимания проще по идее, но почему то не в моем случае.
1
24
10 лет назад
1
Через cv всё очень просто как раз-таки делается, особенно раз надо просто 4 юнита в фигуре.
0
24
10 лет назад
0
Я когда-то хотел делать тетрис и писал систему падения и двигания фигурок, правда тогда я мало чего знал и сделал очень утечную гуи наработку, если перевести в джазз убрать все бж удалять локации и тд, то может лагать не будет, могу описать алгоритм, в принципе там все просто в реализации
Но насчет оптимизации нагрузки я очень сомневаюсь
2
24
10 лет назад
2
Зачем удалять локации, если можно задать их 1 раз как константы и использовать всю игру?)
0
24
10 лет назад
0
Melissa, тоже вариант, на каждую клетку создавать локацию и циклом перебирать массив на предмет занятости клетки юнитом
0
21
10 лет назад
Отредактирован awesomesk1ll
0
Нене, точки использовать в данном случае точно глупо, потому что есть нативки для движения только по x или y.
У меня пока времени нет добраться до компутера, что бы что-то накидать, (работа/дорога/сон, благо инет под рукой, смартфон штука удобная xd), поэтому я пока в голове прокручиваю варианты..
Мой вариант примерно такой, раз все фигуры в тетрисе состоят из 4 "точек". Для текущей(падающей) фигуры объявляется массив из 4 юнитов, и двигается for 1 to 4 вниз, запускается этот цикл таймером.
Для поворота фигуры так же по этому же циклу проверяется, есть ли место для "проворота фигуры".
Для движения влево/вправо, так же проверка по циклу.
А вот как именно проверять есть ли там юнит в "слоте" или же пусто, это отдельный вопрос, можно областями, можно в переменной держать для каждой ячейки булю на занятость.
1
24
10 лет назад
Отредактирован darkowlom
1
awesomesk1ll, нет ли там уже занятой клетки как проверять будешь? Я бы просто запустил функцию перемещения в следующую точку, и проверив ее занятость остановил бы движение фигуры
Проще, если юнит не может туда переместиться из-за того что занято другим юнитом (Если коллизия включена) то не выполнять функцию, для этого то я точки и предлагаю использовать
0
28
10 лет назад
0
awesomesk1ll, сиджасс проще чем просто джасс
для занятости есть очень крутая проверка
if(a[i]==null)
где a массив юнитов а i индекс ячейки
но структурами намного проще
struct Map{
Cell cells[10][22];

}

struct Cell{
bool is;
unit u;

}
первая структура это наше поле(10 на 22 ячеек)
вторая это ячейка(содержит булеан и юнита)
0
21
10 лет назад
Отредактирован awesomesk1ll
0
nvc123:
awesomesk1ll, сиджасс проще чем просто джасс
для занятости есть очень крутая проверка
if(a[i]==null)
где a массив юнитов а i индекс ячейки
Юнитов в массиве записывать нужно значит, и обнулять если переносишь из ячейки в ячейку. (Я примерно так хотел делать)
Если юнита ремувишь, насколько помню - не надо обнулять, хендл должен убиваться..
Со структурами конечно выглядит красиво, но я не понимаю как ими пользоваться, мне всё это в новинку) т.к я стремный "кодер", я на примерах джасс учу), осваивать джасс вообще начал на базе .j файла внутри карты после xdep'а (была нужда переделать кое-что под себя, а для этого нужно было понять как что работает), а по профе я гуманитарий вообще), на самом деле спасибо за попытку объяснить мне), может спустя какое то время дойдёт) (что-то перечитаю/переосознаю)
1
28
10 лет назад
Отредактирован nvc123
1
awesomesk1ll,
структура это класс объекта
например структура яблоко
просто яблоко не определённое
а экземпляр структуры(объект) это определённое яблоко
яблоко имеет свойства(поля) например цвет,вкус
и имеет действия(методы) например оно может портиться,может упасть
прочитай тот файл что я скинул
вот он xgm.guru/files/705/97998/comments/178733/vJass.doc
это переведённый док по вджассу(структуры это часть вджасса)
без них код будет очень сложным в дальнейшим
так же можешь посмотреть примеры юза структур
0
21
10 лет назад
Отредактирован awesomesk1ll
0
Я его прочел уже). Примеры посмотрю. Спасибо
структура это класс объекта
например структура яблоко
просто яблоко не определённое
а экземпляр структуры(объект) это определённое яблоко
яблоко имеет свойства(поля) например цвет,вкус
и имеет действия(методы) например оно может портиться,может упасть
Я это понимаю в принципе, поверхностно. У меня в голове аналогия с бд, 1 строка, несколько полей).
Просто я на примерах учусь, мне нужно пару примеров повторить, пощупать).
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.