gpt4 book ai didi

java - 对在 libgdx 中实现渲染方法的不同方法的疑问

转载 作者:行者123 更新时间:2023-12-01 09:48:43 25 4
gpt4 key购买 nike

最近,我决定制作一款新游戏,并将这个机会交给 libgdx 框架。很久以前,我曾经在Slick2D中制作过一些游戏,我记得他们在更新(delta)和draw()对象方面的方法是不同的,然后现在在libgdx中只有渲染(delta)。所以我想到了一个想法,抽象游戏,并制作我自己的类游戏和带有更新和绘制的屏幕。但是,现在我对渲染方法的参数增量有疑问。在互联网上观看一些有关 libgdx 实现概念更新和绘制的示例,人们将 delta 参数从渲染方法传递到更新和绘制方法。根据这个描述,我的问题是:

  1. 可以实现更新和绘制方法的概念吗?
  2. 我应该将增量参数传递给绘制方法吗?
  3. 如果在 update(delta) 方法中我进行计算,draw 方法中 delta 参数的目的或用例是什么?

最佳答案

  1. 是的,separate concerns 通常是个好主意。如果您的游戏循环仅存在更新游戏逻辑和绘制游戏状态,那么这些方法会很好。当您的游戏不断发展时,您可能需要添加额外的步骤(例如多个渲染 channel 、同步多人游戏等)。
  2. 您通常只在更新游戏逻辑时需要增量时间,而不是在渲染游戏逻辑时需要增量时间。但如果您确实需要它,那么可以将它作为参数传递。
  3. 距离上次调用 render 方法的时间(以秒为单位)。您可以使用它以与帧速率无关的方式更新游戏逻辑。例如。 calculate你的角色的正确位置,correct frame animation的等等

请注意,仅按原样获取增量时间可能会导致例如传送在小路上并且不是离散的。因此,限制该值通常是一个好主意(例如 delta = Math.min(delta, 1/30f); )。使用 fixed time step当您需要离散的游戏逻辑时经常使用。

关于java - 对在 libgdx 中实现渲染方法的不同方法的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com