DIM oder TYPE

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Smily

Betreff: DIM oder TYPE

BeitragDo, Apr 28, 2005 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, Ich höre immer, mann soll DIM-Felder statt Types benutzen,
Aber ich weiß einfach nicht warum.
Ich kann ehrlich gesagt mit Types besser umgehen als mit DIM-Feldern.
Wo liegt nun genau der Nachteil?

Suco-X

Betreff: .........

BeitragDo, Apr 28, 2005 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo hörst du diesen Schwachsinn denn immer?
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

SpionAtom

BeitragDo, Apr 28, 2005 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte immer, dass DIM-Felder einen Geshwindigkeitsvorteil hätten. Verbessere mich, wer's besser weiß.

Ein weiterer Vorteil von DIM-Feldern ist, dass man ohne Umstände jedes Element direkt ansteuern kann.
TYPEs kann man bekanntlich ja nur sequentiell ansteuern (es sei denn, man bastelt sich eine HANDLE-Routine, aber das ist ja auch wieder mit Aufwand verbunden.)

Dennoch finde ich, dass es gewisse Einsatzgebiete gibt, in denen TYPEs meine absoluten favourites sind: Wenn die Anzahl der Elemente ungewiss ist und sie sich ständig ändert. Oder wenn man richtige Objekte haben will (nicht ganz wie bei OOP), bei denen man die Eigenschaften sofort erkennt (z.b. Auto\geschwindigkeit#)

Dennoch sollte man nicht komplett auf Arrays verzichten. Es kommt immer auf die Problemstellung an. Idea

Suco-X

Betreff: ........

BeitragDo, Apr 28, 2005 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt ja kaum eine Problemstellung wo man unbedingt auf Types verzichten muss. Und der Geschwindigkeitsverlust gegenüber den Dims wird durch die übersicht wieder wett gemacht. Außerdem hat der Geschwindigkeitsverlust nicht zur folge das ein Programm nurnoch 1-2 FPS hat. Handelt sich ja um minimale Zeiten die auch nicht unbedingt auffallen werden.
Du kannst auch Types direkt ansteuern. Mit Object.Type(id). SIehe Blitzbase Tutorial.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

SpionAtom

BeitragDo, Apr 28, 2005 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann sogar fast sagen: Alles was mit Arrays möglich ist, ist auch mit TYPEs möglich. Umgekehrt ist dies nicht möglich (es sei denn, man hat zu viel Zeit Surprised )

Nehmen wir zum Beispiel ein ganz typisches Array-Beispiel, bei dem niemand auf die Idee kommen würde, das mit TYPEs zu machen.

Dim sinus(3599) ;wenn man genaue Sinuswerte vorberechnen will

Oder zweidimensionale Arrays:

Dim map(breite, hoehe)

Jolinah

BeitragDo, Apr 28, 2005 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs denn mit beidem kombiniert. Dann bleibt ein Type direkt ansprechbar kann aber trotzdem mehrere Felder haben, ohne dass man ein mehrdimensionales Array benötigt.

Code: [AUSKLAPPEN]
Dim bla.typename(20)
bla(0) = new typename
bla(0)\feld1 = 10
 

gamble

BeitragDo, Apr 28, 2005 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
SpionAtom hat Folgendes geschrieben:
Man kann sogar fast sagen: Alles was mit Arrays möglich ist, ist auch mit TYPEs möglich. Umgekehrt ist dies nicht möglich (es sei denn, man hat zu viel Zeit Surprised )

Nehmen wir zum Beispiel ein ganz typisches Array-Beispiel, bei dem niemand auf die Idee kommen würde, das mit TYPEs zu machen.

Dim sinus(3599) ;wenn man genaue Sinuswerte vorberechnen will

Oder zweidimensionale Arrays:

Dim map(breite, hoehe)


Und es gibt Dinge, die niemand mit Arrays machen würde. Es bringt doch nichts zu diskutieren ob Dims oder Types grundsätzlich besser sind. Für diese Situation halt Dims, für die andere halt Types ..

SpionAtom

BeitragDo, Apr 28, 2005 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns geht, ist das natürlich sehr schön. Muss man sagen.

Hubsi

BeitragDo, Apr 28, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt halt immer auf den Einsatzbereich an. Es wäre blödsinnig eine Tilemap z.b. die während des spielens ihre Größe nicht ändert in ein Type-Konstrukt zu speichern, genauso wie es wenig Sinn macht Schüsse in einem Array zu verwalten Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jan_

Ehemaliger Admin

BeitragDo, Apr 28, 2005 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Banks sind Cool, können umdimensioniert werden, und direckt angesprochen, und man bekommt alle datentypen in 1ne Bank. Sind aber so schnell wie Dims.
Aber, den Aufwand mache ich mir auch nur Selten z.B. bei ner Tileengine zu empfehlen. Aber bei vielen nciht lohnens wert, drüber nachzudenken.
between angels and insects
 

Chris02

BeitragDo, Apr 28, 2005 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
@Suco-X
[onlinehilfe(Type)]
DIM-Felder sind einfacher zu benutzen und sollen bevorzugt angewendet werden.
[/onlinehilfe(Type)]
daher wird Smily0412 den "Schwachsin" haben

Suco-X

Betreff: .....

BeitragDo, Apr 28, 2005 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Ich höre immer, mann soll DIM-Felder statt Types benutzen,


Zitat:

DIM-Felder sind einfacher zu benutzen und sollen bevorzugt angewendet werden.



Sind zwei unterschiedliche Aussagen. Du versuchst sie fälschlicherweise unter einen Hut zu bringen. Desweiteren habe ich Smily gefragt, nicht dich.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Smily

BeitragFr, Apr 29, 2005 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat jemand von euch das buch: "Spiele programmieren mit BlitzBasic"?
Dort steht irgendwo ein grundgerüst für einen Spaceshooter.
Also ich versteh da nicht, wieso das da so gemacht hat.
Der hat absolut keine Types benutzt.
Der hat sogar Schüsse und Feinde in Dims gespeichert.

Ach ja: In diesem Buch stande auch dieser Hinweis
  • Zuletzt bearbeitet von Smily am Fr, Apr 29, 2005 11:00, insgesamt 3-mal bearbeitet

SpionAtom

BeitragFr, Apr 29, 2005 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast DIM und Array geschrieben. Diese beschreiben in meinen Augen aber dasselbe. Ich hatte das Buch mal ausgeliehen, weiß aber leider nicht mehr, wie der Code so war. Crying or Very sad

Aber da BlitzBasic ja für Spiele ausgeleget, sollte man auch diese speziellen Befehle benutzen (wie eben TYPE).
Für Schussberechnungen oder Feind-routinen ist es wirklich sehr schön, da man, wenn man gescheit codet, solche Dinge in einer FOR..EACH - Schleife abhandeln kann.

Ich weiß noch, dass ich in QBasic so etwas mit DIM-Feldern gemacht habe, und ich sage dir, dafür braucht man schon etwas Erfahrung. Soll heißen es geht, aber eben nur etwas umständlicher.

Und wenn man begriffen hat, wie TYPEs im Kern funktionieren (nämlich wie lineare doppelt verkettete Listen, falls einem das was sagt), können sie des Programmierers bester Freund sein. Very Happy
  • Zuletzt bearbeitet von SpionAtom am Fr, Apr 29, 2005 11:02, insgesamt einmal bearbeitet

Smily

BeitragFr, Apr 29, 2005 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry mein Fehler, Ich habe das gerade korrigiert.

Jan_

Ehemaliger Admin

BeitragFr, Apr 29, 2005 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily0412 hat Folgendes geschrieben:
Der hat absolut keine Types benutzt.
Der hat sogar Schüsse und Feinde in Dims gespeichert.

Jap, das geht sogar recht gut.
ICh habe ne Particle engine, 3D Shooter, ohne Types gemacht.
Planung ist alles!
between angels and insects

BladeRunner

Moderator

BeitragFr, Apr 29, 2005 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Gehen tut das sicher. Ob man sich nen Gefallen tut ist eine andere Sache. Ich halte Types für das mäachtigste Wekzeug welches BB zur Verfügung stellt. Ich finde es daher auch sehr schade das RM sie in seinem Buch sträflich vernachlässigt, weil "er sie nicht mag".
Die Bücher von RM sind ansonsten ja gut, aber das wichtigste Feature wird halt in Minimalform präsentiert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group