Я работаю над финальной системой битвы ATB, и в настоящее время я пытаюсь реализовать «функцию ускорения». Вместо того, чтобы ждать 6 секунд, прежде чем вы сможете действовать, поспешность позволит вам действовать в течение 3 секунд. Я в основном настраиваю пользователь объект, который имеет статус свойство, которое представляет собой пустой массив. Когда кнопка ускорения выполняется, я «нажимаю» слово «поспешность» в массив. Затем я делаю заявление, в котором говорится, что если у меня есть «статус спешки», тогда я буду действовать с таймером на 3 секунды до 6. Проблема, с которой я сталкиваюсь, заключается в том, что если у меня есть что-то другое, кроме «поспешности» в массив , этот эффект ломается. Например, если я нажму кнопку ускорения 3 раза, это будет толкать слово «поспешность» в массив 3 раза, что не является проблемой, поскольку я могу удалить его позже. Проблема, с которой я сталкиваюсь, заключается в том, что если в массиве не будет ничего, кроме одной «поспешности», этот эффект не будет работать, чего я не хочу, потому что в будущем я буду использовать его для ввода других статусные эффекты. Как я могу сказать свой код, что даже если другие элементы массива находятся в моем массиве, чтобы выполнить эффект?Моя функция «push array» не работает
function hasteButton() {
atbReset()
user.status.push("haste");
console.log(user.status);
};
var user = {
status: []
};
function timeBar(el, color) {
var elem = document.getElementById(el);
if (user.status == "haste") {
elem.style.transition = "width 3.0s, linear 0s";
window.setTimeout(function() {
boxLight()
}, 2800);
} else {
elem.style.transition = "width 6.0s, linear 0s";
window.setTimeout(function() {
boxLight()
}, 5800);
}
}
В дополнение к тому, что уже было сказано ниже, Javascript помогает преобразовать массив в строку «поспешность», когда в массиве есть только один элемент. Если вы используете === вместо ==, конверсия не произойдет, и иногда ситуация не будет работать ... – PRB