gpt4 book ai didi

java - Libgdx 显示得分并每秒加 1 得分

转载 作者:行者123 更新时间:2023-12-01 17:05:24 26 4
gpt4 key购买 nike

我想每秒将分数增加 1 分,但我很难让它正常工作。

例如

(伪代码):

int score = 0f // on create

updateEverySecond() {
score += 1;
displayScore()
}

我还想知道如何在屏幕顶部居中显示分数。

我的完整源代码:

package com.ryanwarren.dodge.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;

public class libgdxGame extends ApplicationAdapter {

SpriteBatch batch;
Texture player;

Vector2 position;

float time = 0f;

@Override
public void create () {
batch = new SpriteBatch();

player = new Texture(Gdx.files.internal("player.png"));

position = new Vector2((Gdx.graphics.getWidth()/2 - (player.getWidth()/2)),50);
}

@Override
public void dispose() {

}

@Override
public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

if(Gdx.input.isKeyPressed(Keys.W)) {
position.y += 1f;
}
if((Gdx.input.isKeyPressed(Keys.A)) && (position.x > 0)) {
position.x -= 2f;
}
if(Gdx.input.isKeyPressed(Keys.S)) {
position.y -= 1f;
}
if((Gdx.input.isKeyPressed(Keys.D)) && (position.x < Gdx.graphics.getWidth() - player.getWidth())) {
position.x += 2f;
}

if(Gdx.input.isTouched()) {
System.out.println("application clicked");
}

if((Gdx.input.getAccelerometerX() >= 0) && (position.x > 0)) {
position.x -= 2f;
}
else if((Gdx.input.getAccelerometerX() < 0) && (position.x < Gdx.graphics.getWidth() - player.getWidth())) {
position.x += 2f;
}

System.out.println("Rotation: " + Gdx.input.getAccelerometerX());

batch.begin();
batch.draw(player, position.x, position.y);
batch.end();
}

@Override
public void resize(int width, int height) {

}

@Override
public void pause() {

}

@Override
public void resume() {

}
}

最佳答案

float timeState=0f; 

public void render(){
// ............
timeState+=Gdx.graphics.getDeltaTime();
if(timeState>=1f){
// 1 second just passed
timeState=0f; // reset our timer
updateEverySecond(); // call the function that you want
}

关于java - Libgdx 显示得分并每秒加 1 得分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791256/

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