![]() |
Re: Kleines Pferdespiel
Danke Blup!
Hab mir auch das Programm vor 10 Minuten nochmal durch den Kopf gehen lassen, und bin auf die gleiche Sache, wie du mit dem Gras gekommen. Aber danke für die Idee mit den scrollbars. Das werde ich mal ausprobieren. Trotzdem ist da noch das Problem mit dem Pferd, dass sich nicht mehr weiter bewegt. Kann mir da noch jemand helfen???? |
Re: Kleines Pferdespiel
Wie oft eine Gif-Animation abgespielt wird, steht in der Gif-Datei.
Viele Einstellungen lassen sich aber nachträglich ändern.
Delphi-Quellcode:
uses
// im Abschnitt "uses" hinzufügen GIFImg; // nach dem Laden des Bildes einmal ausführen z.B. im FormCreate with ImagePferd.Picture do begin if Graphic is TGIFImage then TGIFImage(Graphic).AnimateLoop := glContinously; end; |
Re: Kleines Pferdespiel
Danke Blup!
Also am Code hat er erstmal nichts zu meckern, aber dann, wenn ich starten will, sagt er: "[Fataler Fehler] Tommy.pas(7): Datei nicht gefunden: 'GIFImg.dcu'" (Das passiert bei der Eingabe im Abschnitt uses. Ich hab aber alles so eingegeben, wie beschrieben.
Delphi-Quellcode:
Hab ich was falsch gemacht? Ich meine, irgendetwas muss ja falsch sein...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, GIFImage, ExtCtrls, StdCtrls, jpeg, GIFImg; |
Re: Kleines Pferdespiel
Hast du mal versucht ohne deine GIFImg zu kompilieren, denn immerhin gibt es zumindest die unit GIFImage.
Delphi-Quellcode:
Hast du gesucht ob du irgendwo auf der Festplatte eine solche Datei hast?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, [b]GIFImage[/b], ExtCtrls, StdCtrls, jpeg, GIFImg; Hast du die Unit mal bei Google gesucht? Immerhin bekommst du den Fehler, dass Delphi die Datei nicht finden kann. Wie wäre es damit sie sich zu beschaffen? Vielleicht kann man sich diese frei runterladen. Wenn dir Delphi schon genau sagt was los ist (Datei nicht gefunden), dann wirst du die Datei wohl einfach nicht haben, oder? ;) |
Re: Kleines Pferdespiel
Wahrscheinlich handelt es sich um eine andere Version von TGIFImage die auch einen anderen Dateinamen "GIFImage" hat.
Natürlich muss die tatsächlich verwendete Unit angegeben werden, bzw. stand bei dir schon drin. Versuchs dann so:
Delphi-Quellcode:
var
Options: TGIFDrawOptions; with ImagePferd.Picture do begin if Graphic is TGIFImage then begin Options := TGIFImage(Graphic).DrawOptions; Include(Options, goLoopContinously); TGIFImage(Graphic).DrawOptions := Options; end; end; |
Re: Kleines Pferdespiel
Vielen, vielen Dank Blup (natürlich auch den anderen, die sich die Mühe gemacht haben, mir zu helfen)!
Ich denke, dass ich bald fertig sein werde... Trotzdem gibt es noch folgende Frage von mir: Zitat:
|
Re: Kleines Pferdespiel
Hat keiner eine Idee?
Geht das nicht anders, als haufenweise Koordinaten aufzuschreiben??? |
Re: Kleines Pferdespiel
Wenn eine Liste der Hinderniss vorliegt, brauchst du nur die Rechtecke auf Überschneidung zu prüfen.
z.B. so:
Delphi-Quellcode:
Eine Kollisionsprüfung auf Pixelebene ist aber wesentlich aufwendiger.
var
Hindernisse: TObjectList; {...} Hindernisse := TObjectList.Create; Hindernisse.OwnsObjects := False; Hindernisse.Add(ImageHindernis1); {...} function IsKollision(APferdImage: TImage): Boolean; var Hinderniss: TObject; Rx, R1: TRect; begin R1 := APferdImage.BoundsRect; for i := 0 to Hindernisse.Count - 1 do begin Hinderniss := Hindernisse[i]; if Hinderniss is TImage then begin Result := IntersectRect(Rx, R1, TImage(Hinderniss).BoundsRect); if Result then Exit; end; end; Result := False; end; Die VCL ist einfach nicht für Spiele gedacht. Auf ![]() |
Re: Kleines Pferdespiel
Hi,
ich denke mal du machst es ganz einfach mit IF. [code] ... if Pferd1.left=Block1.left then begin if Pferd1.top=Block1.top then begin ... {Das Verhalten bei dem aufprall} end; end; |
Re: Kleines Pferdespiel
Zitat:
Delphi-Quellcode:
if (Pferd.Left+Pferd.Width=Block1.Left) or (Pferd.Left=Block1.Left+Block1.Width)
or (Pferd.Top+Pferd.Height=Block1.Top) then ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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 by Thomas Breitkreuz