![]() |
Nochmal Pong
Hallo erstmal,
es tut mir ehrlich leid euch mit dem hier anscheinend sehr verbreitetem Pong-Problem zu belästigen, aber ich kriege es einfach nicht hin ^^. Kann mir kurz jemand aufschreiben, wie ich ein Panel mit der Maus steuere (OnMouseMove) und wie ich einen Ball daran abprallen lasse? Vielen Dank, wenn sich jemand die Mühe macht ^^. |
Re: Nochmal Pong
Hallo, herzlich willkommen in der Delphi-Praxis! :party:
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:
Delphi-Quellcode:
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:
panel1.left:=x-form1.left-(panel1.width div 2);
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz