Array von Types?
Übersicht

RafiBetreff: Array von Types? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hab heute den ganzen Tag überlegt wie ich es machen kann. Ich habe ca. 800 Tiles und möchte die für einen Editor verwenden. Bisher habe ich diese in einem TImage-Array gespeichert, allerdings möchte ich mehr Informationen dazu haben, z.b. ob es eine Animation ist, aus wievielen Bilder sie besteht, wo sie gemalt werden soll. Natürlich würde ich am auch die weiteren Bilder einer Animation gerne in dem Type speichern. das funkt nicht: Global Tilearray:TTiletype[800] Type TTiletype field x:int, y:int field anzahlframes:int field image:TImage[anzahlframes] 'etc... End Type Wie macht man es am besten? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] SuperStrict ' Muss zu oberst stehen Type TTile ... End Type const numTiles:int = 800 global Tiles:TTile[numTiles] for local i:int = 0 to numTiles-1 Tiles[i] = new TTile next Array erzeugen erzeugt keine Objekte im Array, es reserviert nur den Speicher für die Type Referenzen. Falls du neu sein solltest, so ist der Sticky Thread ganz oben in diesem Board sowie "FAQ & Tutorials" hier in der Blitz Max Kategorie sehr ans Herz zu legen, denn BM verhält sich elementar anders als die alten Blitz, es nutz von daher nur bedingt, wenn du da drin Erfahrung hast (C# und Java bringen dir mehr). |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Do, Jan 04, 2007 22:23, insgesamt einmal bearbeitet
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch, man kann Arrays auch von Objekten erzeugen.
Bei dir wird wohl irgendwo anders ein Fehler sein. Wenn es eine konstante Anzahl an Tiles ist, ist ein Array ok, bei einer Variablen (während der Laufzeit) wäre eher eine TList zu empfehlen. |
||
Rafi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für eure Antworten! Ich hab das schon versucht und jetzt erstmal bei Seite gelegt, weil es nicht funktioniert. | ||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Is doch logo warum das net geht.
anzahlimages ist von anfang an auf 0. Also erstellt du ein Array mit einer Größe von 0. Dafür musst du das Array nachher Resizen. (array = array[..NEUE_GRÖSSE]) |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
AraneA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht das nicht über:
Code: [AUSKLAPPEN] Type TTile
Field frame:int Method Set( f ) frame = f End Method End Type Global map:TTile[ 0, 0 ] Function CreateMap() map = New TTile[ 100, 100 ] For x = 0 to 99 For y = 0 to 99 map[ x, y ] = New TTile map[ x, y ] = TTile.Set( irgendein Frame ) Next Next End Function Da werden dann zwar einmal umsonst n paar Instanzen erstellt, aber da ja nix auf die zeigt werden die doch eh wieder gelöscht... Und beim Map-Neu-laden kommt es doch nicht unbedingt drauf an oder? Oder mach ich da nen Denkfehler? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group