| |

Visual-Basic EinsteigerNix gegen mein Engine | |  | Autor: Fluffy | Datum: 19.11.02 23:04 |
| Also wenn hier Kritik an meiner wochenlang geproggten 2d engine geübt wird,für die ich 3 Tage DirectDraw studiert habe weil ich wirklich keine Ahnung von dem Scheiss hatte und ein Spiel mit Image und PictureBoxen nicht so das wahre ist, komm ich leider nicht darüber hinaus hier mal teifergehende ausführungen über die funtionsweise meiner engine zu machen
Zuallererst (und das ist bei nem DirectDraw Spiel wohl üblich) brauch ich keine ControllArrays sonder Variablen Arrays(variable(1 to wasweisich).
Weiter im Text: In diesm Spiel (und das ist wohl auch üblich) soll man schiesen können.
Meine Sprite werden alle in einer Funtion erstellt, wobei jedes Sprite eine Description Variable bekommt wo so scheiss wie animationsstufen, kollision, gröse, höhe usw. gespeichert werden. Natürlich wird hier nicht immer eine neue Variable erstellt, sondern sie bekommt halt ein neues Array. Welche Array Zahl benutzt wird wird folgendermasen ermittelt. Bei jedem createsprite vorgang (die funktion die das alles macht) bekommt die variable "index" +1 dazu. So bin ich immer über den aktuellen stand wieviel arrays ich habe informiert.
So. Nun möchte ich Schüsse abschiesen. Das wird folgendermasen gemacht: Ein Sprite wird erstellt wenn man die Feuertaste drückt. Dieses Sprite wandert dann über den Bildschirm, wenn es diesen verlässt wird es zwar gelöscht, die Description(array) variable bleibt aber vorhanden. Nun könnte man sagen: Wieso löscht er dieses Array nicht einfach?
Aber wie soll ich das bewerkstelligen. Bei der MG fliegen an die 20 Sprites über den Bildschirm. Dabei sind die letzten Arrays immer weiter weg vom Rand des Bildschirms als die "älteren". Ich wüsste also nie welche Arrays ich nun löschen soll. Auserdem sind diese (wenn mehrere Leute mit verschiedenen Waffen schiesen) oft über meine ganze Index Variable verstreut ist. (Bsp.: Meine Index Variable ist 400. D.h. das nächste Sprite das erstellt wird bekommt das Array 401, dann 402 usw. Nehmen wir an, ein schusssprite bekommt 402, ein anderer Spieler legt aber bevor dieses sprite den bildschirm verlässt eine Bombe. Dann bekommt diese Bombe Array 403. Wie soll ich denn dann der index variable sagen: Ok, 403 darfst du nicht mehr benutzen, aber 402 ist wieder frei. Die createspritefunction wird einfach das nächste, also 404 nehmen.
Das Ergebniss ist, dass die Index Variable irgendwann 3000 gros ist, davon aber höchsten 50 benutzt werden. Mein Problem ist also nicht, dass ich viele Arrays (eigentlich schon) brauche, sondern ich einfach nicht weis, wie ich diese noch zuordnen soll. Und da kommen wir wieder zu Ausgansfrage: Für wievel Arrays kann ich ne Variable deklarieren? (Also wann bekomm ich nen Overflow)
Für den Rest lass ich mir dann noch was einfallen. Im improvisieren bin ich gut, hab vor 8 Jahren mal batch "programmiert", und da hat man auser der goto und if funktion ja nix.( Dementsprechend sehen auch meine Programme aus, nur von der goto bin ich endlich weggekommen dank den subs)
Oh mann, und ich dachte DirectDraw zu kapieren wär kompliziert...
Moment, da könnte man doch noch mehr Arrays rauskitzeln wenn man ins negative geht oder?? -1000 to 1000. Gleich mal ausprobieren. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|