2D Welt, Hashtable

petterapamm

Aktives Mitglied
Hallo allerseits,
ich bin gerade dabei ein kleines 2D-Spiel zu programmieren. Nun weiß ich bei ein Problem nicht wie man es "gut" löst. Also: Wenn ich ein Welt (als Bilder im Hintergrund - vielleicht ist schon dieser Ansatz falsch^^) habe die nur Wiese ist und in der Mitte ist ein Fluss. Wie setzte ich programmiertechnisch sinnvoll um, dass meine Figur (der Spieler) nicht in den Fluss laufen kann. Man könnte den Fluss als extra Bild auf die Wiese tun und dann wenn die Figur mit dem Bild vom Fluss kollidiert die Figur stoppen. Schwer wird es allerdings, wenn der Fluss nicht gerade ist, sondern sich durch die Wiese schlängelt. Ein mögliche Idee wäre es, es so machen, dass wenn die Figur mit einem Teil des Bildes des Flusses kolidiert, der nicht durchsichtig ist, sie stehen bleibt.
Gibt es dafür aber einen sinnvolleren oder "eleganteren Ansatz?
Und eine zweite Frage :):
Ist es möglich sozusagen nicht hundertprozent konkret in einem Hashtable zusuchen? Also nur z.B. 34 als Key reinzugeben und alle Ergebnis zu erhalten, deren Key 34 enthält, auch wenn es den Key 34 konkret nicht gibt. Ich hoffe, ihr versteht was ich meine.

Danke für eure Hilfe
petterapamm
 

Marco13

Top Contributor
Zum ersten: Üblicherweise empfiehlt es sich, Spiellogik und Rendering zu trennen, und zu ersterem gehört eigentlich auch die Kollisionserkennung. Aber gerade bei einem Tile-Based Game verwischen die Grenzen da. Es ist in solchen Fällen zumindest nicht unüblich, so eine Pixelgenaue Kollisionserkennung zu machen, wobei die Farbe des Hintergrundbildes abgefragt wird. Ich glaube, in Quaxlis Tutorial steht dazu auch ein bißchen was.
Zum zweiten: Nein, das geht nicht. Macht auch nicht viel Sinn. Beschreib' mal was du erreichen willst.
 

petterapamm

Aktives Mitglied
Danke schon mal. Wenn solch eine Vorgehensweise bei "Tile-Based Game"s nicht üblich ist, wie geht man dann vor? In Quaxlies Tutorial ist nur die Pixelgenaue Kollisionserkennung beschrieben, aber kein anderer Ansatz.

Ich hatte angefangen ein Wörterbuch Programm zu schreiben auf der Basis der dict-Datenbank und wollte nun den Such-Mechanismus verbessern. Und Hashing wäre wohl zumindest das schnellste gewesen. Naja binary search tuts aufjeden Fall auch.
 

TimoH.

Mitglied
Soweit ich weiß ist in Quaxlies Tutorial die pixelgenaue Kollision und eine ungenauere Variante (diese kommt etwas weiter vorne im Tutorial vor)
 

petterapamm

Aktives Mitglied
Die Ungenaue geht nicht, da der Fluss ja auf keinen Fall rechteckig ist.
Das heißt man sollte die Welt auch über pixelgenauen Kollisionserkennung begrenzen/begehbar/oder nicht begehbar machen?
 

Marco13

Top Contributor
Das zweite klingt ein bißchen wie das, was in http://www.java-forum.org/allgemeine-java-themen/122836-schnelle-listendurchsuche.html besprochen wurde.

Die Alternative zum Pixelgenauen auf Bildern wäre, wenn man z.B. die Form des Flusses als Path2D speichern würde. Das wäre (damit das nicht falsch rüberkommt) auch nicht "ungenauer" als das Pixelbaiserte - im Gegenteil, damit wäre durch die Vektorbasierte Darstellung einiges deutlich einfacher und genauer, wie z.B. ein Zoomen auf der Karte oder so, aber ... evtl. aufwändiger und evtl. weniger effizient, kommt auf den genauen Anwendungsfall an.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
S Hallo Welt Java Basics - Anfänger-Themen 11
J Welt in GameOfLife klonen Java Basics - Anfänger-Themen 9
S Die Welt von Zuul Java Basics - Anfänger-Themen 2
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
A Compiler-Fehler Hallo Welt Fehler Java Basics - Anfänger-Themen 5
T Welt mit while-Schleife umzäunen Java Basics - Anfänger-Themen 27
I Probleme bei der Abstraktion der realen Welt Java Basics - Anfänger-Themen 8
F Komme aus der Delphi-Welt und brauch jetz Java. Java Basics - Anfänger-Themen 5
5 hallo welt als .jar Java Basics - Anfänger-Themen 16
G Hallo Welt Java Basics - Anfänger-Themen 10
A Neuling in der Java Welt Java Basics - Anfänger-Themen 5
S Blutiger Anfänger- "Hallo Welt" unter JBuilder Java Basics - Anfänger-Themen 5
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
B Hashtable Java Basics - Anfänger-Themen 3
H Klassen Auf eine Hashtable aus mehreren Klassen zugreifen Java Basics - Anfänger-Themen 12
arti28 Verkaufsautomat Enumerations HashTable Java Basics - Anfänger-Themen 1
D Hashtable Java Basics - Anfänger-Themen 4
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
T Collections Hashtable gezielt auslesen. Java Basics - Anfänger-Themen 13
B HashTable & Strings übergeben Java Basics - Anfänger-Themen 4
A Input/Output Hashtable Ausgabe Java Basics - Anfänger-Themen 1
P Key anhand von Value finden (Hashtable) Java Basics - Anfänger-Themen 3
S Hashtable Java Basics - Anfänger-Themen 2
T Werte in Hashtable neu zuweisen Java Basics - Anfänger-Themen 3
D Hashtable/Hashmap Java Basics - Anfänger-Themen 2
D In Hashtable suchen Java Basics - Anfänger-Themen 3
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
L Hashtable nicht wirklich geeignet für mein Vorhaben? Java Basics - Anfänger-Themen 3
P | zu einer hashtable hinzufügen Java Basics - Anfänger-Themen 7
D java.lang.outofmemoryerror java heap space bei Hashtable Java Basics - Anfänger-Themen 3
D Hashtable Value(Array) in String und dann Ausgeben Java Basics - Anfänger-Themen 23
S Fortsetzung meiner frage (hashtable) danke vorab an alle Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
D Eine Liste wie ne HashTable, nur mit auslesbaren Key . . . Java Basics - Anfänger-Themen 31
G Hashtable füllen Java Basics - Anfänger-Themen 2
G Gesamte Hashtable ausgeben Java Basics - Anfänger-Themen 3
L Arbeiten mit Vectoren in einer Hashtable Java Basics - Anfänger-Themen 2
A Unterschied zwischen HashMap und Hashtable Java Basics - Anfänger-Themen 20
G Sortierter Hashtable? Java Basics - Anfänger-Themen 3
D Eine abgeänderte Hashtable erstellen Java Basics - Anfänger-Themen 3
K Probleme mit java.util.hashtable Java Basics - Anfänger-Themen 10
G Hashtable -> Ordnerstruktur Java Basics - Anfänger-Themen 10
M Hashtable gleichzeitigen Zugriff verhindern Java Basics - Anfänger-Themen 11
C Problem mit Hashtable Java Basics - Anfänger-Themen 6
M Hashtable an Datenbank schicken Java Basics - Anfänger-Themen 3
F Hashtable mit String[] als value Java Basics - Anfänger-Themen 2
F invertierung einer Hashtable Java Basics - Anfänger-Themen 4
P HashTable auslesen und in createDocument ausgeben Java Basics - Anfänger-Themen 4
T Warum kann Hashtable get Methode nicht funktionieren? Java Basics - Anfänger-Themen 3
N NullPointerException bei meiner Hashtable Java Basics - Anfänger-Themen 2
M Hashtable oder Hashmap mit Inhalt vorbelegen Java Basics - Anfänger-Themen 2
C Hashtable-get Java Basics - Anfänger-Themen 2
K Hashtable mischen (shuffeln)? Java Basics - Anfänger-Themen 4
H Objekte in einer Hashtable am einfachsten sortieren Java Basics - Anfänger-Themen 13
G Hilfe! Wie Kreise in Hashtable ablegen und wieder auslesen? Java Basics - Anfänger-Themen 2
G unterschied hashtable und hashmap? Java Basics - Anfänger-Themen 3
A Hashtable - 3 Suchmöglichkeiten Java Basics - Anfänger-Themen 4
G hashtable und unsafe, unchecked Code Java Basics - Anfänger-Themen 3
L Hashtable Verständnis Frage Java Basics - Anfänger-Themen 4
R Hashtable ohne Values Java Basics - Anfänger-Themen 5
G Hashtable oder was sonst? Java Basics - Anfänger-Themen 8
S Value von ein Hashtable collectionen Java Basics - Anfänger-Themen 3
S Hashtable & Datei Java Basics - Anfänger-Themen 4
W Hashtable Integer als Value Java Basics - Anfänger-Themen 6
S Hashtable probleme Java Basics - Anfänger-Themen 6
N ein array in der hashtable Java Basics - Anfänger-Themen 6
W Hashtable oder was Anderes Java Basics - Anfänger-Themen 8
I Warum ließt er den Inhalt der Hashtable nicht? Java Basics - Anfänger-Themen 5
G die keys einer Hashtable sortieren Java Basics - Anfänger-Themen 15
D Hashtable gibt eigenartiges wieder Java Basics - Anfänger-Themen 2
G hashtable jeden wert mit trim() bearbeiten Java Basics - Anfänger-Themen 3
K Objekte und deren Anzahl speichern, hashtable? Java Basics - Anfänger-Themen 9
P hashtable Java Basics - Anfänger-Themen 8
V Hashtable ausgeben Java Basics - Anfänger-Themen 4
V Suchen und ausgeben - Hashtable Java Basics - Anfänger-Themen 3
J HashTable Java Basics - Anfänger-Themen 4
G Inhalt einer Hashtable ausgeben Java Basics - Anfänger-Themen 2
A Hashtable als Rückgabewert Java Basics - Anfänger-Themen 3
N maximale Anzahl Schlüssel in einem Hashtable Java Basics - Anfänger-Themen 7
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
R Hashtable wird falsch ausgegeben Java Basics - Anfänger-Themen 5
B Hashtable.containsKey Problem Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben