gpt4 book ai didi

java - 控制字符的持续时间

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

我的 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/

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