[Monkey] Datenfeld definieren und einlesen
Übersicht

BritannyBetreff: Datenfeld definieren und einlesen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie kann ich in Monkey eine zwei,- bzw. drei,- dimensionale Matrix definieren und wie kann ich dann Daten aus einem File in diese einlesen *grübel* Es geht wohl nicht so wie unter BlitBasic bzw. Blitz3D oder?
Das Feld soll Tileinformationen enthalten. Also 16/32 bit Felder mit eine (x,y) bzw. (x,y,z) Matrix. In Blitz3D z.b. ganz einfach Matrix (9,9,9) Aber in Monkey? |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was du brauchst sollte ein Array of Arrays sein.
Hier gibt es eine Beschreibung, wie das geht. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
BritannyBetreff: 2d und 3D Felder in MonkeyX für Iso.Tile-basiertes Spiel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke DAK. Der link hat mich etwas voran gebracht ![]() Code: [AUSKLAPPEN] Import monkey Global myarray:=[New Int[255], New Int[255]] Function Main() Print("start") myarray[0][0] = 20 myarray[240][210] = 15559 Print myarray[0][0] Print myarray[240][210] Print("end") End Bei der Dimensionierung eines 2x2 Feldes funktioniert alles Prima. Aber vergrößere ich das Feld auf 255x255 (bzw. 256x256) gibt der Monkey in HTML5 nur "start" aus. Weiter passiert nichts. ![]() |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pass auf, was du hier hast ist kein Multidimensionales Array sondern ein Array of Array.
Das heißt, du hast ein Array in dem Verweise zu Arrays stehen. Bei dem 2x3 Array hast du ein Array mit 2 Arrays mit je 3 Feldern ([[feld1,feld2,feld3] , [feld1,feld2,feld3]]) Was du da definiert hast ist kein 256x256-Array, sondern ein 2x256-Array. Du musst das Root-Array größer machen und dort 256 Unterarrays einhängen. (Ein Vorteil dieser Methode ist, dass in jeder Zeile eine unterschiedliche Anzahl Felder sein können) Eine Alternative wäre, dass du ein Array mit der Größe höhe*breite machst. Die einzelnen Zellen sprichst du dann mit array[x + breite*y] an. Edit: Habe hier noch eine interessante Visualisierung gefunden, mit der man das Konzept von Arrays of Arrays gut veranschaulichen kann: Code: [AUSKLAPPEN] http://www.pythontutor.com/visualize.html#code=superarray+%3D+%5BNone%5D*4%0A%0Afor+i+in+range(0,4)%3A%0A++++superarray%5Bi%5D+%3D+%5BNone%5D*3%0A%0Asuperarray%5B0%5D%5B2%5D+%3D+%22Hallo+Welt%22%0Aprint(superarray%5B0%5D%5B2%5D)&mode=display&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=2&curInstr=0
(Die URL ist zu lange um sie in ein normales URL-Tag zu tun...) Ist zwar für Python, das Konzept ist aber so ähnlich. [None]*3 erstellt ein Array der Größe 3. Das Programm zeigt ein 4x3 Array of Array. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group