Hallo Blabla37527,
Auch wenn die Antwort jetzt etwas spät kommt, hoffe ich, dass sie vielleicht noch jemand anderem hilft.
Allgemein werden große dreidimensionale Spiele meist mit C++ programmiert, dies ist allerdings auch in anderen Sprachen wie C# oder Java möglich. Als Einstieg für zweidimensionale Spiele empfehle ich dir Java, da Java eine sehr universelle und umfangreiche Programmiersprache ist und dir der Umstieg z.B auf C++ dann relativ einfach fällt (auch wenn ich Java C++ in Spieleprogrammierung vorziehe, aber das ist ja nur meine Meinung).
Für die Grundlagen von Java gibt es etliche Tutorials. Du solltest den Syntax, Schleifen, Arrays etc. schon relativ gut verstanden haben, bevor du anfängst. (Zusätzliche Bibliotheken brauchst du erst direkt bei der Spieleprogrammierung). Als IDE empfehle ich dir bei Java Eclipse. Wenn du dich jetzt durch die Grundlagen durchgearbeitest hast, kannst du mit einfachen Sachen wie Tetris beginnen. Weil man zu solchen Sachen leider viel Blödsinn im Internet finden kann, schreib ich mal hier schnell eine einfache, gut funktionierende Methode auf.
Für 2D Spiele gibt es viele verschiedene Umsetzungsmöglichkeiten. Ich empfehle dir eine nicht sonderlich Leistungsstarke, aber einfach erlernbare Methode: JFrames. Wenn du eine Unterklasse der JFrame Klasse erstellst, kannst du die paint(Graphics g) Methode überschreiben. Mit der Graphics Component kannst du jetzt malen. Eine Beispielklasse mit einem Buffer (Das ist das Graphics Objekt Attribut; Ich male auf dem und verlinke es mit einem Bild, welches ich dann auf das eigentliche Graphics Objekt male. Das verhindert, dass der Bildschirm flackert) könnte so aussehen:
import javax.swing.*;
import java.awt.*;
public class Canvas extends JFrame{
private Graphics g;
private Image image_buffer;
public Canvas(){
//Aufrufen des Konstruktors der Superklasse
super("JFrame Example");
//Über die Klasse Toolkit wird die Bildschirmgröße ermittelt
int screensizex = Toolkit.getDefaultToolkit().getScreenSize().width;
int screensizey = Toolkit.getDefaultToolkit().getScreenSize().height;
//setBounds(int x, int y, int width, int height) setzt die Position und Größe des JFrames
setBounds(screensizex/4, screensizey/4, screensizex/2, screensizey/2);
//setVisible(true) macht das Fenster sichtbar
setVisible(true);
//über die Funktion createImage(int width, int height) wird nun ein neues Image mit Fenstergöße erzeugt
image_buffer = createImage(getWidth(), getHeight());
//wir erstellen unsere Graphics Component mit Hilfe des Images. Diese sind nun miteinander verlinkt
g = image_buffer.getGraphics();
}
public void paint(Graphics graphic){
//Hier wird das Image, das alle Informationen unserer Graphic Component enthällt, auf die JFrame gemalt
graphic.drawImage(image_buffer, 0, 0, getWidth(), getHeight(), this);
}
//das ist eine Beispielmethode. Man kann nun in der Klasse über g Sachen zeichnen lassen, die nach dem repaint() Aufruf angezeigt werden.
public void drawSomething(){
g.setColor(Color.blue);
g.fillRect(50, 80, 20, 60);
repaint();
}
}
Weitere Methoden für die Graphics Component lassen sich im Internet finden.
Ich hoffe ich konnte helfen.
Mit freundlichen Grüßen
David Schwarzbeck