java - 控制字符的持续时间

标签 java libgdx

我的 libgdx 有问题。

我想控制角色位置的持续时间恰好是2秒,2秒后,角色改变位置并再次重复该过程...

这是我的代码:

@Override
public void render(float delta) {

    Gdx.gl.glClearColor(1, 1, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    carte();
    counterTime += Gdx.graphics.getDeltaTime();
    time += delta;
    if(counterTime > 2 ) {// each second ==> one call to position random

        position = new Vector2(this.mari.x, this.mari.y);
        counterTime =0;


        /************* position.x & position.y   is a position random of array(carte)*****************/

        batch.draw(animation.getKeyFrame(time), position.x, position.y, 64, 64);


        animation.setPlayMode(Animation.PlayMode.LOOP);

    }
    batch.end();
}

///and i have been initializ the position in the cerate() methode

有什么想法吗?

最佳答案

试试这个:

@Override
public void render(float delta) {

    Gdx.gl.glClearColor(1, 1, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    carte();
    elapsedTime+= System.currentTimeMilis()-initialTime;
    if(elapsedTime >= 2000) {
        position = new Vector2(this.mari.x, this.mari.y);
        batch.draw(animation.getKeyFrame(time), position.x, position.y, 64, 64);
        animation.setPlayMode(Animation.PlayMode.LOOP);
        elapsedTime=0;
        initialTime=System.currentTimeMilis();

    }
    batch.end();
}
  • 在create() 上创建并初始化initialTime(使用System.currentTimeMilis())。
  • 在 create() 上创建并初始化 elapsedTime(elapsedTime=0)。

如果您有任何问题,请询问:)

编辑:刚刚意识到一些改进(不过我没有编辑代码,让我解释一下):

1) batch 应尽可能少地保持打开状态。 除非 carte() 使用(绘制某些东西)batch,否则我会考虑:

batch.begin();
batch.draw(animation.getKeyFrame(time), position.x, position.y, 64, 64);
batch.end();

(让批处理保持打开状态足以进行绘制)。

2) 而不是:

elapsedTime+= System.currentTimeMilis()-initialTime;
    if(elapsedTime >= 2000) {

您可以使用:(更快一点)

if(System.currentTimeMilis()-initialTime >= 2000) {

关于java - 控制字符的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730601/

相关文章:

Java 流 : filter(). count() 与 anyMatch()

java - 二维字符数组 java 的 "Not a statement"问题

java - 在java swing中同步滚动N个jtables

java - Freemarker 模板中的 JSP 标签

gradle - 使用 Kotlin Sync 配置 Clean LibGDX 项目失败,类型代码无效 :82

Java反射运行时性能

java - 如何管理屏幕

crash - 不幸的是,应用程序已停止工作 libGDX 应用程序

java - Libgdx 设置正交相机

android - 将 LibGDX 添加到现有的 Android Studio 项目中