AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Karten fließend bewegen lassen?
Thema durchsuchen
Ansicht
Themen-Optionen

Karten fließend bewegen lassen?

Ein Thema von IIIMADDINIII · begonnen am 31. Jan 2010 · letzter Beitrag vom 11. Feb 2010
Antwort Antwort
Seite 2 von 2     12   
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Karten fließend bewegen lassen?

  Alt 1. Feb 2010, 18:34
Zitat von IIIMADDINIII:
außerdem fände ich es ganz gut wenn es was gäbe was die bewegung für mich organisiert so dass ich nur noch sagen muss: gehezu(X, Y);
Sowas kann Andorra glaube ich auch nicht. Das wäre aber auch sinnlos, denn das hast du dir in ein paar Minuten selbst geschrieben. Du kennst doch auf Mathe Funktionen, wo ein Wert der Zeit zugeordnet wird - genau so kannst du es in Delphi machen.

Delphi-Quellcode:
// t 0..1
function GetPosition(t: single; StartPoint, EndPoint: TPoint): TPoint;
begin
  Result.X := round(StartPointer.X*(1-t) + EndPoint.X*t);
  Result.Y := round(StartPointer.Y*(1-t) + EndPoint.Y*t);
end;
Das gibt dir für Zeitwerte von 0 bis 1 mit linearer Interpolation die aktuelle Position aus. Dann führst du den Zeichencode mit entsprechenden Koordinaten einfach in regelmäßigen Abständen z.B. mit einem Timer oder einer Schleife aus, zählst die Zeit entsprechend hoch (siehe GetTickCount oder TAdPerformanceCounetr bei Andorra2D) und setzt sie in die Funktion ein - Voilà.

Und flackern tut das Zeichnen nur, wenn du es von der VCL erledigen lässt, weil immer wieder der Hintergrund neu gezeichnet wird. Wenn du selbst mit den Delphi-Funktionen oder GR32 auf ein unsichtbares Bitmap im Speicher zeichnest, und dieses anschließend in einem Rutsch auf das Formular, flackert da nix. Diese Technik nennt man übrigens Doublebuffering.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#12

Re: Karten fließend bewegen lassen?

  Alt 7. Feb 2010, 12:28
Mit Andorra ist das Wirklich kein Problem. Es gibt Sprite-Objekte, die erleichtern, dass ganze Enorm. Ich könnte dir höchsten noch meine Canvas-Engine anbieten. Das ist eine "2D Engine", die komplett auf Canvas Basiert. Flackern oder Flimmern tut das auch nicht. Für sehr viele Spiele müsste / sollte das reichen. Dort gibt es auch Sprite-Objekte. Es Basiert halt "nur" auf Canvas und TBitMap. Geht Prima. "Nur" AOM oder AOE wirst du damit nicht nach Programmieren können *G*.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#13

Re: Karten fließend bewegen lassen?

  Alt 11. Feb 2010, 17:30
Danke für die fielen antworten

diese auf canvas basierende engine würde mich nochmal interessieren.

sorry dass ich dieses thema nach so langer zeit wierder hochhole, habe aber länger nicht mehr in meine temenverwaltung geschaut.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Karten fließend bewegen lassen?

  Alt 11. Feb 2010, 18:37
TCanvas ist aber nicht für so etwas gedacht.
Markus Kinzler
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Karten fließend bewegen lassen?

  Alt 11. Feb 2010, 18:53
Zitat:
TCanvas ist aber nicht für so etwas gedacht.
In gewisserweise hast du natürlich recht. Aber für einfache Spiele wie z.b. Snake, Sokubahn und sweiter geht das Prima. Sogar ein 2D Weltraum-Shoter konnte ich damit erstellen.

Das Prinzip ist einfach: Es werden nur, Bereiche neu gezeichnet, die sich auch geändert haben. Es kommt aber immer wieder zu Grafk Fehler, aber selten. Ich gehe so vor: Sprite wird gezeichnet, davor wird der Hintergrund gesichert und dann das Sprite gezeichnet, beim verlassen, der Position wird der Hintergrund wiederhergestellt. Unter Umständen kann es hierbei zu Grafik Fehlern kommen.

Ich hänge hier einfach mal eine Version an. Sie ist für Lazarus Optimiert. Mit etwas Glück und Anpassungen läuft es auch unter Delphi.
Angehängte Dateien
Dateityp: zip 2d_engine_114.zip (445,1 KB, 10x aufgerufen)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 15:27 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