gpt4 book ai didi

java - 在 libgdx 中绘制一个矩形并增加其长度

转载 作者:行者123 更新时间:2023-11-29 21:10:09 25 4
gpt4 key购买 nike

我是 libgdx 的新手。

这是我所知道的:

我们可以用这个创建一个红色的矩形框:

  shapeRenderer.begin(ShapeType.FilledRectangle);
shapeRenderer.setColor(Color.RED);
shapeRenderer.filledRect(0, 0, 300, 20);
shapeRenderer.end();

我想知道的:

我希望这个矩形在不同的帧之间保持不变。我想要的是创建一个矩形对象,并在每 3 秒左右增加它的长度。

如何简单地做到这一点?据我所知,如果我在渲染的 batch.begin() 和 batch.end() 之间使用这段代码,它会在每一帧中创建一个新框。

最佳答案

您可以在您的主类中创建一个整数实例,例如 shape_length,并通过存储另一个变量使其每 3 秒增加一次,该变量将在其累积增量时间大于或等于 3 秒后设置为 0。

//member functions
private int shape_length = 300;
private float total_time = 0f;

//inside render loop
public void render(float deltaTime){
total_time += deltaTime;
if(total_time >= 3.0f){
//add 1 to length every 3 seconds
shape_length += 1;
total_time = 0.f;
}
shapeRenderer.begin(ShapeType.FilledRectangle);
shapeRenderer.setColor(Color.RED);
shapeRenderer.filledRect(0, 0, shape_length, 20);
shapeRenderer.end();
//fun times here
}

更新:作者想要一种将矩形作为可用类的方法,而不是每帧都不断绘制的东西,所以这里有一个替代解决方案:

可行的方法是创建一个类(例如 RectShape),它可以存储高度、宽度、Vector2 位置等相关信息,然后在您的主类上有一个方法专门渲染您的 RectShape,如下所示:

class RectShape {
private float width;
private float height;
private Vector2 pos;
private Color color;
public RectShape(float w, float h, Vector2 p){
width = w;
height = h;
pos = p;
}

public void increaseLength(){
width += 2.f;
}
//getters: getColor(), getPosition(), getWidth, getHeight()

}

创建一个同时接受 RectShape 对象和 ShapeRenderer 的 drawRectangle 方法

public void drawRectangle(RectShape mainRect, ShapeRenderer renderer){
renderer.begin(ShapeType.FilledRectangle);
renderer.setColor(mainRect.getColor());
renderer.filledRect(mainRect.getPosition().x,mainRect.getPosition().y,mainRect.getWidth(),mainRect.getHeight());

然后,在你的主文件上

//instantiate object
RectShape s = new RectShape(300.f,200.f,new Vector2(3,2));

//render loop
total_time += deltaTime;
if(total_time >= 3.0f){
//add 1 to length every 3 seconds
s.increaseLength();
total_time = 0.f;
}
shapeRenderer.begin();
drawRectangle(s,shapeRenderer);
shapeRenderer.end();

关于java - 在 libgdx 中绘制一个矩形并增加其长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186771/

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