Autor Beitrag
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 15.01.07 21:25 
Noch ein Fehler:
Wenn etwas GRÖSSER GLEICH und gleichzeitig KLEINER GLEICH etwas anderem ist, dann ist es GLEICH diesem anderen:
ausblenden Delphi-Quelltext
1:
2:
If (Button.Top <= Button1.Top + Button1.height) and 
    (Button.Top >= Button1.Top + Button1.height)

Hierbei wird also so gut wie nie die kollision ausgelößt(da die werte beinah nie genau gleich sein werden ...). Bei dir wird beim von-unten-kommen vermutlich die von-oben-kommen Kollision ausgelößt.
Richtig wäre:
ausblenden Delphi-Quelltext
1:
2:
3:
If (Button.Top <= Button1.Top + Button1.height) and 
    ((Button.Left >= Button1.Left) and (Button.Left <= Button1.Left + Button1.Height)) then
     vw:=-vw;


PS: Ob das stimmt kann ich nicht testen, könntest du gleich den rest von deinem Source anhängen, damit ich meinen Code einfügen und ausprobieren kann? ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Dragon06
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 16.01.07 15:49 
jo hier is der quelltext zu der beigefügten anwendung aus meinem letzten post...

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:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
implementation
Var
vx:integer;
vy:integer;
vz:integer;
vw:integer;
va:integer;
vb:integer;

{$R *.DFM}

Procedure TForm1.Button_startClick(Sender: TObject);
Begin
    vw := 5;
    vx := -1;
    vy := 1;
    vz := -5;

    Timer1.Enabled := True;
    Button_start.visible := false;
End;

Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
    Button.left := Button.left + vx;
    Button.top := Button.top + vz;
    If Button.left < 0 Then
    Begin
        Button.left := -Button.left;
        vx := -vx;
    End;
    If Button.left > 660 Then
    Begin
        Button.left := -Button.left;
        vy := -vy;
    End;

    If Button.top < 0 Then
    Begin
        Button.top := -Button.top;
        vz := -vz;
    End;
    If Button.top > Form1.height - 55 Then
    Begin
        Button.top := -Button.top;
        vw := -vw;
    End;

    If ((Button.Top + Button.height) >= Button1.Top) and
    (Button.Top <= Button1.Top) then
    begin
    if (Button.left >= Button1.Left) and
     ((Button.left + Button.Width) <= (Button1.Left + Button1.Width)) then
    begin
     Button.Top:= -Button.Top;
     vw:= -vw;
    end;

    If (Button.Top <= Button1.Top + Button1.height) and
    (Button.Top >= Button1.Top + Button1.height)
    then
    begin
    if (Button.left <= Button1.Left) and
     ((Button.left + Button.Width) >= (Button1.Left + Button1.Width)) then
    begin
     Button.Top:= -Button.Top;
     vw:= -vw;
    end;
    end;

End;

End;


Procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: integer);
Begin

    If X > 31 Then
    Begin
        Button1.left := Button1.left + 2;
    End;
    If X < 29 Then
        Button1.left := Button1.left - 2;
End;

end.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Di 16.01.07 15:52 
sag mal wer hatt euch nur diese sche*** formatierung angedreht..

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Di 16.01.07 15:56 
user profile iconZeitGeist87 hat folgendes geschrieben:
sag mal wer hatt euch nur diese sche*** formatierung angedreht..

Das <frgate ich mich auch gerade :)

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
Dragon06
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Do 18.01.07 13:41 
user profile iconLeuchtturm hat folgendes geschrieben:
user profile iconZeitGeist87 hat folgendes geschrieben:
sag mal wer hatt euch nur diese sche*** formatierung angedreht..

Das <frgate ich mich auch gerade :)


mhh das hilft mir jetz auch nich weiter xD
Danny W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 296

Windows XP, WIN 2000
Delphi 2005 PE
BeitragVerfasst: Do 18.01.07 14:40 
<OT>
Naja, jeder hat nen anderen Stil...aber das ist wirklich hart ^^ da kommt man ja voll durcheinander..ich würde es als tipp mitnehmen...

Ich mach das immer so (Ich weiß, dass das auch nicht optimal ist, aber vom stil her isses recht übersichtlich!)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if ((zahl = wert) and (zahl2 = wert2)) then 
      begin
         tuwas;
         undzwarzügig;
         sofort;
      end
  else
      begin
         oderlasses;
         einfach;
         sein;
      end;


</OT>

Gruß
Danny

_________________
"Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt :("
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
julian2304 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 26



BeitragVerfasst: Sa 20.01.07 21:59 
@ ALL!!
danke für eure hilfe!! :)