- Сообщений: 250
- Спасибо получено: 50
Как установить SV-battler-a в Х,Y
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
Скрыть
Больше
5 года 10 мес. назад #118146
от tvorimvsevmeste
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
tvorimvsevmeste создал тему: Как установить SV-battler-a в Х,Y
Хочу попробовать сделать битву-скандал / битву-спор.
К этому очень идут "Galv's Message Styles.js". замечательно рисует комиксовые облачка с текстом нужной точке.
Но нужно знать Х,Y этой точки.
Может кто-то знает как разместить SV-battler-a в конкретную X,Y ?
Наоборот тоже хорошо — узнать Х,Y уже имеющегося баттлера.
Если кто-то знает помогите пожалуйста.
К этому очень идут "Galv's Message Styles.js". замечательно рисует комиксовые облачка с текстом нужной точке.
Но нужно знать Х,Y этой точки.
Может кто-то знает как разместить SV-battler-a в конкретную X,Y ?
Наоборот тоже хорошо — узнать Х,Y уже имеющегося баттлера.
Если кто-то знает помогите пожалуйста.
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
5 года 10 мес. назад - 5 года 10 мес. назад #118148
от Dmy
Откроется окно инструментов разработчика. В нём нужна вкладка Console (она открыта по умолчанию). Скопируйте в неё такой код:
Нажмите Enter, чтобы выполнить код в консоли. В результате его выполнения в консоль выведутся координаты:
Обновлено после написания: исправил ошибку в коде.
Dmy ответил в теме Как установить SV-battler-a в Х,Y
Запустите тест битвы или тест игры. В битве нажмите F12.tvorimvsevmeste пишет: Наоборот тоже хорошо — узнать Х,Y уже имеющегося баттлера.
Откроется окно инструментов разработчика. В нём нужна вкладка Console (она открыта по умолчанию). Скопируйте в неё такой код:
Code:
var members = $gameTroop.members();
console.group('Координаты противников');
SceneManager._scene._spriteset._enemySprites.forEach((e, i) => {
var name = members [e._enemy.index()].name()
console.log(`${name}: X центра = ${e.x}, Y верха = ${e.y - e._frame.height}`);
})
console.groupEnd();
Нажмите Enter, чтобы выполнить код в консоли. В результате его выполнения в консоль выведутся координаты:
Обновлено после написания: исправил ошибку в коде.
Последнее редактирование: 5 года 10 мес. назад пользователем Dmy.
Спасибо сказали: tvorimvsevmeste
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
Скрыть
Больше
- Сообщений: 250
- Спасибо получено: 50
5 года 10 мес. назад #118149
от tvorimvsevmeste
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
tvorimvsevmeste ответил в теме Как установить SV-battler-a в Х,Y
Это тоже решение, хотя я надеялся, что удастся получить как runtime значения переменных или возвращаемый результат функции.
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Спасибо сказали: Dmy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
5 года 10 мес. назад - 5 года 10 мес. назад #118150
от Dmy

Если нужно записывать результат в переменные, то можно сделать, скажем, вот так:
Код так себе (в идеале надо бы сократить использование приватных переменных), но должен работать.
Сохраните в файл как плагин, а дальше вызывайте командой «вызов скрипта» вот так:
А чтобы переместить спрайт, можно попробовать сделать какую-то такую функцию:
Вызывается так:
Засада в том, что эту функцию надо вызывать уже после того, как битва началась и спрайты создались. То есть они сначала создадутся на стандартном месте, а потом можно их переместить.
Dmy ответил в теме Как установить SV-battler-a в Х,Y
Описывайте, пожалуйста, свои надежды сразу в ТЗ.tvorimvsevmeste пишет: Это тоже решение, хотя я надеялся, что удастся получить как runtime значения переменных или возвращаемый результат функции.
Если нужно записывать результат в переменные, то можно сделать, скажем, вот так:
Code:
function enemyPosToVars(enemyIndex, xVar, yVar) {
if (!SceneManager._scene._spriteset || !SceneManager._scene._spriteset._enemySprites)
return;
var sprites = SceneManager._scene._spriteset._enemySprites
.filter((eSpr) => eSpr._enemy.index() == enemyIndex);
if (sprites.length == 1) {
var sprite = sprites[0];
$gameVariables.setValue(xVar, sprite.x);
$gameVariables.setValue(yVar, sprite.y - sprite._frame.height);
}
}
Код так себе (в идеале надо бы сократить использование приватных переменных), но должен работать.
Сохраните в файл как плагин, а дальше вызывайте командой «вызов скрипта» вот так:
Code:
enemyPosToVars(0, 10, 11)
// Замените 0 на номер противника в отряде (0 — первый, 1 — второй, и т.п.)
// замените 10 на номер переменной для координаты X
// замените 11 на номер переменной для координаты Y
А чтобы переместить спрайт, можно попробовать сделать какую-то такую функцию:
Code:
function moveEnemyTo(enemyIndex, x, y) {
if (!SceneManager._scene._spriteset)
return;
var sprites = SceneManager._scene._spriteset._enemySprites
.filter((eSpr) => eSpr._enemy.index() == enemyIndex);
if (sprites.length == 1) {
var sprite = sprites[0];
sprite.setHome(x, y + sprite._frame.height);
}
}
Вызывается так:
Code:
moveEnemyTo(0, 100, 300)
// Замените 0 на номер противника в отряде (0 — первый, 1 — второй, и т.п.)
// замените 100 на координату X
// замените 300 на координату Y
Засада в том, что эту функцию надо вызывать уже после того, как битва началась и спрайты создались. То есть они сначала создадутся на стандартном месте, а потом можно их переместить.
Последнее редактирование: 5 года 10 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
Скрыть
Больше
- Сообщений: 250
- Спасибо получено: 50
5 года 10 мес. назад #118151
от tvorimvsevmeste

Ура! Это именно то, что было нужно!

Огромное спасибо!
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
tvorimvsevmeste ответил в теме Как установить SV-battler-a в Х,Y
Ура! Это именно то, что было нужно!
Огромное спасибо!
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Спасибо сказали: Dmy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- tvorimvsevmeste
-
Автор темы
- Не в сети
- Давно я тут
-
Скрыть
Больше
- Сообщений: 250
- Спасибо получено: 50
5 года 10 мес. назад #118164
от tvorimvsevmeste
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
tvorimvsevmeste ответил в теме Как установить SV-battler-a в Х,Y
А ссылочку не кинете?
Поживем — увидим,
доживем — узнаем,
переживем — научимся…
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.095 секунд
