Autor Beitrag
Delphi-Zone
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 20:36 
So,

Wie kriege ich es hin das wenn ein images fällt, nicht über mein bildschirm rand fällt, und nicht mehr zu sehen ist.
Also das ein anderes images es aufhält.

Danke im Vorraus!

gruß tom
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 24.09.10 20:43 
Wie meinst du das?

_________________
Markus Kinzler.
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 20:48 
Also...

Ich hab ein image, das ist ein mensch.
und wenn du taste oben ückst, denn springt er hoch.
und denn lass ich ihn mit dem TTimer wieder runterfallen,
aber er stoppt nicht. er fällt bis unter den bildschirmrand, obwohl er er auf dem boden stoppen soll.

Wie verhinder ich das?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 24.09.10 20:50 
Im Timer die Position mit der des Bodens abgleichen

_________________
Markus Kinzler.
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 20:56 
Wie genau mach ich das?
Ich bin relativ neu beim programmieren.
Wäre cool wenn ihr mir das genauer erklärt.


Gruß tom!
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 24.09.10 20:58 
Na dein Image hat ja eine Postion (Left = Linker Rand; Top = Oberer Rand).
Du musst also überprüfen ob der untere Rand tiefer als der obere Rand des Bodens ist (Unter Rand = oberer Rand + Höhe)

_________________
Markus Kinzler.
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 21:06 
Sry, irgendwie versteh ich das nicht, mit der höhe und so ja, ist ja left und top und -1 und +1 und so.
Aber wie man das andere macht.

Am besten wären befehle.

danke
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 24.09.10 21:13 
Die Figur soll ja stoppen, wenn die Füpsse den Boden berühren und nicht der Kopf. Deshalb musdst du zu Top die Höhe hinzuzählen um den unteren Rand des Images zu ermitteln.
Und zu den Befehlen: Ist ja ein einfacher Vergleich

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
if <Boden>.Top > <Figur>.Top + <Figur>.Height then // Figur noch in der Luft  
begin
    <Figur>.Top := <Figur>.Top + <DeltaY>;
    ...
end
else
    <Figur>.Top := <Boden>.Top - <Figur>.Height;
    ...
end;

_________________
Markus Kinzler.
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 21:32 
So, ich hab jetzt das geschrieben und es geht immer noch nicht...
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
unit feld1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Timer1: TTimer;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_LEFT: begin
      Image7.Left := Image7.Left - 5;
      image8.left := image7.Left - 5;
      image7.Visible := false;
      image8.Visible := true;
      Key := 0;
    end;
    VK_RIGHT: begin
      Image7.Left := Image7.Left + 5;
      image8.left := image7.Left + 5;
       image7.Visible := true;
      image8.Visible := false;
      Key := 0;
    end;
    VK_UP: begin
     Image7.Top  := image7.Top - 50;
     Image8.Top  := image8.Top - 50;
    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Image7.Top  := image7.Top + 10;
 Image8.Top  := image8.Top + 10;
 if image2.Top > image8.Top + image8.Height then // Figur noch in der Luft
begin
    image8.Top := image8.Top + 520Y;
    ...
end
else
    image8.Top := image2.Top - image9.Height;
    ...
end;
end;

end.


Moderiert von user profile iconMartok: Delphi-Tags gesetzt
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 21:51 
oh man :( ich krieg das einfach nicht hin
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 24.09.10 21:55 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if image2.Top > image8.Top + image8.Height then // Figur noch in der Luft
  begin
    image8.Top := image8.Top + 10;
  end
  else
  begin
    image8.Top := image2.Top - image8.Height;
  end;
end;

_________________
Markus Kinzler.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.09.10 21:56 
user profile iconDelphi-Zone hat folgendes geschrieben Zum zitierten Posting springen:
So, ich hab jetzt das geschrieben und es geht immer noch nicht...

WAS geht nicht? Wir sind keine Hellseher. :roll:
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 24.09.10 23:37 
Das ist jetzt schon der 3. Thread wo ich sehe das es dir massiv an Grundlagen mangelt. Da noch keiner dir es empfohlen hat, hol ich das hier mal nach: Bitte lern dir Grundlagen. Dazu gibt es das Delphi-Wikibook und Christian's Crashkurs.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Delphi-Zone Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win 7
Delphi 7.0 Prof
BeitragVerfasst: Fr 24.09.10 23:55 
ja, ich werde mir das nochmal durch lesen.