首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在双跳游戏中,郊狼的计时不起作用。(C#,统一)

在双跳游戏中,郊狼的计时不起作用。(C#,统一)
EN

Stack Overflow用户
提问于 2022-02-26 22:38:56
回答 1查看 157关注 0票数 -1

我试着用双跳和土狼的时间来做一个跳台,但是土狼的时间似乎不适用于双跳。每当狼跳被认为是触发,角色使用他们的双跳代替。

代码语言:javascript
复制
if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0 
|| Input.GetKeyDown(KeyCode.Space) && extraJumps > 0
|| Input.GetKeyDown(KeyCode.W) && extraJumps > 0)
{
    rigidbody2D.velocity = Vector2.up * jumpForce;
    extraJumps--;
    audioSource.Play();
}
else if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps == 0 && coyoteCounter > 0f 
|| Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && coyoteCounter > 0f 
|| Input.GetKeyDown(KeyCode.W) && extraJumps == 0 && coyoteCounter > 0f)
{
    rigidbody2D.velocity = Vector2.up * jumpForce;
    audioSource.Play();
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-28 02:49:07

在检查郊狼的时间之前,你正在检查双跳。当您检查第一个代码块时,它总是在检查郊狼时间之前使用双跳。这应该可以解决您的问题:

代码语言:javascript
复制
if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.W))
    {
        // Check coyote timer before we activate a double jump
        if (coyoteCounter > 0f)
        {
            rigidbody2D.velocity = Vector2.up * jumpForce;
            audioSource.Play();
        }
        // Now we have run out of coyoteCounter, time to use double jumps
        else if (extraJumps > 0)
        {
            rigidbody2D.velocity = Vector2.up * jumpForce;
            extraJumps--;
            audioSource.Play();
        }
    }

您还可能希望确保播放机只能触发一次coyoteCounter ;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71280811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档