如何防止我的补间播放双重内容?

问题描述 投票:0回答:1

我有一个简单的项目,正在制作一款卡牌战斗游戏。战斗顺序如下:

     repeat

        BattleClient.PlayerAttackTween()
        task.wait(battleSpeed)
        BattleClient.EnemyAttackTween()
        task.wait(battleSpeed)
        battleRound += 1

    until isInBattle.Value == false

我遇到的问题是,如果玩家在完成一场战斗后立即开始另一场战斗,则此循环仍处于

task.wait()
的中间,并且尚未进行
until
检查以打破循环,因此青少年在第二场比赛中打双打。

如何防止这种情况发生?

编辑:视频展示问题

lua repeat roblox tween
1个回答
0
投票

IDK 整个函数/循环,但尝试这个算法

local isBattleActive = false -- new binary flag

function StartBattle()
    if isBattleActive then return end -- battle active :do not start
    isBattleActive = true

    repeat
        BattleClient.PlayerAttackTween()
        task.wait(battleSpeed)
        BattleClient.EnemyAttackTween()
        task.wait(battleSpeed)
        battleRound += 1
    until isInBattle.Value == false
    
    isBattleActive = false -- battle over, reset flag
end
© www.soinside.com 2019 - 2024. All rights reserved.