Grundlage für ein 2D-Spiel

Status
Nicht offen für weitere Antworten.

Nova

Bekanntes Mitglied
Hallo,

Ich habe mich schon etwas durchs Forum gewühlt aber nichts passendes gefunden...


Ich programmiere seit 1 Semester Java an der Uni.
Da es aber keinen "Fortsetzungskurs" gibt (wir haben z.B. graphische Oberflächen nur noch in der letzten Vorlesung angeschnitten) und um in Übung zu bleiben habe ich beschlossen ein Spiel in Java zu programmieren.

Es handelt sich um ein Spiel mit 2 Flugzeugen die rumfliegen und sich gegenseitig bekämpfen (später eventuell mit KI damit man auch alleine spielen kann, Flak-Batterien usw.).

Momentan ist es so gelöst:
Alles spielt sich in einem JFrame ab. Dieses Fenster ist derzeit 1000x600 Pixel groß.
Es gibt eine Matrix (2-dimensionales Array) mit 1000 auf 600 Feldern in denen der "Wert" jedes Pixels gespeichert wird (z.B. 0 heißt leer, 1-1.000 Landschaft, 10.000-19.999 Flugzeug 1 und dessen Geschosse, 20.000-29.999 Flugzeug 2 und dessen Geschosse.
Gesteuert durch einen Timer wird nun z.B. alle 20ms ein neues Bild berechnet, die Flugzeuge und Geschosse werden entfernt (weiß übermalt und Matrix-Wert auf 0 gesetzt) die neue Position berechnet und anhand der Matrix-Werte getestet ob an dieser Position etwas "im Weg" ist (z.B. Flugzeug fliegt gegen die Landschaft) und ggf. darauf reagiert.

Ich könnte auch das komplette Bild löschen und anhand der Matrixwerte neu malen, das habe ich aber aus Performance-Gründen (für jedes Bild müssen alle 600.000 Pixel gemal werden)und weil es geflackert hat aufgegeben.

Wenn ich ein Flugzeug male, berechne ich je nach Flugrichtung die Position jedes einzelnen Pixels (mittlerweile werden aus Performance-Gründen alle 360 Möglichen Richtungen vorab berechnet).
Es hat mich bisher schon ca.70 Stunden gekostet und ich habe 3 mal komplett neu angefangen weil es entweder zu kompliziert wurde oder die Performance zu schlecht war.
Die ersten Versuche hatten >4000 Zeilen Code mit schlechterer Graphik (nur 4x4 Pixel große "Pixel-Kästchen") und waren am Limit des Rechners (750MHz), die aktuelle Version hat momentan "nur" ca.1000 Zeilen Code, ist viel übersichtlicher, besser erweiterbar, zeichnet Pixelgenau und hat nur 1/5 der CPU-Belastung.
Ich habe also schon große Fortschritte gemacht, trotzdem gefällt es mir nicht so richtig.

Momentane Probleme:
- Die Flugzeuge und Geschosse flackern weil sie gelöscht und teilweise auf derselben Position (oder überlappend) neu gemalt werden.
- Ich möchte das "Spielfeld" vergrößern: Splitscreen und die 2 Teile mit z.B. 3000x3000 Pixeln (wobei immer nur 500x600 sichtbar sind) zentrieren sich dann immer auf das Flugzeug. dabei verändert sich aber auch die Landschaft, die Geschosse etc. was bedeuted das ich den ganzen Mist löschen (weiß übermalen) und neu malen muss, und das bei jedem Bild (denn das Flugzeug bewegt sich ja immer und somit durch die Zentrierung auch die Landschaft).


Das muss doch irgendwie einfacher gehen?
Wie würdet ihr das machen?


mfg
Christian
 

Wildcard

Top Contributor
Nova hat gesagt.:
Wenn ich ein Flugzeug male, berechne ich je nach Flugrichtung die Position jedes einzelnen Pixels (mittlerweile werden aus Performance-Gründen alle 360 Möglichen Richtungen vorab berechnet).
Also mindestens das Fleugzeug sollte (alleine der Optik wegen) ein Image sein das du einfach nur drehst.

Nova hat gesagt.:
- Die Flugzeuge und Geschosse flackern weil sie gelöscht und teilweise auf derselben Position (oder überlappend) neu gemalt werden.
Benutzt du auch doubleBuffering?
 

Nova

Bekanntes Mitglied
Hallo,

Wie erstelle ich denn ein solches Image? Darf ja nicht rechteckig sein sondern nur genauso groß wie das Flugzeug.


Wie kann ich denn doubleBuffering verwenden?



mfg
Christian
 

Memphis

Aktives Mitglied
Nova du kannst ein BIld an bestimmten stellen transparent machen sowas geht z.B. mit Photoshop und zu doubleBuffering such es einfach im Forum da findeste schon was!
 

Nova

Bekanntes Mitglied
Hallo,

Wie kann ich denn die Kollisionsabfrage machen wenn ich ein Bild verwende? Momentan wird ja immer ein Wert in die Matrix geschrieben wenn z.B. sich das Flugzeug gerade dort befindet. Wie mache ich das wenn ich ein Bild verwende?

Ich werde mir das mit dem doubleBuffering mal ansehen.


mfg
Christian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Ist dieses Framework als Grundlage geeignet? Spiele- und Multimedia-Programmierung 8
B Server für Spiel aufsetzen, was Shutdown ist Spiele- und Multimedia-Programmierung 3
N Minecraft Frage für einen Minecraft Server Spiele- und Multimedia-Programmierung 2
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
B Deepmind Poker Bot für PokerStars konfigurieren? Spiele- und Multimedia-Programmierung 2
G Minecraft PlayerBot (Listener Thread für jeden Spieler?) Spiele- und Multimedia-Programmierung 3
K Wie bekomme ich eine Transition für alle Objekte zum stoppen? Spiele- und Multimedia-Programmierung 1
E Organisation für Game Spiele- und Multimedia-Programmierung 1
Excess Ballerfisch für Android Spiele- und Multimedia-Programmierung 3
coolian ich brauche irgendeine gui lib für lwjgl2 Spiele- und Multimedia-Programmierung 51
krgewb Anderer Algorithmus für Bounding Box Spiele- und Multimedia-Programmierung 9
MiMa MP3 Dateien für Metadaten abgleichen Spiele- und Multimedia-Programmierung 0
Freshy Bot für Discord Spiele- und Multimedia-Programmierung 61
R Ideen für die Backend-Entwicklung eines Games gesucht Spiele- und Multimedia-Programmierung 8
G Mikrophon-/Audiosteuerung für einen Character Spiele- und Multimedia-Programmierung 1
P Tennis- Spielstand- Zähler für Schule programmieren Spiele- und Multimedia-Programmierung 6
M Logik für ein Quiz Spiele- und Multimedia-Programmierung 7
P Hilfe für Seminar Arbeit Spiele- und Multimedia-Programmierung 9
MiMa Metadaten für Multimedia Daten ermitteln Spiele- und Multimedia-Programmierung 4
G Übungsprogramm für Matheaufgaben Spiele- und Multimedia-Programmierung 1
F Algorithmus für bessere Kollisionsabfragen Spiele- und Multimedia-Programmierung 10
S Bilder Für Schachfiguren Spiele- und Multimedia-Programmierung 14
Timo_neu_in_java Suche etwas einfaches für Anfänger Spiele- und Multimedia-Programmierung 6
I Minecraft Suche Plugin Developer für Minecraft Netzwerk! Spiele- und Multimedia-Programmierung 2
S GUI erstellen für Text Adventure Spiele- und Multimedia-Programmierung 4
S Eigene Klasse vec_t - 3 oder 4 Einheiten für x, y, z und w Spiele- und Multimedia-Programmierung 11
R Vererbbarer GameLoop für Engine Spiele- und Multimedia-Programmierung 14
J Vektor für Gravitation erzeugen Spiele- und Multimedia-Programmierung 34
I Minecraft: Craftingrecipe für Braustand ändern Spiele- und Multimedia-Programmierung 9
Z Minimax-Algorithmus für TicTacToe Spiele- und Multimedia-Programmierung 5
H KI für Spiele Spiele- und Multimedia-Programmierung 1
S Pssende Datenstruktur für ein Netz Spiele- und Multimedia-Programmierung 5
S MouseEvents für Sprites Spiele- und Multimedia-Programmierung 3
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
J mehrere Listener für einen Button / Label Spiele- und Multimedia-Programmierung 1
C Port umleiten: lesen und schreiben für MCServer-Client über Skype Spiele- und Multimedia-Programmierung 0
J Musik Bibliothek für GUI Spiele- und Multimedia-Programmierung 7
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
R Ratschlag für 2D-3D Engine für die Spieleentwicklung gesucht Spiele- und Multimedia-Programmierung 4
Androbin KI für Verfolgung im Raster Spiele- und Multimedia-Programmierung 2
A Bot für Browsergame Spiele- und Multimedia-Programmierung 2
H Tutorials für Fortgeschrittene 3D-Anwedungen Spiele- und Multimedia-Programmierung 2
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
Furtano Vektoren für Bewegung für eine 2D-Simulation Spiele- und Multimedia-Programmierung 3
T Sinusgenerator für eine Hp Spiele- und Multimedia-Programmierung 8
J Menü für Snakespiel in einzelnem JFrame Spiele- und Multimedia-Programmierung 5
M Minecraft weitere Java Entwickler für minecraft projekt gesucht Spiele- und Multimedia-Programmierung 0
Guybrush Threepwood Ketzerische Frage: Opus-Codec für Java Spiele- und Multimedia-Programmierung 14
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Aufbau für 2D Spiele Spiele- und Multimedia-Programmierung 7
L Client für ein Browsergame Spiele- und Multimedia-Programmierung 21
Devil0s Swing Elemente für Inventar? Spiele- und Multimedia-Programmierung 9
Kenan89 Ansatzfrage: Kartenspiel für 2 Spieler Online Spiele- und Multimedia-Programmierung 3
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
P Spielfeld für RPG Spiele- und Multimedia-Programmierung 15
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
S Algorithmus zur Ressourcesuche für die KI Spiele- und Multimedia-Programmierung 5
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
K Einfache Engine für einfaches 3D gesucht Spiele- und Multimedia-Programmierung 10
C KI für Skatspiel - Wie können die Computerspieler eigenständig handeln? Spiele- und Multimedia-Programmierung 10
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
Kenan89 Kleines Projekt für Java Spiele- und Multimedia-Programmierung 5
M Empfehlungen für ein 2D-Jump'n'run Spiele- und Multimedia-Programmierung 4
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
C Wo ist der MP3 Plugin für JMF? Spiele- und Multimedia-Programmierung 3
qwerqer Design Pattern gesucht für Spielregeln Spiele- und Multimedia-Programmierung 2
M Java als Programmiersprache für kommerzielle Spieleentwicklung? Spiele- und Multimedia-Programmierung 3
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
Y Warum Thread für Spieleprogrammierung? Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
Gossi Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele" Spiele- und Multimedia-Programmierung 4
M Minecraft Suche Java Programmierer (für Minecraft) Spiele- und Multimedia-Programmierung 2
Luk10 Tipps für bessere Animationen / Grafik Engine Spiele- und Multimedia-Programmierung 2
T 2D Menü für 3D Spiel Spiele- und Multimedia-Programmierung 5
T Grundlagenwissen für den 3D Raum Spiele- und Multimedia-Programmierung 6
I getSubImage sorgt für starken Performanceeinbruch Spiele- und Multimedia-Programmierung 6
M technologie für video, webcam & co Spiele- und Multimedia-Programmierung 25
C Java für große Spiele geeignet ? Spiele- und Multimedia-Programmierung 101
D Libraryempfehlung für Effekte Spiele- und Multimedia-Programmierung 3
B Spiele programmieren für ein Fenster? Spiele- und Multimedia-Programmierung 14
D Tabelle für Spiel Spiele- und Multimedia-Programmierung 3
N Grundlagen für ein Jump&Run Spiele- und Multimedia-Programmierung 3
S Datenbank gesucht für Bilder(gif-dateien) Spiele- und Multimedia-Programmierung 5
J Suche 3D Programm für jMonkeyEngine Spiele- und Multimedia-Programmierung 5
W 3D-APIs für Java - Eine Übersicht Spiele- und Multimedia-Programmierung 8
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
K Lösungsansätze für ein Spiel Spiele- und Multimedia-Programmierung 2
Plastagen Frameworls für Animationen und co Spiele- und Multimedia-Programmierung 3
aze Wie Transform3D für PosPathInterpolator bestimmen Spiele- und Multimedia-Programmierung 8
M Musik für Spiel wo downloaden? Spiele- und Multimedia-Programmierung 7
R Netzwerkstruktur für ein kleines Spiel Spiele- und Multimedia-Programmierung 8
O KI (künstliche Intelligenz) für Schachlogik Spiele- und Multimedia-Programmierung 4
J Brauche denkanstoß für kleines grafikframework Spiele- und Multimedia-Programmierung 3
A Countdown-Timer für Spiel Spiele- und Multimedia-Programmierung 4
J Tips für ein kleines Pong-Applet Spiele- und Multimedia-Programmierung 4
S Ein Thread für alle Animationen oder mehrere? Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen


Oben