Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Spieloberfläche aus Quadraten (https://www.delphipraxis.net/31066-spieloberflaeche-aus-quadraten.html)

Nicolai1234 3. Okt 2004 19:36


Spieloberfläche aus Quadraten
 
Ich würde gerne eine Spieloberfläche aus einzelnen Quadraten erstellen!
Also meine Spielfigur ist ein Quadrat groß, ein Baum ist ein Quadrat groß usw. (wie Pokemon/Zelda usw.)
Ich habe beispielsweise eine Map von 100x100 Feldern.
Der Spieler soll immer nur einen Ausschnitt von 9x9 Feldern sehen, wobei die Speilfigur immer in der Mitte stehen soll!
Wie kann ich das am besten verwirklichen?
Ich weiß nicht, wie ich das angehen soll, weil wenn man dich bewegt, müssen ja immer ein paar neue Quadrate geladen werden!
Wie kann ich das machen? Ich bräucht mal einen Gedankenanstoss!
Danke im voraus

Nikolas 3. Okt 2004 19:40

Re: Speiloberfläche aus Quadraten
 
Nimm dir doch erstnal ein array[0..99] of array[0..99] of TKleinesQuadrat und merkst dir die Position der Figur. Wenn der Spieler dann auf -> drückt weisst du dann welche Quadrate du dann neu Zeichnen musst.

Nicolai1234 3. Okt 2004 19:46

Re: Speiloberfläche aus Quadraten
 
Wahrscheinlich unterschätze ich die Rechenleistung unser 3 GHZ!
Ich hatte gedacht, dass die Ladezeit zu langsam sein würde, wenn man es so macht!
Bei der Methode würde mir aber der Übergang zwischen den 2 Bildern nicht gefallen! Da wäre das zweite Bild halt einfach da, aber es wäre schöner, wenn es sich quasi verschiebt, sodass man auch erkennt, dass die Spielfigur läuft!
Sorry, hatte mich oben zu unpräzisiese ausgedrückt! :oops:

Nikolas 3. Okt 2004 20:07

Re: Spieloberfläche aus Quadraten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab dir mal was aus einem meiner Programme rausgeschrieben, vielleicht kannst du es für deine Zwecke anpassen. Ich hab ein Image in eine ScrollBox gesteckt, die scrollt sobald sich die Maus im Randbereich der Scrollbox bewegt. Du könntest jetzt ein Riesenimage mit den 10000 Quadraten reinzeichnen und dann mit der Methode bewegen.

nailor 3. Okt 2004 22:12

Re: Spieloberfläche aus Quadraten
 
wenn man da wirklich das ganze Image reinhaut, dann wird es wirklich zu lahm. immer nur den sichtbaren teil zeichenen!

Nicolai1234 4. Okt 2004 09:38

Re: Spieloberfläche aus Quadraten
 
Zitat:

Zitat von nailor
wenn man da wirklich das ganze Image reinhaut, dann wird es wirklich zu lahm. immer nur den sichtbaren teil zeichenen!

Das ganze Bild möchte ich da auch nicht reinmachen!
Aber wenn ich nur den sichbaren Teil nehmen, weiß ich nicht, wie ich den Übergang machen soll, damit man auch erkennt, dass die Figur läuft!
Weiß da einer Rat?

dizzy 4. Okt 2004 11:34

Re: Spieloberfläche aus Quadraten
 
Die gerade eben noch nicht sichtbaren Quadrate schon mal "vorladen", und bei Bedarf scrollen.

Dann hast du einen Quadrat-Overhead der erträglich ist, da du nur den Rahmen um den sichtbaren Bereich vorab schon mal im Speicher hast.

Wenn die Quadrate zu klein sind oder das nachladen zu langsam für die Scrollgeschwindigkeit ist, dann könnte man diesen "Rahmen" ja einfach "dicker" machen.

Frag mich aber nicht nach einer Umsetzung - das ist nur ne theoretische Überlegung! Hab sowas noch nicht gemacht ;)

Gruss,
Fabian

Nicolai1234 4. Okt 2004 12:18

Re: Spieloberfläche aus Quadraten
 
Würdet ihr es denn auch mit einer scrollbox machen oder gibt es da noch eine andere Variante?

dizzy 4. Okt 2004 12:30

Re: Spieloberfläche aus Quadraten
 
Ne Scrollbox wäre da imho völlig unangebracht. Ich würde das Scrolling dann eher per Hand in einer PaintBox machen, oder aber evtl. auf nem DirectX-Surface (habbich aber auch noch nie gemacht :)).

Die Scrollbox macht eher nur dann Sinn, wenn du die gesamte Karte einlädst. Ansonsten musst du ja nach dem Scrollen den neuen Bereich als Mitte ansehen, ein paar Rand-Quadrate fallen weg, ein paar kommen hinzu, und du müsstest dann auch wieder "von Hand" hin und her scrollen. Imho wenig komfortabel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz