2D Spiel - Physics

Svens

Mitglied
Hallo zusammen,

ich bin dabei mir ein 2D-Spiel zu programmieren.
Nun möchte ich eine Klasse (Klassenname: "Physik") erstellen, in der Methoden - wie fallen(),springen() - vorkommen, die nicht nur auf den Spieler, sondern auch auf den Gegner anwendbar sein soll.

Nun möchte ich wissen, welche Klasse welche kennen muss und welche ein Objekt davon haben sollte.

Vlt. versteht ihr was ich meine und könnt ihr mir ja weiter helfen.

MfG Svens
 
Zuletzt bearbeitet:

Sogomn

Bekanntes Mitglied
Kommt immer darauf an, was für ein Spiel du machst. Ich glaube, es wäre generell besser, wenn du z.B. eine Klasse "Lebewesen", welche die Methoden beinhaltet, erstellst und davon den Spieler sowie die Gegner ableitest.
 
Zuletzt bearbeitet:

Svens

Mitglied
ich habe gerade nochmal überlegt und ich möchte gerne auch noch objekte (z.B.: Würfel) einbauen, die dann auch die klasse brauchen, in der das mit dem das fallen, durch meine erdanziehungskraft steht.

oder kann/sollte ich ein objekt von physik erstellen, welches ich über meine hauptklasse an spieler,gegner,wuerfel weitergebe? oder wäre das nicht so effektiv?

denn immerhin muss der spieler ja die physik kennen, um sie anzuwenden
 
Zuletzt bearbeitet:

Sogomn

Bekanntes Mitglied
So wie du das beschreibst, würde ich eher ein Inteface "Physik" machen.
extends = "is-a"-Beziehung
implements = "behaves-like"-Beziehung
So als Faustregel.
 
Zuletzt bearbeitet:

Svens

Mitglied
ja gut. aber muss ich ein interface erstellen oder wäre es auch eine option ein objekt von "Physik" zu erstellen? und wenn ja wäre das sinnvoll?
 

Svens

Mitglied
so... habe mich mal "kurz" etwas in interface eingelesen. ein interface hätte für mich jetzt hier ja keinen sinn. alle objekte sollen ja den gleichen methoden-body haben,...ohne... das ich in jeder klasse jedesmal etwas ändern muss.
und extenden wäre hier auch für mich sinnfrei, da man nur eine klasse erben lassen kann.

wäre es dann sinnvoll hier ein objekt der klasse "Physik", mit den methoden (fallen,springen,usw.) an Spieler,Gegner,Wuerfel zu übergeben?
 

Sogomn

Bekanntes Mitglied
da man nur eine klasse erben lassen kann
Das ist nicht richtig, du kannst eine Klasse nur von einer anderen ableiten. Eine Superklasse kann jedoch mehrere Subklassen haben.
Ich würde eine Klasse "BasisObjekt" erstellen, die die Methoden springen, laufen und weitere hat. Von dieser würde ich dann sowohl Gegner und Spieler als auch andere Objekte ableiten.
 
Zuletzt bearbeitet:

Svens

Mitglied
nein. :)
ich habe das anders gemeint als ich geschrieben habe. ;)

man kann zwar mehrere klasse erben lassen, jaja... aber meine klasse "Spieler" kann nur von einer klasse erben.
 

Svens

Mitglied
ich hatte jetzt vor: ein objekt der klasse "physik" zu erstellen und dem übergebe ich dann spieler und welt.
die physik sorgt dann für die schwerkraft und so...

ist ja wie in echt. die physik kennt ja "alles" und kann sie darauf anwenden. der echte mensch muss ja nicht die physik kennen, um fallen zu können.

wäre dies dann auch eine akzeptable und sinnvolle lösung?
 

Sogomn

Bekanntes Mitglied
Funktionieren tut das warscheinlich. Aber das ist viel umständlicher. Warum lässt du die Physik all das machen, wenn der Spieler es auch selbst tun kann? Ich denke, dass Vererbung hier angebrachter ist.
 

Svens

Mitglied
ich will die physik ja nicht nur auf den spieler anwenden, sondern später auch auf gegner und fallende objekte.
soll ich also bestens den spieler von physik extenden lassen?
 

kaoZ

Top Contributor
Inerface erstellen welches die Methoden bereitstellt, abstrackte Basisklasse erstellen welche die Grundform alles sich z.B bewegenden Objekte darstellt, und diese klasse Implementiert dann das Interface.....

Beispiel anhand eines bewegbaren Objektes:

Java:
public interface Moveable{

  void move();
  
}

Java:
abstract class Entity implements Moveable{
 
  @Override
  public void move(){
     // do some moving stuff right here.... or do noting ( hook )
  }
}

du kannst dann auch einfach sagen du implementierst in der Basisklasse garkeine funktionalität (hook) und oder du implementierst die Methode dort erst garnicht , so sorgst du dafür das jede Konkrete Klasse dann ihre eigene Implementierung liefern muss.

Beispiel :

Java:
class Player extends Entity{

 @Override
  public void move(){
   if(left){
       x--;
   }
   else if(right){
      x++;
   }
  }
}

da die Basisklasse hier nun schon das interface implementiert, und die Klasse Player diese erweitert, hat der Player eben vollen zugriff auf die Methoden und Felder ( je nach Zugriffsmodifizierer ) der Elternklasse.

du solltest dich einfach mal voher hinsetzen und schauen wo du welche Abhängigkeiten erzeugen musst, bzw. wo du diese eben vermeiden solltest,

es gibt z.B bewegliche Blöcke die eben nicht Spielbar sind, hier könnte man dann wieder zwischen verschiedenen Spezialisierungen unterscheiden. MoveableEntity's oder auch PlayableCharacters, NPC's usw. usw.

ich will die physik ja nicht nur auf den spieler anwenden, sondern später auch auf gegner und fallende objekte.

Das was du da vorhast ist keine Spieleprogrammierung sondern eher eine Engine, welche sich letzen endes um all diese Dinge kümmert, wie z.B fallen , laufen , springen usw. usw. und dieses ist um einiges komplizierter als erstmal herzugenen und zu sagen das jeweilige Objekt ist selbst für seinen Zustand verantwortlich , im Falle eines Spielers wäre das dann z.B das Springen , der Spieler springt, wie er springt weiß nur der Spieler selbst.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
was genau bewirkt es denn, wenn die klasse "Entity" abstrakt ist?

Zum einen sorgt es dafür das du keine direkten Instanzen dieser Klasse erstellen kannst. ( Anonyme außen vorgenommen )
Zum anderen legst du hier schon fest das es eben eine Abstrakte Definition von irgendetwas gibt.

welchen sinn macht eine abstrakte klasse überhaupt?

Um es nur mal ganz grob anzureißen,

Du hast hier die Möglichkeit Gemeinsamheiten zu definieren, und ggf. existierende Grundfunktionen zur Verfügung zu stellen.

Deshalb habe ich auch Entity als Klassennamen gewählt , sinnbildlich übersetzt steht dieser Begriff im Deutschen nämlich für Ding

Also eine Abstrakte Umschreibung für irgendetwas von dem hier zu dem Zeitpunkt noch keine Definition vorliegt.
Somit könnte eine Entität alles sein , wozu du sie machst, ein Auto , ein Mensch, ein Spieler usw.

Dies hängt dann später von dem Aufbau deiner Vererbungshierarchie und der Implementierung eventueller Interfaces ab.

Somit kannst du eventuelle Funktionalitäten, und oder Attribute ( Member / Instanzvariablen ) bereits definieren auf die dann alle Unterklassen, also Spezialisierungen Zugang erhalten.Man Spricht hier auch von Generalisierung, also wenn du versuchst eine Konkrete Gegebenheit, weiter zu Abstrahieren, du solltest dir dazu wie Joose schon erwähnt hat mal den ein oder anderen Artikel durchlesen.
 
Zuletzt bearbeitet:

Svens

Mitglied
nochmal zu bestätigung frage ich mal ob das so richtig ist:

das interface gibt vor, welche methoden es gibt, die man im player implementier.
die abstrakte klasse "entity" legt weitere methoden fest, die man übernehmen/erben kann.
und der player kann dann die methoden abändern.
 

Joose

Top Contributor
das interface gibt vor, welche methoden es gibt, die man im player implementier.

Genau das Interface gibt dir Methoden, welche implementiert werden MÜSSEN.

die abstrakte klasse "entity" legt weitere methoden fest, die man übernehmen/erben kann.

Abstrakte Klassen können abstrakte Methoden beinhalten, diese abstrakten Methoden sind nicht implementiert.
Diese abstrakte Methoden müssen in der Subklasse mit einer konkreten Implementierung überschrieben werden.
(alle anderen Methoden können, müssen aber nicht überschrieben werden, normales Override)

Fazit: Ein Interface und eine abstrakte Klasse ZWINGEN dich dazu vorgegeben Methoden zu implementieren.
Der Unterschied zwischen den beiden ist das eine abstrakte Klasse wie eine normale Klasse Attribute und Methode enthalten kann, welche eine Basisfunktionalität bereitstellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Server für Spiel aufsetzen, was Shutdown ist Spiele- und Multimedia-Programmierung 3
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
O Texas Hold'em Poker als Online-Spiel mit Freunden Spiele- und Multimedia-Programmierung 5
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
Excess Spiel abzugeben Spiele- und Multimedia-Programmierung 1
I Superhelden - Spiel Spiele- und Multimedia-Programmierung 14
E Hauptmenü und Spiel ???? Spiele- und Multimedia-Programmierung 2
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
R Interaktives Spiel Spiele- und Multimedia-Programmierung 5
L Spiel im Editor testen Spiele- und Multimedia-Programmierung 4
Jackii dispatchUncaughtException in Quiz Spiel mit GUI Layout Spiele- und Multimedia-Programmierung 6
D Textbasiertes Spiel Spiele- und Multimedia-Programmierung 8
K Android Spiel Programmieren Spiele- und Multimedia-Programmierung 6
L BrickBreaker Spiel Spiele- und Multimedia-Programmierung 3
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
E Möchte Spiel Programmieren Spiele- und Multimedia-Programmierung 7
S Connect6 Spiel - Code in ei Spiele- und Multimedia-Programmierung 2
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
G Welten Generierung 2D Spiel Spiele- und Multimedia-Programmierung 4
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
L Coordinate Space JavaFX 2d Spiel Spiele- und Multimedia-Programmierung 0
C Vier Gewinnt Spiel Programmiertipp Spiele- und Multimedia-Programmierung 11
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
K Spiel zum zuordnen von Dienstgraden und Dienstgradabzeichen Spiele- und Multimedia-Programmierung 5
M Textbasiertes Spiel programmieren Spiele- und Multimedia-Programmierung 4
T 2d-Spiel Licht Spiele- und Multimedia-Programmierung 5
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
T Spiel rendern Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
B Fehlerhafte Mob Bewegungen in Tower Defense Spiel Spiele- und Multimedia-Programmierung 2
F Spiel ähnlich wie SimCity/o.ä programmieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Kollisions abfrage bei 3D spiel? Spiele- und Multimedia-Programmierung 12
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
E GUI zum Spiel hinzufügen Spiele- und Multimedia-Programmierung 19
S 2D Spiel "Der Sprung" Spiele- und Multimedia-Programmierung 7
A 2D Spiel ohne Tiles Spiele- und Multimedia-Programmierung 10
V welche vorgehensweise beforzieht ihr bei einfachem Quizz Spiel ? Spiele- und Multimedia-Programmierung 4
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
G Methode sleepen während das Spiel weiterläuft Spiele- und Multimedia-Programmierung 3
T Spiel Überprüfung Spiele- und Multimedia-Programmierung 3
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
J Ascii Spiel Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
O Vollständige Musik in Spiel einbauen (wav - Format) Spiele- und Multimedia-Programmierung 8
Y Quiz Spiel Spiele- und Multimedia-Programmierung 1
J Conways Spiel des Lebens nachprogrammiert Spiele- und Multimedia-Programmierung 1
B Spiel Programmieren, die Anfänge Spiele- und Multimedia-Programmierung 6
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
J Lichtupdate in tile-basiertem Spiel Spiele- und Multimedia-Programmierung 4
P Erstes Spiel (Strategie) Spiele- und Multimedia-Programmierung 31
J Mein erstes Spiel [Spielevorstellung] Spiele- und Multimedia-Programmierung 2
Bananabert Spiel Renderer Images und Strings Spiele- und Multimedia-Programmierung 4
N Spiel Menü error ! Spiele- und Multimedia-Programmierung 5
S Anfangsmenü mit Spiel verknüpfen Spiele- und Multimedia-Programmierung 16
S Spiel ruckelt trotz 50 fps Spiele- und Multimedia-Programmierung 16
D Spiel-Bilddaten auswerten Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
Devil0s Spiel laggt trotz 90 FPS (bei der Anzeige) Spiele- und Multimedia-Programmierung 9
N Webanwendung als eine Art Spiel Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
J wohin mit der Logik des Spiel Spiele- und Multimedia-Programmierung 2
R Experimente mit Quaxlis Spiel Spiele- und Multimedia-Programmierung 12
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
Kenan89 Java 2D Spiel Spiele- und Multimedia-Programmierung 39
M Automaten Spiel Spiele- und Multimedia-Programmierung 27
J Tic tac toe spiel Neustart Spiele- und Multimedia-Programmierung 5
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
S Verbesserungvorschläge Spiel Z Spiele- und Multimedia-Programmierung 31
S Spiel abbrechen Spiele- und Multimedia-Programmierung 3
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
E Spiel neustarten Spiele- und Multimedia-Programmierung 4
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
Gossi Erweiterung von Quaxlis Heli-Spiel Spiele- und Multimedia-Programmierung 16

Ähnliche Java Themen

Neue Themen


Oben