gpt4 book ai didi

java - Libgdx 2d 地板动画

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:13 26 4
gpt4 key购买 nike

我正在构建 runner 游戏。 地面级。

public class Ground extends Actor {

private Texture texture;
private ArrayList<Vector2> groundLocations;
private float speed;
private float cameraLeft, cameraRight;
private int textureWidth;


public Ground() {
this.cameraRight = Const.GAME_WIDTH + Const.GAME_MARGIN;
this.cameraLeft = 0 - Const.GAME_MARGIN;
texture = new Texture(Gdx.files.internal("ui/ground.png"));
groundLocations = new ArrayList<Vector2>();
init();
}

public void setSpeed(float speed) {
this.speed = speed;
}

private void init() {

textureWidth = texture.getWidth();
float currentPosition = cameraLeft;
while (currentPosition < cameraRight) {

Vector2 newLocation = new Vector2(currentPosition, 0);
groundLocations.add(newLocation);
currentPosition += textureWidth;
}

}

public int getFloorHeight() {
return texture.getHeight();
}


@Override
public void act(float delta) {
super.act(delta);
int size = groundLocations.size();

for (int i = 0; i < size; i++) {
Vector2 location = groundLocations.get(i);
location.x -= delta * speed;
if (location.x < cameraLeft) {

location.x = findMax().x + textureWidth;
}
}

}

private Vector2 findMax() {
return Collections.max(groundLocations, new Vector2Comparator());
}


@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
for (Vector2 location : groundLocations) {
batch.draw(texture, location.x, location.y);
}
}




public void dispose() {
if (texture != null)
texture.dispose();
}

}

  • 地面纹理为 128x128

  • GAME_WIDTH = 1024f

  • GAME_MARGIN = 250f

  • 速度=变化。

本地面根据速度和 FPS 移动时。 (速度*增量)问题是:地面纹理之间总是存在间隙。经过一定的运动后函数 findMax 查找具有最大 X 的纹理任何帮助将不胜感激。

更新:图像 Image 1

最佳答案

WOW Simply Solution 不敢相信我没有看到它。

   for (int i = 0; i < size; i++) {
Vector2 location = groundLocations.get(i);
if (location.x < cameraLeft) {

location.x = findMax().x + textureWidth;
}
location.x -= delta * speed;

}

关于java - Libgdx 2d 地板动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776179/

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