space invaders
Übersicht

N8mareBetreff: space invaders |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bin momentan am rumfummeln wie ich mehr als einen schuss darstellen kann , wär gut wenn mir jemand dabei helfen könnte , icq : 217894513
danke schonma |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Types | ||
between angels and insects |
gamble |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Würde auch mit Dims gehen (siehe Renés Buch), Types sind aber um einiges eleganter. | ||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber Dim Felder sind schneller, und einfacher vor allem für Anfänger.
(wenn auch nicht ganz so flexibel) |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ebola33 hat Folgendes geschrieben: Aber Dim Felder sind schneller
ich werd alt... bei arrays gehst du jedes mal das ganze array durch, und schaust, ob ein schuss aktiv ist. das ist wesentlich langsamer als tiles, wenn du mich fragst. |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würd auch Types nehmen!
Wenn man das einmal drauf hat, sind die Dinger äußerst praktisch ![]() wie soll das mit Dim-Feldern gehn? kann ich mir ni vorstellen! ![]() |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
ZhangHe2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
finde s mit dim umständlicher und ist auch eher für statische Sachen ,
und so schwer sind Types auch nicht , lernt man schnell MfG Zhang |
||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei types gehst du auch jedesmal durch.
Ok, schneller werden die erst wenn es sich um mehr als tausend objekte handelt. da merkt man dann den Unterschied. Da Types halt dynamisch sind. Na mensch.... man hat für den schuss x und y koordinate. dim schuss(Max_Schuss_Anzahl,1) ; 0=x, 1=y for i=0 to Max_Schuss_Anzahl schuss(i,0)=schuss(i,0)+1 ; horizontal drawimage schussgrafik schuss(i,0),schuss(i,1) next Wo ist das Problem ? edit : Aber ist wohl Geschmacksache, kommt auch auf den Verwendungszweck an. |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
geht schon, und ja sie sind sogar, wenn man sie durchgehen muss schneller. | ||
between angels and insects |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ebola33 hat Folgendes geschrieben: Bei types gehst du auch jedesmal durch. Sicher, aber was ist wenn Du 100 mögliche Schüsse haben willst und arbeitest mit Dim? Nehmen wir weiter an Du hast gerade 10 Schüsse rumflitzen. Jetzt ackert die Schleife 100 Einträge durch und prüft ob der Schuss überhaupt aktiv ist.
Mit Types gehe ich dabei nur zehn Einträge durch und prüfe nichts weiter und habe ganz nebenbei die Möglichkeit so viel oder wenig Schüsse anzulegen wie der Ram verkraftet ![]() Ich gehe jetzt erstmal biken, abends schreib ich noch einen Speedvergleich, mit 10 und 100 Einträgen, bin selbst schon gespannt auf das Ergebniss ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da hast du recht hubsi, man muss halt abschätzen für welchen Verwendungszweck.
Ich gebe mich geschlagen ![]() Aber vom Prinziep her sind Types langsamer, weil sie ja mit jedem neuen bzw. gelöschten eintrag neu dimensioniert werden müssen. ![]() Edit : nur der nackte Zugriff ist langsamer, Okay So steht es sogar in der Bibel ![]() Nach Möglichkeit sollen statt Type-Felder normale Dim-Felder benutzt werden. Die einfachen Felder sind 100% schneller - zudem kann ein Zugriff sofort erfolgen - dies bringt nochmals mehr Speed. |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
- Zuletzt bearbeitet von Ebola33 am Di, Jan 11, 2005 17:30, insgesamt einmal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Brrr, ist doch kalt ![]() Type test
Ich hab hier 14, 0, 7. Ich hätte nie gedacht das ein einfaches if, welches noch nicht einmal zutrifft, doch so relativ viel Zeit verschlingt (ist mir so nebenher aufgefallen). End Type Dim test(9999) For a=1 To 1000 ; 1000 Einträge anlegen t.test=New test Next time=MilliSecs() ; Array-Zeit messen For a=0 To 9999 If test(a) irgendwas=toll Next Print "Array 10000: "+(MilliSecs()-time) time=MilliSecs() ; Type-Zeit mit 1000 Einträgen messen For t.test=Each test Next Print "Type mit 1000 Einträgen: "+(MilliSecs()-time) Delete Each test ; Alle Einträge löschen For a=1 To 10000 ; 10000 Einträge anlegen t.test=New test Next time=MilliSecs() For t.test= Each test ; Type-Zeit mit Vollauslastung messen Next Print "Type mit 10000 Einträgen: "+(MilliSecs()-time) WaitKey() End ![]() Edit: Natürlich ist es bei einer konstanten Datenmenge (wie z.B. einer Map) immer besser mit Arrays zu arbeiten, da sie in der Handhabung die Möglichkeit des direkten Zugriffs offen halten ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Type test
End Type Dim test(999999) For a=1 To 999999 ; 1000 Einträge anlegen t.test=New test Next time=MilliSecs() ; Array-Zeit messen For a=0 To 999999 If test(a) =100 Then EndIf Next Print "Array 10000: "+(MilliSecs()-time) time=MilliSecs() ; Type-Zeit mit 1000 Einträgen messen For t.test=Each test Next Print "Type mit 1000 Einträgen: "+(MilliSecs()-time) Delete Each test ; Alle Einträge löschen For a=1 To 999999 ; 10000 Einträge anlegen t.test=New test Next time=MilliSecs() For t.test= Each test ; Type-Zeit mit Vollauslastung messen Next Print "Type mit 10000 Einträgen: "+(MilliSecs()-time) WaitKey() End Probier mal das, ich habe da 4,34,32.... Was sagst du nun ? ![]() |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, ich bin überrascht ![]() Beides je 1000000 Einträge Debug: Array 1406, Type 812 ohne Debug: Array 15, Type 96 Es scheint so als ob die Debugfunktion massiven Einfluss auf Arrays hat (ich hatte beim vorherigen Test auch den Debug an). Ich muss mich bei Dir entschuldigen, da habe ich unbewusst Quatsch erzählt ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja ist mir auch aufgefallen | ||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Macht ja nix 8)
Hab's ausprobiert, kannst noch 10 if then bedingungen mehr reinschreiben und ist trotzdem noch schneller.... ![]() |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich bezweifle, dass bei einem Space Invaders Remake dieser Geschwindigkeitsunterschied ins Gewicht fallen würde. ![]() Code: [AUSKLAPPEN] Type schuss
Field x,y,sx#,sy#,winkel,id End Type feddisch... |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Geschwindigkeitsunterschiede sind natürlich so gering, dass das bei solchen Fällen nicht unbedingt ausschlaggebend ist.
Hätte Ebola aber bei 1000 Typeeinträgen auch wirklich 1000 genommen und nicht 999999(also ebenfalls Volllast) dann sähe das Ergebnis so aus(also 1000 Spielobjekte vorhanden, 999999 möglich): 5 0 bis 1 41 Nur damit Hubsi die Welt wieder versteht ![]() Generell empfiehlt es sich für Objekte(Spielobjekte, Partikel, etc) Types zu nehmen und für Mapdaten oder Lookup-Tabellen, wo ein Indexzugriff benötigt wird, DIM... Die Schüsse lassen sich einfacher per Type realisieren(siehe Travis). |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich sag' ja, ist wohl auch Geschmacksache. Möglich ist mit beiden Varianten Alles. Wobei es vor und Nachteile gibt. Ich habe mit normalen arrays programmieren gelernt, so benutze ich sie auch heute noch. Nur die Syntax hat sich ein wenig geändert.
Vielleicht war ich nicht besonders objektiv als ich dazu geraten habe ![]() Denn für die paar Schüsse lohnt sich der Aufwand nicht(wie Travis schon sagt) Aber es ging ja auch um die Geschwindigkeit ![]() |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group