AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Map scroll Problem!

Ein Thema von raysto · begonnen am 23. Jul 2011 · letzter Beitrag vom 24. Jul 2011
Antwort Antwort
raysto

Registriert seit: 6. Nov 2010
62 Beiträge
 
#1

Map scroll Problem!

  Alt 23. Jul 2011, 23:45
Hi! Ich hab momentan ein echt großes Problem. In meinem Map editor kann ich bereits alles was ich möchte, nur das scrollen fehlt mir. Und zwar möchte ich es so machen, dass man z.b. auf einen Button "Scroll down" klickt und dann werden alle Bilder (dynamisch) 16 pixel nach oben bewegt(Meine felder sind 16x16 px. groß). Für den Bereich des platzierens habe ich auch eine Begrenzung. Und genau deswegen ist die Methode mit den Werten ädnern für Top/Left nicht sehr gut, da man so in etwa schummeln könnte um mehr Bilder auf einer Map zu haben. Und das zweite Problem darin ist, dass die Bilder sich dann in meine Buttons und Bilder Auswahl bewegen würden. Also habe ich es so vor, dass ich bei Scroll down z.b. das Bild unter einem Bild in das Obere reingeladen wird. Mit scroll up eben umgekehrt. Veranschaulischung:
AB
CD A,B... = Bilder

Wenn ich dann auf den Scroll down button klicke, wird C in A geladen und D in B und mit seitwärstscrollen C in D/D in C und A in B/B in A.
So würden sich auch die Bilder nicht bewegen.
Nur leider habe ich KEINE AHNUNG wie ich das anstellen soll
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#2

AW: Map scroll Problem!

  Alt 24. Jul 2011, 02:22
Einfach die TImage-Instanzen sauber benennen (Reihen & Spalten, z.B. "Image_1_1" statt "A" und "Image_2_1" statt "C" und dann einfach mit Offsets in horizontaler und vertikaler Achse arbeiten, mit denen du ermitteln kannst, welche Bilder in welche Felder geladen werden sollen, ausgehend vom Ursprungszustand, wenn man die entprechenden Buttons hin und herklickt, die wiederum den Offset der entsprechenden Richtung inkrementieren bzw. dekrementieren.

Allerdings halte ich für einen Map-Editor, der aus einzelnen (T)Images besteht, für ziemlich den falschen Weg (falls ich das richtig verstanden habe..)...warum nimmst du nicht eine 2D Engine oder schreibst dir dafür eine rudimentäre selbst, und arbeitest dann direkt auf einem Canvas oder machst das ganze mit GDI(+) ?

Geändert von blackfin (24. Jul 2011 um 02:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#3

AW: Map scroll Problem!

  Alt 24. Jul 2011, 07:59
Leg doch alles in eine TScrollBox?

Wobei man bei sowas ja eigentlich nich tdie GUI-Komponenten (TImage) bverschiebt, sondern deren Inhalt.

Und am aller Besten weäre es, wenn es nur eine anzeigecomponente (TImage, oder besser noch TPaintBox hat, die komplette Map nur in einer entsprechenden Struktur (z.B. 2-dimensionales Array) ablegt und jeweils den aktuellen Abschnitt (im OnPaint der PaintBox) zur anzeige bringt.

Wenn man es einfacher haben will, dann nutzt man passende spieleengines, wie z.B. Hier im Forum suchenAndorra 2D.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
raysto

Registriert seit: 6. Nov 2010
62 Beiträge
 
#4

AW: Map scroll Problem!

  Alt 24. Jul 2011, 11:19
@blackfin
Sorry, aber das was du schreibst verstehe ich NULL Un ich habe das alles mit TImages gemacht weil ich nicht wusste wie ich es sonst machen soll...
@himitsu
Wenn ich das in eine Scrollbox legen würde, könnte ich keine Images per darüber platzieren
2D engines soll ich/will ich nicht benutzen, da das für die Schule ist und ich nicht möchte dass man immer alles sofort ganz leicht machen kann.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#5

AW: Map scroll Problem!

  Alt 24. Jul 2011, 11:28
Wie gesagt, das was die fertigen Engines machen, kann man auch ganz leicht selber nachbauen und lernt dabei die OOP kennen.
Wo man dann auch gleich mal GUI und Logik trennen kann.

* Entweder man legt sich ein Array an, mit TBitmaps an, worin alle Bilder gespeichert sind
und in einer Zeichenroutine (Prozedur) wird dann der Sichtbare Teil dieses Arrays ausgegeben.

* Die nächste Stufe wäre es, wenn man in dem Array nur Referenzen auf eine Sammlung/Liste von TBitmaps hat (einige Bilder werden sich uf der karte doch wiederholen?).

* Danach kommt man dann soweit, daß man eine Liste hat, in welcher sich die Grafikelemente befinden.
Jedes Element (eine Klasse, abgeleiter von einer Basisklasse) kennt seine Position, sein Bild und andere Eigenschaften.
Und einer Ausgabefunktion wird dann, bei Änderung an der Liste oder deren enthaltener Grafikelemente und im OnPaint der Paintbox, alle sichtbaren Elemente aus dieser Liste auf die Zeichenfläche gebracht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz