2- oder 3-dimensionales Datenfeld
Übersicht BlitzBasic Allgemein
AbstauberBetreff: 2- oder 3-dimensionales Datenfeld |
Mo, Mai 07, 2012 14:29 Antworten mit Zitat |
|
---|---|---|
Hallo zusammen,
ich habe ein Feld A mit 32 mal 32 Kacheln und ein darüberliegendes Feld B mit 64 mal 64 Kacheln. Beide Felder haben eine gleich große Gesamtfläche. Legt man also Feld B über Feld A, besteht jede Kachel von Feld A aus vier Feld-B-Kacheln (umständlich formuliert, tut mir leid). Wie würdet ihr die Daten verarbeiten - in mehreren (zweidimensionalen?) Datenfeldern oder in einem dreidimensionalen Datenfeld? Könnt ihr mir mit eurer reichlichen Erfahrung einen Tipp geben, was übersichtlicher und/oder speicherschonender ist? Danke. |
||
XeresModerator |
Mo, Mai 07, 2012 14:57 Antworten mit Zitat |
|
---|---|---|
2x 2D Felder scheinen mir am sinnigsten zu sein, sonst ist eine Ebene 4x größer, als du sie benötigst. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
SpionAtom |
Mo, Mai 07, 2012 16:21 Antworten mit Zitat |
|
---|---|---|
Wenn die kleinen Kacheln untrennbar an die großen Kacheln gebunden sind, kannst du auch ein 2D-Array für das 32x32 Feld machen, und diesem vier Attribute geben. Das wäre mit einer Mischung aus Array und Type zu realisieren. Das macht es recht einfach zu jeder großen Kachel seine vier kleinen Kacheln zu finden. Es macht allerdings das iterieren über das 64x64-Feld schwieriger.
Ich denke am einfachsten ist es wirklich, wenn man zwei 2D-Arrays erstellt. Die Umrechnung von den großen Arraykoordinaten zu den kleinen (und umgekehrt) sollte auch nicht zu schwer sein (wenn das überhaupt gewünscht ist). Wie so oft kommt es in der Programmierung aufs Detail an. Was genau hast du vor? Worauf kommt es dir an? |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Abstauber |
Mo, Mai 07, 2012 16:31 Antworten mit Zitat |
|
---|---|---|
Danke, Xeres! Dann werde ich es mit zwei Datenfeldern versuchen.
Wenn ich mich gerade nicht zu dusselig anstelle, brauche ich den jeweils vier Kacheln ja nur zu sagen, zu welcher großen Kachel sie gehören, sprich angehängte Types zu erstellen, gell? Edit: Auch dir vielen Dank, SpionAtom. Ich lag also richtig. Aber ich präzisiere gerne noch mal, was ich vorhabe: Auf jeder großen Kachel werden bis zu vier Objekte positioniert - links oben, rechts oben, links unten, rechts unten. Jedes der vier Objekte hat die gleichen Einträge, nur deren Werte sind verschieden. Die jeweils vier Feld-B-Kacheln müssen also wissen, zu welcher Feld-A-Kachel sie gehören. |
||
SpionAtom |
Mo, Mai 07, 2012 16:55 Antworten mit Zitat |
|
---|---|---|
Umrechnen ist easy:
Code: [AUSKLAPPEN] Graphics 640, 640, 0, 2
SetBuffer BackBuffer() Repeat mouse_x = MouseX() mouse_y = MouseY() ;Koordinaten vom 64x64 Feld A_x = mouse_x / 10 A_y = mouse_y / 10 ;Koordinaten vom 32x32 Feld lassen sich aus den anderen Koordinaten leicht berechnen B_x = A_x / 2 B_y = A_y / 2 Cls Color 63, 63, 63 For x = 1 To 63 Rect 0, 10 * x, 640, 1 Rect 10 * x, 0, 1, 640 Next Color 150, 150, 150 For x = 1 To 31 Rect 0, 20 * x, 640, 1 Rect 20 * x, 0, 1, 640 Next Color 255, 255, 255 Text 0, 0, "Mausposition: " + mouse_x + ", " + mouse_x Text 0, 16, "64x64 Array: " + A_x + ", " + A_y Text 0, 32, "32x32 Array: " + B_x + ", " + B_y Flip() Until KeyDown(1) End |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Abstauber |
Mo, Mai 07, 2012 19:10 Antworten mit Zitat |
|
---|---|---|
Argh... Ja, das Umrechnen ist einfach. Danke für den Vorschlaghammer. Dann kann ich mich ja dank eurer ausgezeichneten Hillfe ans Werk machen. | ||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group