AGB  ·  Datenschutz  ·  Impressum  







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

Kleines Pferdespiel

Ein Thema von zapper54 · begonnen am 2. Jan 2010 · letzter Beitrag vom 18. Jan 2010
Antwort Antwort
Seite 2 von 3     12 3      
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Kleines Pferdespiel

  Alt 4. Jan 2010, 11:40
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????
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#12

Re: Kleines Pferdespiel

  Alt 5. Jan 2010, 09:29
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;
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Kleines Pferdespiel

  Alt 5. Jan 2010, 14:44
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:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GIFImage, ExtCtrls, StdCtrls, jpeg, GIFImg;
Hab ich was falsch gemacht? Ich meine, irgendetwas muss ja falsch sein...
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#14

Re: Kleines Pferdespiel

  Alt 5. Jan 2010, 15:51
Hast du mal versucht ohne deine GIFImg zu kompilieren, denn immerhin gibt es zumindest die unit GIFImage.

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, [b]GIFImage[/b], ExtCtrls, StdCtrls, jpeg, GIFImg;
Hast du gesucht ob du irgendwo auf der Festplatte eine solche Datei hast?
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?
Erik
Alles gut?
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#15

Re: Kleines Pferdespiel

  Alt 5. Jan 2010, 17:19
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;
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Kleines Pferdespiel

  Alt 5. Jan 2010, 20:55
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:
Mein Pferdchen ist ein Gif-Image, dass mit einem Timer auf und Abbewegt wird. Das Pferd bleibt dabei aber an der gleichen Stelle, es bewegen sich nur die Sprünge (einfache, rechteckige Images) auf das Pferd zu. Nun soll natürlich auch etwas passieren, wenn das Pferd mal gegen einen dieser Blöcke stößt. Egal ob von oben, von vorne oder von sonstwo. Daher meine Frage:

Gibt es eine Möglichkeit zu sagen, dass immer eine Aktion passiert, wenn das Pferde-Image ein Sprung-Image berührt, oder muss ich einen Haufen Koordinaten aufzählen???
Vielen Dank schon mal für eure Antworten!!!
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Kleines Pferdespiel

  Alt 6. Jan 2010, 14:12
Hat keiner eine Idee?

Geht das nicht anders, als haufenweise Koordinaten aufzuschreiben???
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#18

Re: Kleines Pferdespiel

  Alt 7. Jan 2010, 08:35
Wenn eine Liste der Hinderniss vorliegt, brauchst du nur die Rechtecke auf Überschneidung zu prüfen.
z.B. so:
Delphi-Quellcode:
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;
Eine Kollisionsprüfung auf Pixelebene ist aber wesentlich aufwendiger.
Die VCL ist einfach nicht für Spiele gedacht.
Auf Hier im Forum suchenAndorra hat Matze ja bereits hingewiesen.
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#19

Re: Kleines Pferdespiel

  Alt 7. Jan 2010, 17:13
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;
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#20

Re: Kleines Pferdespiel

  Alt 7. Jan 2010, 20:04
Zitat von mb1996:
Delphi-Quellcode:
...
if Pferd1.left=Block1.left then
begin
if Pferd1.top=Block1.top then
begin
...
{Das Verhalten bei dem aufprall}
end;
end;
Wohl eher so:
Delphi-Quellcode:
if (Pferd.Left+Pferd.Width=Block1.Left) or (Pferd.Left=Block1.Left+Block1.Width)
  or (Pferd.Top+Pferd.Height=Block1.Top) then ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:29 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