DIM oder TYPE
Übersicht

![]() |
SmilyBetreff: DIM oder TYPE |
![]() Antworten mit Zitat ![]() |
---|---|---|
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-XBetreff: ......... |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
![]() |
Suco-XBetreff: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenns geht, ist das natürlich sehr schön. Muss man sagen. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Suco-X
[onlinehilfe(Type)] DIM-Felder sind einfacher zu benutzen und sollen bevorzugt angewendet werden. [/onlinehilfe(Type)] daher wird Smily0412 den "Schwachsin" haben |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() 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. ![]() |
||
- Zuletzt bearbeitet von SpionAtom am Fr, Apr 29, 2005 11:02, insgesamt einmal bearbeitet
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry mein Fehler, Ich habe das gerade korrigiert. | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group