Thema: Delphi Nochmal Pong

Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Nochmal Pong

  Alt 10. Jan 2006, 15:28
Hallo, herzlich willkommen in der Delphi-Praxis!

ganz wird dir dein Problem niemand lösen. Womit hast du denn Probleme?


in der onmousemove-Prozedur hast du die beiden Variablen x und y, die die Position der Maus angeben. Daraus kannst du eine Position für das Panel berechnen. z.B. so:panel1.left:=x-form1.left-(panel1.width div 2); dann musst du entsprechend überprüfen ob der Panel den Ball bereits überlappt, und wenn ja, dann drehst du die y-Geschwindigkeit des Balles um:

Delphi-Quellcode:
var
  ballmittelpunkt:integer;
begin
  ballmittelpunkt:=ball.left+(ball.width div 2);
  if (ballmittelpunkt>panel1.left {falls der Ballmittelpunkt weiter rechts ist als das linke Ende des Schlägers...})
  and (ball.left+(ball.width div 2)<panel1.left+panel1.width {und der Ballmittelpunkt weiter links ist als das rechte Ende des Schlägers})
  and (ball.top+ball.height>=panel1.top {und der Ball überhaupt unterhalb des schlägers ist})
  then {dann}
  begin
    ball.yspeed:=-ball.yspeed; //YSpeed des Balls umkehren (jetzt geht's nach oben)
    ball.ypos:=panel1.top+1; //Ball überhalb des Schlägers positionieren, damit nicht gleich wieder ein Effekt ausgelöst wird
  end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat