Добавлен , опубликован
Карта, демонстрирующая реализацию кастомного управления для варкрафта (aka "как в TcX", лол). Для запуска вполне хватит обычного JNGP с включённымы JassHelper'ом и cJass (без оптимизации скрипта карты).
Запускаем, жмём ESC, тыкаем мышкой, тестируем. Геймплея в карте нет, только демонстрация управления.
Если у кого-нибудь есть возможность протестировать по сети - будет круто, напишите в ЛС/тему, и я закину тест-кейсов.
Да-да, код выглядит ужасно и всё такое. Потом почищу, наверное.
Для того, чтобы всё было красиво, нужно ещё интерфейс заменить.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
30
7 лет назад
0
NekoriDes, я его сам выпилил временно =)
0
35
7 лет назад
0
так назад верни, быстро)
а гора комментов потому что наработка в аду с точки зрения навигации
вот невнятные модельки сотнями комментируют
0
30
7 лет назад
0
ZlaYa1000, отрефакторю и закину обратно, да. Сейчас душа лежит героя допилить =)
2
24
7 лет назад
2
а гора комментов потому что наработка в аду с точки зрения навигации
Ну я вот почитал, посмотрел, файла не увидел, кода не увидел, подумал "о, да я же делал такое в своей недоделаной карте, только дамы легкого поведения иначе одеты были" и прошел мимо т.к. мне это уже давно не интересно, максимум любопытно было глянуть насколько отличается от моей давней реализации. А сколько нибудь интересного срача диалога здесь не предвидится т.к. школоте это не нужно в виду сложности сабжа, а все остальные и сами в состоянии свою альтернативу сварганить, если бы им это было нужно.
0
30
7 лет назад
0
Вот это версия, которую я заливал. Она хорошо инкапсулирована и, хотя и рассчитана на строго определённую архитектуру карты (глобальный таймер, запускающий поток обработки игры N раз в секунду), показала себя достойно.
Сейчас сильно перепилил, всё красиво делаю, без костылей и с максимально адекватной логикой внутри самой системы. В свободное время учусь прогать таким изощрённым образом =)
Загруженные файлы
6
24
7 лет назад
6
В свободное время учусь прогать таким изощрённым образом =)
Сверлильщик зубов дракона через задний проход, третьего разряда.
0
30
7 лет назад
Отредактирован Clamp
0
prog, так нет же. Если глянуть на мой код, то там из нативных типов используются только int, float, bool, string, timer, trigger, причём таймер единожды для всей карты, а триггеры только для чтения инпата юзеров. Всё взаимодействие с UI, где невозможно обойтись без хендлов, инкапсулировано в максимально компактные библиотеки, которые работают через абсолютно адекватное API.

В итоге в основной массе логика портируема в тот же юнити с не особо значительными правками, проверял пару раз.

Ну а так да, конкретно этот кусок - велосипед.
0
24
7 лет назад
0
Clamp, полноценного ООП в джасе не запилить, только ООП-подобные костыли. Опыт по поведению конкретных движков и компиляторов, порой весьма своенравных, тоже не получить.
0
30
7 лет назад
0
prog, а кто сказал, что во главе угла должно стоять ООП?
Кроме того, независимо от внутренней логики работы vJass написанные на нём объектные модели работают адекватно, хотя и имеют некоторые ограничения в реализации. Почему бы и не считать это нормальным ООП? Темплейтов нету?
0
24
7 лет назад
Отредактирован prog
0
Почему бы и не считать это нормальным ООП? Темплейтов нету?
Полиморфизм, явный и неявный тайпкастинг, интерфейсы, абстрактные классы?
0
30
7 лет назад
Отредактирован Clamp
0
Полиморфизм
раскрыть
type agent  extends handle
type widget extends agent
type unit   extends widget
type item   extends widget
© common.j

// For example
native GetWidgetLife takes widget whichWidget returns real
void foo(unit U, widget W) {
    GetWidgetLife(W);   // Valid usage
    GetWidgetLife(U);   // Valid usage as well 
}
Чем не полиморфизм?
В структурах при использовании наследования можно передавать дочерний тип вместо родительского.

явный и неявный тайпкастинг
Под явный легко ложатся все нативные функции A2B(), кроме того, никто не запрещает писать кастомный функционал приведения типов (I2B(), например). При использовании структур всякие очевидные .toString().
К неявному можно отнести взаимозаменяемость int и float в некоторых ситуациях. При использовании структур vJass они очевидным образом кастятся в int.

интерфейсы

абстрактные классы
Вот с этим довольно туго, надо признать, только интерфейсы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.