Использование асинхронных задержек C# в GodotC#

Место общения программистов C#
Ответить
Anonymous
 Использование асинхронных задержек C# в Godot

Сообщение Anonymous »

В настоящее время я экспериментирую с Godot C#, создавая базовый шутер, а для определения скорострельности я экспериментирую с различными системами задержки. Таймеры узла работают, хотя я пытаюсь сделать сценарий универсальным, а вызовы таймера, похоже, вызывают только функции родительского сценария.
Сейчас я рассматриваю метод Task.Delay в C#. и, похоже, это работает, поскольку это асинхронное действие, похоже, на него не влияет частота кадров и он не замедляет игру.
Мой вопрос: есть ли какая-либо известная проблема? для использования Task.Delay в игровых приложениях: например, он ненадежен или может привести к сбою, если вызывается слишком много экземпляров метода?
Вот код ниже, хотя я не думаю, что это важно :
private void shoot() {
//if "canShoot" spawn bullet
ShootCooledDown();
}

private async void ShootCooledDown() {
TimeSpan span = TimeSpan.FromSeconds((double)(new decimal(shotDelay)));
canShoot = false;
await Task.Delay(span);
canShoot = true;
}


Подробнее здесь: https://stackoverflow.com/questions/700 ... s-in-godot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»