LibGDX - Wie generiert man eine Welt (2D) einmalig?

Hallo Leute.

Ich hatte bereits mehrfach wegen LibGDX gefragt, allerdings nie eine richtige Antwort bekommen. Darum erkläre ich es hier kurz einfacher:

Ich bin gerade dabei, ein 2D Spiel in LibGDX, also Java (Eclipse) zu programmieren. Dafür habe ich bereits Blocktexturen erstellt und auf dem Bildschirm generieren lassen.

Das Problem ist aber, dass sich der "GameScreen" ja immer wieder updatet und somit bei einer zufallsgenerierten Welt alles durcheinander fliegt. Ich finde aber auch keine andere Lösung, um dieses Problem selbst zu beheben.

Wenn jemand sich wirklich damit auskennt und bitte auch wirklich NUR Leute, die sich damit auskennen: Wie lässt man etwas nur EINMALIG generieren, also möglichst außerhalb der batch.draw()-Schleife? Bedeutet, die Welt verändert sich nicht mehr, nachdem sie generiert wurde. (Falls Quellcode nötig ist, sollte bei meinen letzten 2 Fragen etwas dabei sein)

Und falls es noch jemand weiß: Wie könnte man eine Welt generieren, die über den Bildschirm hinaus geht bzw. wie generiert man die Welt weiter, wenn man aus dem Bildschirm läuft und die Kamera sozusagen "mitzieht"?

Ich würde mich freuen, wenn wenigstens eins der beiden Probleme gelöst wird, am Liebsten natürlich das Hauptproblem mit dem einmaligen generieren. Wenn jemand antwortet, würde ich auch darum bitten, bei Antworten meinerseits auch zu reagieren und nicht direkt das Thema zu vergessen und als "erledigt" anzusehen.

MfG xSh4kerx

Spiele, programmieren, Java, Eclipse, LibGdx
Java integer Variable soll sich +1 addieren

Hallo. Wie kann ich eine Integer Variable mit sich selbst mit 1 addieren?? Ich will, dass mein Knopf eine 0 anzeigt, welche beim Klicken zu einer 1 wird, beim zweiten klicken zu einer 2, beim dritten zu einer 3 usw usw usw.

Das hier ist meine Variablen-class und bei Zeile 3 kommt der Fehler, dass die Variable doppelt da ist. Genau so geht das aber in Python Batch usw. Es muss also auch in Java gehen.

public final class Variablen{
         public static int nummer(){
          int x = x+1;
         return x;
        } 
}

Hoffentlich kann mir wer helfen. PS: Die Variable wird aus einer anderen Class abgerufen mit folgendem Text:

package de.Leon.java;

import javax.swing.*;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class Fenster extends JFrame

    implements ActionListener{
    
    private JButton  Knobb = new JButton("Drücken");
    private JButton DesIsAuchEnKnobb = new JButton("Zahlen");
    
    public Fenster(){
        
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    Knobb.addActionListener(this);
    DesIsAuchEnKnobb.addActionListener(this);
    
    getContentPane().add(Knobb);
    getContentPane().add(DesIsAuchEnKnobb, BorderLayout.SOUTH);
    
    pack();
    
    setLocationRelativeTo(null);
    
    setVisible(true);
    
    }

    public static void main(String[] args) {
        new Fenster();
    }
    

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource()==Knobb){
            Knobb.setText("Gedrückt");
        }
        if (e.getSource()==DesIsAuchEnKnobb) {
            DesIsAuchEnKnobb.setText("" + Variablen.nummer());
        }
    }
    
}

Ich bin noch am Java lernen und kann also nicht sonderlich viel^^

Ich benutze Eclipse

Anfänger, Fenster, programmieren, Java, Eclipse, Variablen, addieren, Integer
JAVA-Problem: Hexadezimalzahlen umwandeln (Binär, Dezimal)

Hey Leute, ich habe als frischer Informatikstudent ein kleines Problem.

