Problem mit Types (BB+)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

JPD

Betreff: Problem mit Types (BB+)

BeitragDo, Dez 21, 2006 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich hänge mal wieder an einem für mich unlösbaren Problem, habe in Foren dazu nichts gefunden.

Also: Ich habe nen kleinen Weltraumshooter der sich von rechts nach Links über den Monitor bewegt. Meine Tiles wurden mit DIM-Feldern programmiert. Nun hänge ich an der einen logischen Frage: "Wie komme ich an die Items (Type) ran, von Position x - y, also der Bildschirmausschnitt"

Am liebsten würde ich sagen, "Hey, gib mir alle Arrays aus, die X > 640 und X < 1280 sind" Ein Versuch mit einer For-each Schleife geht zwar, aber ist nicht wirklich schnell und lahmt den Rechner zu, mit OBJECT und HANDLER konnte ich nicht viel Anfangen. Und bei Types die mit DIM-Feldern verknüpft sind, woher soll ich die Pixelgenaue Position eines Feldes herausbekommen!?

Irgendwie komme ich nicht dahinter ... hab ich nen Denkfehler?

Vlg Jan

Blitzcoder

Newsposter

BeitragDo, Dez 21, 2006 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Du speicherst die Types in einem Dim Feld:

Code: [AUSKLAPPEN]
type TItem
    field typ$
    field bla
end type

dim items.TItem(10,10)

for x=1 to 10
    for y=1 to 10
         items(x,y) = new TItem
         items(x,y)\typ="Bombe"
    next
next

;Zugreifen
Items(2,8)


EDIT: Achso, du meintest das etwas anders. Da bleibt dir nichts anderes übrig, als 2 Felber X und Y zu erstellen, dann alle types mit for each durchzugehen und immer zu prüfen, was kleiner und grösser ist.

EDIT: Noch was, wenn ich das richtig verstanden habe, dann willst du prüfen, über welchem Tile das Item ist. Das könntest du auch so machen: Du legst den Items noch 2 Felder mehr an, in denen das Tile x Und y gespeichert ist. Und immer wenn du das Item bewegst, prüfst du, ob es ein Tile weiter ist und änderst dann die Werte ab.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

JPD

BeitragDo, Dez 21, 2006 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, so weit war ich dann auch schon Cool

jede der Varianten bringt seine Probleme, klaro ist das mit den "DIM-TYPES" ne feine Sache für nen Leveleditor, aber im Spiel stößt man auf Grenzen, oder ich steh grad auf ner Leitung.

Falls noch jemandem was dazu einfällt, bitte lassts mich wissen Wink

Grüße, Jan

PS: Nein, ich will meine Items (also Punkte, Flugzeige usw) die im Spiel verteilt sind nur dann anzeigen, wenn auch der Bildschirmausschnitt da ist ... und bei ca 3000-4000 Objekten wirds schwer mit ner For-earch - oder?

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Dez 22, 2006 1:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstell die Types doch erst bevor sie ins Bild kommen, denn du brauchst sie doch erst dann!
Wenn sie aus dem Bild raus sind kannste du sie löschen!

Dann brauchtdu auch keine Abfragen ob sie gezeichnet werden sollen, da es eh alle sind.
Alledings mußt du prüfen ob schon neue erstellt werden müssen!
[BB2D | BB3D | BB+]

JPD

BeitragFr, Dez 22, 2006 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Was würde mir denn das bringen wenn ein Level geladen wird und später nur der Teil aktiv ist, der nur Sichtbar ist ... ich habe gestern noch einen Test gemacht: Und zwar hab ich eine For-Each Schleife so programmiert, dass sie nur Felder mit dem Wert X anzeigt. Ich habe ca 100000 Objekte angelegt und davon ca 100 angezeigt. Die Geschwindkeit war optimal so. Allerdings alle 100000 anzuzeigen, da gingen die FPS an die 0-Komma grenze. Resultat: Eine Abfrage was angezeigt werden darf und nicht (die alte Version siehe oben) ist optimal und lahmt mein Spielchen nicht zu. Ich mein, wer erstellt schon 100000 Objekte in einem Level? Die Basis sind eh Tiles.

MfG Jan

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group