AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Jump and Run! need help !

Ein Thema von Bartuc · begonnen am 28. Nov 2006 · letzter Beitrag vom 8. Dez 2006
Antwort Antwort
Seite 4 von 5   « Erste     234 5   
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#31

Re: Jump and Run! need help !

  Alt 4. Dez 2006, 22:11
Zitat von Bartuc:
SysUtils stand schon unter Uses drin. =(
Das war auch nur ein Beispiel, um zu zeigen, wofür die Uses-Klausel da ist.

Zitat von Bartuc:
Was meintest du mit "in einer anderen Unit implementiert" ?
Teilst du dein Projekt auf mehrere Units auf? Dann verteilt sich dein Code auch auf mehrere Units. Mit "Implementierung" bezeichnet man den Teil des Codes, in dem steht, was gemacht werden soll, also alles, was unter dem Schlüsselwort "implementation" steht. Die Implementation einer Methode steht immer in der gleichen Unit wie ihre Deklaration. "IstAufDemBoden hast du wahrscheinlich selbst in einer anderen Unit implementiert" bedeutet "Der Code der Prozedur IstAufDemBoden steht wahrscheinlich nicht in der Haupt-Unit, sondern in einer anderen Unit".

Zitat von Bartuc:
bzw "Dann musst du in der Aufrufenden Unit die Unit einbinden"?
Die "aufrufende Unit" ist die Unit, in der die Funktion IstAufDemBoden aufgerufen wird. Units werden "eingebunden", indem ihr Name in der Uses-Klausel eingetragen wird.
  Mit Zitat antworten Zitat
Bartuc

Registriert seit: 28. Nov 2006
21 Beiträge
 
#32

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 13:28
Irgendwie blick ich da nicht so ganz durch mit den mehreren Units.

Habs mal mit nem Timer versucht.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if imgcartman.Top = imgcartman.Top -100 then begin
timer1.Enabled := false;
timer2.enabled := true;
end
else begin
  repeat
  Imgcartman.Top := Imgcartman.left -5;
until (imgcartman.Top = imgcartman.Top -100);
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if imgcartman.Top = imgcartman.top +100 then begin
timer2.enabled := false;
end
else begin
repeat
  imgcartman.Top := imgcartman.Top +5;
until (imgcartman.Top = imgcartman.Top +100);
end;
end;
Timer1 wird durch die Leertaste gestartet.

Delphi-Quellcode:
    VK_SPACE: begin
      timer1.enabled := true;
      Key := 0;
      end;
Aber es klappt nicht... wenn ich die leertaste drücke friert das Programm ein.
wo liegt der Fehler? ich finde den nicht.
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#33

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 14:52
Sorry, aber so langsam beginne ich daran zu zweifeln, ob du das wirklich ernst meinst. Wie soll denn eine Zahl gleich sie selbst + 100 sein (imgCartman.Top = imgCartman.Top + 100)? Keine der Bedingungen kann je erfüllt werden. All deine Repeat-Until-Schleifen sind Endlos-Schleifen. Die Verknüpfung von Left und Top (Zeile 9) scheint mir auch total sinnlos.
  Mit Zitat antworten Zitat
Bartuc

Registriert seit: 28. Nov 2006
21 Beiträge
 
#34

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 15:01
ok hab ich gerade auch gesehen

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if imgcartman.Top = -100 then begin
timer2.enabled := true;
timer1.Enabled := false;
end
else begin
  repeat
  Imgcartman.Top := Imgcartman.top -5;
until (imgcartman.Top = -100);
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if imgcartman.Top = 100 then begin
timer2.enabled := false;
end
else begin
repeat
  imgcartman.Top := imgcartman.Top +5;
until (imgcartman.Top = 100);
end;
end;
so besser? aber es friert immernoch ein =(
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#35

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 15:17
Welchen Wert besitzt imgCartman.Top denn, bevor der Timer gestartet wird? Ist er größer als -101? Ist er durch 5 teilbar? Statt mit '=' zu vergleichen, könntest du auch mal '<', '>', '<=' oder '>=' nehmen.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#36

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 15:59
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if imgcartman.Top = -100 then
  begin
    timer2.enabled := true;
    timer1.Enabled := false;
  end
  else
  begin
    repeat
      Imgcartman.Top := Imgcartman.top -5;
    until (imgcartman.Top = -100);
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if imgcartman.Top >= 100 then
  begin
    imgcartman.Top:=100;
    timer2.enabled := false;
  end
  else
  begin
    repeat
      imgcartman.Top := imgcartman.Top +5;
    until (imgcartman.Top = 100);
  end;
end;
Schau mal, so ist es gelich viel lesbarer und tut auch garnicht mehr in den Augen weh
Ich glaube dein Problem ist, dass du hier von ideen und Möglichkeiten überhäuft wirst und du das alles garnicht so schnell verstehen kannst. So wie oben kann es nicht Funktionieren.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if imgcartman.Top <= -100 then
  begin
    timer2.enabled := true;
    timer1.Enabled := false;
  end
  else
  begin
    Imgcartman.Top := Imgcartman.top -5;
  end;
end;


procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if imgcartman.Top >= 100 then
  begin
    imgcartman.Top:=100;
    timer2.enabled := false;
  end
  else
  begin
    imgcartman.Top := imgcartman.Top +5;
  end;
end;
SO ist es besser. Dafür, dass der Code mehrmals ausgeführt wird, sind die TImer ja schon da. Dann brauchst du auch keine repeat..untils mehr. Außeerdem kann es ja sein dass Top deines Images zb 2 ist, dann kommt der bei schrittweisem decrimentieren von 5 niemals auf 100.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Bartuc

Registriert seit: 28. Nov 2006
21 Beiträge
 
#37

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 17:30
hm.... bei mir bleibt das bild in der Luft stehen.
hab aber bissl rumprobiert und jetzt "springt" mein bild.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if imgcartman.Top = 234 then begin
timer2.enabled := true;
timer1.Enabled := false;
end
else begin
  Imgcartman.Top := Imgcartman.top -2;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if imgcartman.Top = 424 then begin
timer2.enabled := false;
end
else begin
  imgcartman.Top := imgcartman.Top +2;
end;
end;
Das blöde ist das der jetzt immer bis auf top 424 fällt und nicht andere shapes oder so beachtet.
jemand eine idee?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#38

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 17:52
Zitat von Bartuc:
Das blöde ist das der jetzt immer bis auf top 424 fällt und nicht andere shapes oder so beachtet.
jemand eine idee?
Guck mal hier
  Mit Zitat antworten Zitat
Bartuc

Registriert seit: 28. Nov 2006
21 Beiträge
 
#39

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 19:23
cool danke..... klappt schon fast....

es gibt nur noch 2 probleme

das 1. ist...

wenn ich mit dem bild von der Seite an das Shape komme läuft mein bild trotzdem noch hinein.
wie kann ich der kollisionsabfrage sagen das das bild dann vor dem shape stehen bleibt?

das 2. ist...
wenn ich auf einer höheren ebene bin (shape) und ich gehe in richtung "abgrund", schwebt das bild weiter auf der selben höhe wie am shape. Aber es sollte ja wieder runter fallen bis es auf ein anderes shape kommt. Wie geht das?

momentan siehts so aus:

Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
begin
if IsCollision (Imgcartman.BoundsRect, S_2.BoundsRect) then
  timer2.enabled := false ;
  end;
procedure TForm1.Timer4Timer(Sender: TObject);
begin
if IsCollision (Imgcartman.BoundsRect, S_1.BoundsRect) then
  timer2.enabled := false
  end;
Vielleicht hat jemand noch eine idee hat wie es einfacher geht. z.b. mit nur einem timer die abfrage machen.

Danke schonmal =)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#40

Re: Jump and Run! need help !

  Alt 5. Dez 2006, 19:34
Zitat von Bartuc:
wenn ich mit dem bild von der Seite an das Shape komme läuft mein bild trotzdem noch hinein.
wie kann ich der kollisionsabfrage sagen das das bild dann vor dem shape stehen bleibt?
Da müsste man den Code sehen.

Zitat von Bartuc:
wenn ich auf einer höheren ebene bin (shape) und ich gehe in richtung "abgrund", schwebt das bild weiter auf der selben höhe wie am shape. Aber es sollte ja wieder runter fallen bis es auf ein anderes shape kommt. Wie geht das?
Delphi-Quellcode:
else
  Timer2.Enabled := True;
Zitat von Bartuc:
Vielleicht hat jemand noch eine idee hat wie es einfacher geht. z.b. mit nur einem timer die abfrage machen.
Die beiden Bedingungen mit or verknüpfen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf