首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单人游戏C#定时器(每3秒做一次15秒)

单人游戏C#定时器(每3秒做一次15秒)
EN

Stack Overflow用户
提问于 2019-05-24 21:25:48
回答 5查看 1.7K关注 0票数 1

我正在尝试创建一个计时器,例如,在15秒内每隔3秒执行一个动作。

我尝试使用gameTime.ElapsedGameTime.TotalSeconds和循环,但不幸的是它不起作用。

我有一个Attack ()函数,当敌人攻击它时,它会减少玩家的统计数据。我希望在一个特定的敌人的情况下,这个函数在指定的时间内会减去玩家的生命值,例如每3秒。我想应该是在更新函数中访问gameTime,不幸的是,我不知道该怎么做。

代码语言:javascript
运行
复制
public override Stats Attack()
{        
    attack = true;
    return new Stats(0, -stats.Damage, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
代码语言:javascript
运行
复制
public override void Update(GameTime gameTime)
{
    spriteDirection = Vector2.Zero;                                 // reset input
    Move(Direction);                                                // gets the state of my keyborad

    float deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds; // make movement framerate independant

    spriteDirection *= Speed;                                       // add hero's speed to movement 
    position += (spriteDirection * deltaTime);                      // adding deltaTime to stabilize movement
    totalPosition = new Vector2((int)((BottomBoundingBox.Center.X) / 32.0f), (int)((BottomBoundingBox.Center.Y) / 32.0f));

    base.Update(gameTime);
}
EN

Stack Overflow用户

发布于 2019-06-03 08:38:22

我在我的游戏中使用这个:

代码语言:javascript
运行
复制
Public Async Function DelayTask(Time As Double) As Threading.Tasks.Task
    Await Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(Time))
End Function

已转换为C#:

代码语言:javascript
运行
复制
public async System.Threading.Tasks.Task DelayTask(double Time)
{
    await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(Time));
}

您可以像这样在异步函数中使用它:

代码语言:javascript
运行
复制
Await DelayTask(1.5);

此数字以秒为单位,您可以通过更改TimeSpan.whateverformat来更改此数字。

考虑到你会有各种各样的东西影响你的统计数据,也许你最好在你的stats类中有一个更新子例程,它将检查一个计划在某个时间点之后更新的效果列表。这将比让每个效果依赖于其自己的线程更好地提高性能。

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

https://stackoverflow.com/questions/56293634

复制
相关文章

相似问题

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