Libgdx,actor中的视口

Libgdx,actor中的视口,libgdx,viewport,actor,Libgdx,Viewport,Actor,是否可以将视口放置在自定义演员内,以便视口宽度和高度将是演员的宽度和高度,渲染将从演员位置开始,而不是从0,0开始。Stage是一个2D场景图。它具有层次结构,这意味着添加到组中的角色应该只在给定组中呈现。移动组也会将所有儿童移动到内部。通过clipBegin和clipEnd,您还可以切断演员之外的所有内容,这也是视口在设置glViewport时所做的 因此,无论您尝试做什么,都可能不需要额外的视口。如果您仍然认为需要,可以创建一个ActorViewPortExtends视口,该视口将获得一个A

是否可以将视口放置在自定义演员内,以便视口宽度和高度将是演员的宽度和高度,渲染将从演员位置开始,而不是从0,0开始。

Stage是一个2D场景图。它具有层次结构,这意味着添加到组中的角色应该只在给定组中呈现。移动组也会将所有儿童移动到内部。通过clipBegin和clipEnd,您还可以切断演员之外的所有内容,这也是视口在设置glViewport时所做的

因此,无论您尝试做什么,都可能不需要额外的视口。如果您仍然认为需要,可以创建一个ActorViewPortExtends视口,该视口将获得一个Actor字段。您必须重写applyboolean方法并同步worldWidth、worldHeight、screenX、screenY、screenWidth和screenHeight变量以匹配参与者。请记住,每次演员改变时,您都必须更新视口,在最坏的情况下,每一帧都是如此。

舞台是一个2D场景图。它具有层次结构,这意味着添加到组中的角色应该只在给定组中呈现。移动组也会将所有儿童移动到内部。通过clipBegin和clipEnd,您还可以切断演员之外的所有内容,这也是视口在设置glViewport时所做的


因此,无论您尝试做什么,都可能不需要额外的视口。如果您仍然认为需要,可以创建一个ActorViewPortExtends视口,该视口将获得一个Actor字段。您必须重写applyboolean方法并同步worldWidth、worldHeight、screenX、screenY、screenWidth和screenHeight变量以匹配参与者。请记住,每次角色更改时,您都必须更新视口,这是在最坏的情况下的每一帧中。

多亏了noone,解决方案非常简单:

public class ActorViewport extends Viewport
{
     private Actor m_actor;

     public ActorViewport(Actor actor, int worldWidth, int worldHeight, Camera camera)
     {
          m_actor = actor;
          setWorldSize(worldWidth, worldHeight);
          setCamera(camera);
     }

     @Override
     public void update(int screenWidth, int screenHeight, boolean centerCamera)
     {
          setScreenPosition((int)m_actor.getX(), (int)m_actor.getY());
          setScreenSize((int)m_actor.getWidth(), (int)m_actor.getHeight());
     }
}

多亏了noone,解决方案非常简单:

public class ActorViewport extends Viewport
{
     private Actor m_actor;

     public ActorViewport(Actor actor, int worldWidth, int worldHeight, Camera camera)
     {
          m_actor = actor;
          setWorldSize(worldWidth, worldHeight);
          setCamera(camera);
     }

     @Override
     public void update(int screenWidth, int screenHeight, boolean centerCamera)
     {
          setScreenPosition((int)m_actor.getX(), (int)m_actor.getY());
          setScreenSize((int)m_actor.getWidth(), (int)m_actor.getHeight());
     }
}

若要支持放大和缩小一个演员(例如,如果我的世界地图是Image类型),是否可以在不使用演员视口的情况下完成此操作?若要支持放大和缩小一个演员(例如,如果我的世界地图是Image类型),是否可以在不使用演员视口的情况下完成此操作?