Pong: Kollision des Balls mit einem Schläger
Übersicht

![]() |
HagbardBetreff: Pong: Kollision des Balls mit einem Schläger |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, habe vor einiger Zeit mal Pong nachprogrammiert...
Mein Problem ist, dass die Kollisionen einfach nicht so wollen, wie ich... So sieht mein Codeausschnitt aus, mit dem ich das probiert habe damals (und auch heute): Code: [AUSKLAPPEN] ; Zeichnung Spieler ; Spieler 1 DrawImage player1, pl1_X, pl1_Y ; Spieler 2 DrawImage player2, pl2_X, pl2_Y ; Steuerung Spieler If Not ende > 0 Then ; Spieler 1 If KeyDown(17) And pl1_Y > 21 Then pl1_Y = pl1_Y - 2 : pl1_Y1 = 2 If Not KeyDown(17) Then pl1_Y1 = 0 If KeyDown(31) And pl1_Y < 392 - balken_h Then pl1_Y = pl1_Y + 2 : pl1_Y2 = -2 If Not KeyDown(31) Then pl1_Y2 = 0 ; Spieler 2 If game_type = 1 If KeyDown(200) And pl2_Y > 21 Then pl2_Y = pl2_Y - 2 : pl2_Y1 = 2 If Not KeyDown(200) Then pl2_Y1 = 0 If KeyDown(208) And pl2_Y < 392 - balken_h Then pl2_Y = pl2_Y + 2 : pl2_Y2 = -2 If Not KeyDown(208) Then pl2_Y2 = 0 EndIf ; KI EndIf ; Kollision Spieler1 - Ball If ImageRectCollide(ball, b_X, b_Y, 0, pl1_X + 8, pl1_Y + pl1_Y2, 1, balken_h) Then b_sX = b_sX * -1 b_sY = b_sY * 1 EndIf If ImageRectCollide(ball, b_X, b_Y, 0, pl1_X, pl1_Y + pl1_Y2, 8, 1) Then b_sX = b_sX * 1 b_sY = b_sY * -1 EndIf If ImageRectCollide(ball, b_X, b_Y, 0, pl1_X, pl1_Y + 28 + pl1_Y2, 8, 1) Then b_sX = b_sX * 1 b_sY = b_sY * -1 EndIf Rect pl1_X, pl1_Y + pl1_Y1 + pl1_Y2, 8, 1 ; oben Rect pl1_X + 8, pl1_Y + pl1_Y1 + pl1_Y2, 1, balken_h ; rechts Rect pl1_X, pl1_Y + 28 + pl1_Y1 + pl1_Y2, 8, 1 ; unten ; Zeichnung Ball DrawImage ball, b_X, b_Y If game = 1 Then b_X = b_X + b_sX b_Y = b_Y + b_sY EndIf Wer sich das ganze mal angucken möchte, balken_h ist die vorher berechnete Höhe des Balkens. "spieler1" ist ein Rechteck, "ball" ein Kreis. Leider funktioniert die Kollision nicht richtig und ich bin mir nicht sicher, ob ich irgendwas vergessen habe oder falsch gemacht habe. Wer das nicht so erkennt, kann ja kurz Bescheid "schreiben", dann lad ich das mal hoch. Ist das vielleicht ein bekanntes Problem Habe es allerdings noch nie hier gesehen...?! Danke PS: Habs jetzt noch schnell hochgeladen... https://www.blitzforum.de/upload/file.php?id=155 Die Computersteuerung ist noch in Arbeit und hier nicht enthalten. Der linke Spieler wird mit w=oben, s=unten gesteuert, der rechte mit den Pfeiltasten oben und unten. |
||
- Zuletzt bearbeitet von Hagbard am Sa, Apr 17, 2010 20:51, insgesamt 3-mal bearbeitet
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm der COMPUTER Spieler gewegt sich net?!?!?
der Ball ist mit der Maus verschiebbar ?!?! also die Kollision funzt doch super, bei den was du hochgeladen hast ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group