Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Ping Pong unterschiedlicher apprall! (https://www.delphipraxis.net/114497-ping-pong-unterschiedlicher-apprall.html)

Atombesen 26. Mai 2008 14:34


Ping Pong unterschiedlicher apprall!
 
Hey Leute,

Da ich mit meinem Ping Pong soweit bin das sich die zwei Kellen bewegen und der ball von der mitte aus hin und her fliegt, hab ich schon einiges geschaft. Da ich aber gerne einen Ball haben möchte der nicht nur grade apprallt muss ich jemanden fragen wie ich das verwirklichen kann. Der ball ist ein timage die kellen und die Begrenzung auch. Der Ball prallt von den kellen ab aber halt immer gerade. Man müsste irgendwie den Winkel bei jedem Apprall anders wählen sozusagen^^

Ich bin euch sehr Dankbar wenn ihr mir helft.

PS: Ich hab nicht so große Ahnung von Delphi also lieber 5-6 Sätze mehr beim erklären schreiben.^^

Ich benutze Delphi Borland 2005.

MFG ATOMBESEN

spaxxn 26. Mai 2008 14:46

Re: Ping Pong unterschiedlicher apprall!
 
Naja, so lange du ohne Effet das Spiel realisieren möchtest, dann ist der Ausfallswinkel auf den Schläger gleich dem Einfallswinkel. Jenachdem wie weit dein Spiel gediegen ist, musst du auch an die Stellung vom Schläger zum Tisch zu bedenken.

Dann musst du die Kraft des Schlages berücksichtigen, damit der Ball auch hintern Tisch landen kann, wenn man zu dolle schlägt.

xy124 26. Mai 2008 14:54

Re: Ping Pong unterschiedlicher apprall!
 
der ball hat bei dir doch sicherlich variablen wie xspeed und yspeed, die du immer zur aktuellen ball position addierst oder?
du musst sobald der ball den schläger berührt rausfinden an welcher Stelle dies geschieht so etwa:
Delphi-Quellcode:
angriffx := ball.x-schlaeger.mittex//schlaeger.mittex:=schlaeger.x+round(schlaeger.width/2)
dann musst du dir nur noch eine Formel ausdenken , die je nachdem wie groß der angriffspunkt ist x- und yspeed verändert.
das könnt so klappen:
Delphi-Quellcode:
xspeed := math.abs(angriffx*2)

yspeed:=yspeed*-1
ich weis nicht ob's geht - hab es noch nicht getestet aber ich hoffe :) ...

DP-Maintenance 26. Mai 2008 15:01

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Projekte" nach "Multimedia" verschoben.
Wenn ich das richtig sehe, wird das kein Gemeinschaftsprojekt werden.

Atombesen 26. Mai 2008 18:19

Re: Ping Pong unterschiedlicher apprall!
 
Also!
Die kellen bewegen sich in 2D. Das heißt nix mit zuhaun oder so. Ich möchte das wenn der ball auf das viereckprall halt den anders apprallen lassen.
Der startet als erstes in der mit gerade nach rechts dann müsste er an der kelle hlat iwie in nem andern winkel apprallen.
Der ball hat weder speed oder sowas der wird einfach mit nem timer gesteuert also aller 0,2 sec. z.b. 1 nach links oder so
Atombesen

Medium 27. Mai 2008 01:37

Re: Ping Pong unterschiedlicher apprall!
 
[google]Unelastischer Stoß[/google]

Atombesen 27. Mai 2008 17:52

Re: Ping Pong unterschiedlicher apprall!
 
Leute!
So helft mir doch es gibt so viele die das in 25min schreiben können. sagt mir doch wie man unterschiedlichen apprall hinbekommt.

Danke

Die Muhkuh 27. Mai 2008 17:54

Re: Ping Pong unterschiedlicher apprall!
 
Wir mögen es können, aber letztendlich bist Du es, der den Code verstehen muss. Wenn wir einfach die Lösung hergeben, lernst Du nichts dabei und das ist ja nicht sinn und Zweck der Sache ;)

Mikender 27. Mai 2008 18:00

Re: Ping Pong unterschiedlicher apprall!
 
Nach deiner Beschreiebung legt der BAll ja x Pixel nach y und x Pixel nach x in 0,2 sec zurück mach doch einfach für den Aufprall
Delphi-Quellcode:
x:=-x
und für den Zufall nimm
Hier im Forum suchenRandom
Oder
etwas anspruchsvoller wenn die Kelle sich nach links bewegt dann
Delphi-Quellcode:
 x:=-x+2
Und bei Rechts dann
Delphi-Quellcode:
 x:=-x-2
Mach was draus :-D

:arrow: :arrow: Kannst das Spiel ja dann hier on stellen (wenn es gut wird)

Atombesen 27. Mai 2008 21:20

Re: Ping Pong unterschiedlicher apprall!
 
hm das ist schon richtig. aber ich hab das so geschrieben ... wenn bewegung rechts dann timage5.left:=timage5.left+1
Dann bewegt sich das bild halt wieder in die andere richtung. also soll ich für y und x random variablen festlegen ?

Naja ich prob das mal

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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