Altf40160, справедливости ради замечу, что номинально FrigatPlay по своему первому пункту прав, сделать хоть как-нибудь контент можно было бы за указанный им срок, но тем не менее не вижу вообще никакой проблемы в том, чтобы повышать свои навыки и попутно улучшать созданное, совмещая приятное с полезным. Сам так делал, однако так и не выпустил ни одного более-менее крупного проекта в варике, что не мешает иметь неплохое портфолио. FrigatPlay, каждый волен совершить любой выбор в своём хобби, и эти выборы абсолютно точно не основываются на Ваших вкусах и желаниях, как бы сильно не хотелось обратного. Объективно, предъявлять здесь абсолютно не за что, и мне непонятна Ваша мотивация.
Для начала замечу, что привычка использовать для обсчёта движения тригонометрические функции - верный путь к длительному, глубокому и жёсткому отсосу в будущем. Курите линал, он совершенно не сложный.
Писал прямо в сообщение, мог что-нибудь напутать, но вроде как не напутал.
код
вектор
struct vec2 {
public float x, y;
public static vec2 create(float x, float y) {
return vec2.allocate().set(x, y);
}
public static vec2 createByUnit(unit u) {
return vec2.create(GetUnitX(u), GetUnitY(u));
}
public vec2 plus(vec2 v) {
return .set(x + v.x, y + v.y);
}
public vec2 minus(vec2 v) {
return .set(x - v.x, y - v.y);
}
public vec2 mult(float num) {
return .set(x*num, y*num);
}
public vec2 div(float num) {
return .mult(1/num);
}
public vec2 normalize() {
return this.div(SquareRoot(x*x + y*y));
}
private vec2 set(float x, float y) {
this.x = x;
this.y = y;
return this;
}
}
создание снаряда
Только создание, остальное сам
#define DUMMY_ID = 'u001'
#define SPAWN_DISTANCE = 100.0
unit createParticle(unit source, unit target) {
vec2 va = vec2.createByUnit(source);
vec2 vb = vec2.createByUnit(target).minus(va).normalize().mult(SPAWN_DISTANCE).plus(va);
unit result = CreateUnit(GetOwningPlayer(source), DUMMY_ID, vb.x, vb.y, 0);
va.destroy();
vb.destroy();
return result;
}
Само движение снаряда реализовать через вектора ни на йоту не сложнее.
Быстрая загрузка в игре просто делается - подгружай логику только когда она становится нужна (обычно при пике героя), а не всю сразу. За конкретной реализацией - к Open DotA.
DemonoiD, в этом вопросе есть моменты, которые могут помочь получить хотя бы временное решение. Не помню точно как, но как-то это без костылей настраивалось...
Очередной проект задохнулся за недостатком энтузиазма...
Ну почему же сразу "задохнулся"? АоС как жанр в целом может развиваться бесконечно, и любую версию после релизной можно воспринимать как финальную, пока не выйдет следующая.
Автору: вообще-то говоря, подобные вещи обычно публикуют в блогах. В QA (этом разделе) тоже можно, конечно, но вопросы обычно очень быстро пропадают из поля зрения пользователей сайта, а поиск продолжателя может занять значительное время. Вообще, я бы глянул исходник интереса ради. Продолжать гарантированно не буду, но мб на досуге что-нибудь запилю/перепилю для развлечения и скину тебе. Впрочем, тоже не обещаю.
Остальных комментаторов хотелось бы попросить воздержаться от выкрикивания мнений без конструктива по существу.
Таким образом, когда игрок выберет нейтральный магазин, его выбор подменится нужным тебе образом.
Если у каждого игрока должен быть свой набор товаров, то это реализуется через выдачу магазину нужных товаров кодом при старте игры или в любой другой подходящий момент после него.
» WarCraft 3 / Как сделать чтобы после убийства юнита выходил эффект крови?
В вопросе не было никаких ограничений, я указал самый простой вариант.
Ред. Clamp
» WarCraft 3 / Координаты xy
» WarCraft 3 / Передаем аргументы в фунции callback'ов
» Есть желающие продолжить мою карту? / Gold Fever v1.23 AI
FrigatPlay, каждый волен совершить любой выбор в своём хобби, и эти выборы абсолютно точно не основываются на Ваших вкусах и желаниях, как бы сильно не хотелось обратного. Объективно, предъявлять здесь абсолютно не за что, и мне непонятна Ваша мотивация.
Ред. Clamp
» WarCraft 3 / Координаты xy
» WarCraft 3 / Как сделать чтобы после убийства юнита выходил эффект крови?
» StarCraft 2 / Как отобразить область действия способности..
» Администрация XGM / Можно ли перенести оформление ресурса на проект?
Ред. Clamp
» WarCraft 3 / Координаты xy
» WarCraft 3 / Координаты xy
Sergey105, ты же знаком со структурами?
» WarCraft 3 / Координаты xy
Ред. Clamp
» Есть желающие продолжить мою карту? / Gold Fever v1.23 AI
» WarCraft 3 / Передаем аргументы в фунции callback'ов
» WarCraft 3 / Продажа предметов
» WarCraft 3 / Передаем аргументы в фунции callback'ов
» WarCraft 3 / Долгогрузка
» Way of Others / Way of Others
» WarCraft 3 / constant function
В данном случае он действительно бесполезный, но тем не менее.
Ред. Clamp
» WarCraft 3 / Долгогрузка
Ред. Clamp
» WarCraft 3 / Продажа предметов
Не помню точно как, но как-то это без костылей настраивалось...
Ред. Clamp
» WarCraft 3 / Есть желающие продолжить мою карту?
Вообще, я бы глянул исходник интереса ради. Продолжать гарантированно не буду, но мб на досуге что-нибудь запилю/перепилю для развлечения и скину тебе. Впрочем, тоже не обещаю.
Ред. Clamp
» WarCraft 3 / Hide unit через GetLocalPlayer() вызовет десинк?
Если у каждого игрока должен быть свой набор товаров, то это реализуется через выдачу магазину нужных товаров кодом при старте игры или в любой другой подходящий момент после него.
» WarCraft 3 / структура и перебирание данных в ней
» WarCraft 3 / Jass Highlighter for Notepad++
» WarCraft 3 / структура и перебирание данных в ней