Die Aufgabe lautete: Wenn ich etwas eingebe, beispielsweise eine Dezimalzahl, dann soll dafür die jeweilige Hexadezimal-, Binär- oder Oktalzahl ausgegeben werden. Ein Programm für eine Binär- und Dezimalzahleingabe habe ich schon geschrieben. Diese verschiedenen Eingaben sollen nacheinander funktionieren, d.h. das folgende Programm muss dann nur noch in das Hauptprogramm gebracht werden, was denke ich kein Problem sein wird.

Problem: Eine Hexadezimalzahl kann eine Zahl oder ein Buchstabe sein, deshalb konnte ich für die einzugebende Zahl kein "int" nehmen. Ich habe jedoch keinerlei Ahnung wie ich das Programm dazu bringen kann einen String als int zu sehen... Ich habe deshalb etwas versucht was jedoch aus irgendeinem Grund nicht funktioniert. im Hauptprogramm habe ich Integer.toBinaryString(), Integer.toHexalString etc. verwendet.

Kann mir jemand das Brett vor dem Kopf entfernen? (bzw. den Denkfehler beheben....)

PROGRAMM:

import java.util.Scanner;

public class ZahlensystemHex {

public static void main(String[] args) 
{
     Scanner sc1 = new Scanner(System.in);


     System.out.println("Bitte geben Sie eine Zahl hexadezimal ein");


     String hex = sc1.next(); 


     int hex1 = Integer.parseInt(hex, 16); 
     System.out.println("Dezimal: " + Integer.toString(hex1));
     System.out.println("Binär: " + Integer.toBinaryString(hex1));


     sc1.close();
}

}

Computer, Software, programmieren, Java, Eclipse, Informatik
Eclipse Taschenrechner

Guten Tag ich versuche mit Eclipse Juno einen Taschenrechner zu erstellen bin aber mit meinem jetzigen Javawissen am Ende. Ich programmiere noch nicht lange Kann mir jmd. helfen???

Quellcode:

Start.java:

public class Start {

static Fenster f;

public static void main(String[] args) {

    f=new Fenster("Fensterprogramm",800,600);

}

}

Fenster.java:

import java.awt.Button; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener;

public class Fenster extends Frame implements WindowListener, ActionListener{

Button Ba,Bs,Bm,Bd,Erg;
TextField T1,T2,T3;
Label L0;

public Fenster(String titel, int breite, int hoehe) {

    this.setTitle(titel);
    this.setSize(breite,hoehe);
    this.setLayout(null);

    Ba = new Button("+");
    Ba.setLocation(150,30);
    Ba.setSize(20,20);
    this.add(Ba);

    Bs = new Button("-");
    Bs.setLocation(150,60);
    Bs.setSize(20,20);
    this.add(Bs);

    Bm = new Button("*");
    Bm.setLocation(150,90);
    Bm.setSize(20,20);
    this.add(Bm);

    Bd = new Button(":");
    Bd.setLocation(150,120);
    Bd.setSize(20,20);
    this.add(Bd);

    T1 = new TextField(20);
    T1.setLocation(50,75);
    T1.setSize(75,20);
    this.add(T1);

    T2 = new TextField(20);
    T2.setLocation(195,75);
    T2.setSize(75,20);
    this.add(T2);

    Erg = new Button("=");
    Erg.setLocation(295,75);
    Erg.setSize(20,20);
    this.add(Erg);




    this.addWindowListener(this);
    this.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e1) {
    if (e1.getSource() == Ba) {
        if (e1.getSource() == Erg) {
            System.out.println(Integer.parseInt(T1.getText()) + Integer.parseInt(T2.getText()));
        }
    }

}

@Override
public void windowActivated(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowClosed(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent arg0) {
    System.exit(0);

}

@Override
public void windowDeactivated(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowOpened(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

}

programmieren, Java, Eclipse, Taschenrechner

Meistgelesene Beiträge zum Thema Eclipse