Oyunum var ve bir seviyeyi tamamladığınızda 25 altın kazanırsın. İstediğim şey, tekrar oynayabiliyor ve 25 altın kazanacak olursam 50 altın alabileceğim.LibGDX Varolan değere nasıl değer ekleyebilirim?
public static void addgold(int value){
gold += value;
gLabel.setText(String.format("%01d", gold));
prefs.getInteger("gold", 0);
prefs.putInteger("goldCoin", gold);
prefs.flush();
}
ben gibi bir şey yazmak gerektiğini düşünüyorum:
goldCoin + gold
goldCoin kazandığım ne olduğunu bende bu var ama yığını edemez, oyun yalnızca geçerli oyun 25 altın hatırlamak Mevcut oyundan aldığım toplam ve altın.
, İştetüm kod geçerli:
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();
}
Altın Nedir? – Gendarme
altın 0'dır ve bir seviyeyi tamamladığınızda 25 altın alırsınız. – Filip
Bize daha fazla kod göstermeniz gerekiyor. Kodu sadece programınızın bir yönteminin arkasında sağladınız. Tüm sınıfı gösterin ve çok fazla ise gereksiz tüm yöntemleri ve alanları kaldırın. – Gendarme