Forum: Sonstige Fragen zu Delphi
Delphi
by Pfusch,
13. Aug 2013
Ok konnte das Problem jetzt eingrenzen:
procedure TBrick.onCollision(Edge : Integer; Ball : TBall);
begin
if Ball.YSpeed = -1 then
begin
Ball.YSpeed := Ball.YSpeed * (-1);
end;
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by Pfusch,
13. Aug 2013
Vielen Dank für die vielen Ratschläge aber leider besteht das Problem weiterhin.
Die Bedingung für OnCollision stimmt auf jeden Fall und er kommt auch bis zum Case.
procedure TBrick.onCollision(Edge : Integer; Ball : TBall);
begin
case Edge of
1: Ball.YSpeed := Ball.YSpeed * (-1);
2: Ball.YSpeed := Ball.YSpeed * (-1);
3: Ball.XSpeed :=...
Forum: Sonstige Fragen zu Delphi
Delphi
by Pfusch,
12. Aug 2013
@Bjoerk
Weiß zwar nicht von welchem Buch du redest aber der Quellcode ist nur von mir selbst^^. Liegt es am Single das es nicht funktioniert, weil ich nämlich einen Float Wert bräuchte, deswegen ist es mit Integer nicht möglich.
@Medium
Ball.fYSpeed und fYSpeed sind dasselbe, war nur zu faul Ball. zu schreiben, sorry falls dich das verwirrt hat.
Forum: Sonstige Fragen zu Delphi
Delphi
by Pfusch,
12. Aug 2013
Naja Quellcode wird jetzt auch nicht viel ändern weil Ball.YSpeed an einem anderem Punkt nur auf -1 gesetzt wird. Wenn ich z.b. folgendes if ausführe wird Ball.YSpeed auf 1 gesetzt weil es ja -1 ist. Diese Anweisung funktioniert ohne Probleme. Warum aber eine simple Multiplikation mit -1 nicht funktioniert?
if Ball.YSpeed = -1 then
begin
Ball.YSpeed := 1;
end;
fYSpeed ist als single...
Forum: Sonstige Fragen zu Delphi
Delphi
by Pfusch,
12. Aug 2013
Hallo, unzwar habe ich folgendes Problem in einer simplen Anweisung:
Ball.YSpeed := Ball.YSpeed * -1;
YSpeed ist im Testfall -1, wenn ich es aber wie oben mit -1 multipliziere bleibt es -1. Wenn ich es mit
z.B. -3 multipliziere kommt -3 heraus, aber bei einer Multiplikation mit 3 kommt auch -3 heraus. Ich kann überhaupt nicht nachvollziehen warum das nicht funktioniert. Bitte um eine...