作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一款游戏,当你完成一个关卡时,你可以获得 25 金币。我想要的是它可以堆叠,所以如果我再次玩并赚取 25 金币,我现在将拥有 50 金币。我有这个,但无法叠加,游戏只记住当前游戏的 25 金币:
public static void addgold(int value){
gold += value;
gLabel.setText(String.format("%01d", gold));
prefs.getInteger("gold", 0);
prefs.putInteger("goldCoin", gold);
prefs.flush();
}
我想我应该写这样的内容:
goldCoin + gold
金币是我总共赚取的,金币是我从当前游戏中获得的。
,
这是所有代码:
public class Hud2 implements Disposable {
private Hud2 hud;
public Stage stage;
private boolean timeUp;
private Viewport viewport;
private Integer worldTimer;
private float timeCount;
private static Integer score;
private static Integer gold;
private boolean keyPressed = false;
private Runner player;
private static RunningGame game;
private TweenManager tweenManager;
public Box2DDebugRenderer b2dr;
private static Label scoreLabel;
private static Label timeLabel;
private static Label gLabel;
private Label levelLabel;
private Label worldLabel;
private Label runLabel;
private Label countdownLabel;
private Label objectiveLabel;
private static int hScore;
private static int gCoin;
private static Preferences prefs;
public Hud2(SpriteBatch sb) {
worldTimer = 10;
timeCount = 0;
score = 0;
gold = 0;
viewport = new FitViewport(RunningGame.V_WIDTH, RunningGame.V_HEIGHT, new OrthographicCamera());
stage = new Stage(viewport, sb);
Table table = new Table();
table.top();
table.setFillParent(true);
prefs = Gdx.app.getPreferences("PreferenceName");
hScore = prefs.getInteger("highScore", 0);
//prefs.putInteger("highScore", 0);
prefs = Gdx.app.getPreferences("PreferenceGold");
gCoin = prefs.getInteger("goldCoin", 0);
//prefs.putInteger("goldCoin", 0);
countdownLabel = new Label(String.format("%01d", worldTimer), new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
scoreLabel = new Label((String.format("%01d", score)), new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
gLabel = new Label((String.format("%01d", gCoin)), new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
timeLabel = new Label((String.format("%01d", hScore)), new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
levelLabel = new Label("", new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
worldLabel = new Label("Level 2", new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
runLabel = new Label("You won!", new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.RED));
objectiveLabel = new Label("Objective: 60", new Label.LabelStyle(new BitmapFont(), com.badlogic.gdx.graphics.Color.WHITE));
table.add(worldLabel).expandX().padTop(10);
table.add(gLabel).expandX().padTop(10);
table.add(countdownLabel).expandX().padTop(10);
table.row();
table.add(timeLabel).expandX().padTop(10);
table.add(levelLabel).expandX();
table.row();
table.add(timeLabel).expandX();
table.add(scoreLabel).expandX();
table.add(objectiveLabel).expandX().padTop(10);
stage.addActor(table);
}
public void update(float dt) {
if (score < 1) {
return;
}
timeCount += dt;
if (timeCount >= 1) {
if (worldTimer > 0) {
worldTimer--;
} else {
timeUp = true;
}
countdownLabel.setText(String.format("%03d", worldTimer));
timeCount = 0;
}
Table table = new Table();
table.top();
table.setFillParent(true);
if (worldTimer == 0)
if (score >= 60) {
Hud2.addgold(25);
table.add(runLabel).expandX().padTop(10);
((Game) Gdx.app.getApplicationListener()).setScreen(new com.mygdx.game.Level2.WinScreen2(game));
stage.addActor(table);
}
else if (score <= 59)
((Game) Gdx.app.getApplicationListener()).setScreen(new com.mygdx.game.Level2.GameOverScreen2(game));
}
public static void addscore(int value){
score += value;
scoreLabel.setText(String.format("%01d", score));
prefs.getInteger("score", 0);
if (score > hScore) {
prefs.putInteger("highScore", score);
}
prefs.flush();
}
public static void addgold(int value){
gold += value;
gLabel.setText(String.format("%01d", gold));
prefs.getInteger("gold", 0);
prefs.putInteger("goldCoin", gold);
prefs.flush();
}
最佳答案
问题似乎是您有两个黄金变量:
私有(private)静态整数黄金;
private static int gCoin;
您的 addGold()
方法会更新 gold
,但不会更新 gCoin,但您的偏好设置会从 gCoin = prefs 获取
gCoin
的值。 getInteger("goldCoin", 0);
关于java - LibGDX 如何在已有值(value)的基础上增加值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230165/
我创建的 MySQL 备份文件是使用 --all-databases 转储的,并且其中包含“CREATE DATABASE IF NOT EXISTS”语句。 我现在有一个全新的 MySQL 实例,我
paragraph
添加到 div 中,但如果该 div 已有 2 个段落,则创建一个新 div我有一个 div .content,里面有两个 div (.content-1, .content-2)。 在 .content 内的 div 中,我只想最多有两个段落。 因此,当我单击“添加”按钮时
我是一名优秀的程序员,十分优秀!