Winkel(?) Problem
Übersicht

Chris02Betreff: Winkel(?) Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich bin dabei einen simplen break-out Clone zu programmieren.
Die Steine(40*20Pixel) werden mit vollgender Schleife eingezeichnet: Code: [AUSKLAPPEN] For y = 1 To 20 For x = 1 To 20 If Feld(x,y)=1 DrawImage Stein,x*40-20,y*20 EndIf Next Next die Collision, hab ich mit follgender Schleife gemacht: Code: [AUSKLAPPEN] For y=1 To 20 For x=1 To 20 If Feld(x,y)=1 If ImagesCollide(Ball,BallXpos,Ballypos,0,Stein,x*40-20,y*20,0) Feld(x,Y)=0 If Ballxpos < x*40+20 And Ballxpos>x*40-20 If Ballypos>=y*20+20 Ballwinkel=360-Ballwinkel EndIf If Ballypos<=y*20 Ballwinkel=360-Ballwinkel EndIf Ballwinkel=180-Ballwinkel EndIf EndIf EndIf Next Next Mein Problem ist, dass der Ball völlig konfus abprallt. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Komme bei deinem Codeversuch grad net draus, darum der allgemeine Weg wie man es bei Vertikalen / Horizontalen Wänden macht:
Code: [AUSKLAPPEN] If VertikaleWand xGeschwindigkeit = -xGeschwindigkeit elseif HorizontaleWand yGeschwindigkeit = -yGeschwindigkeit endif Es wird einfach der Geschwindigskeitswert für die entsprechende Richtung, die rechtwinklig zur Wand steht, invertiert. Bei nicht vertikalen / horizontalen Wänden funktioniert es theoretisch gleich, mit dem Unterschied, dass du da effektiv die Normale der Oberfläche bestimmen musst, was bei vertikal / horizontal nicht nötig ist ( da [0, 1/-1] und [1/-1,0] ). Hoffe das hilft dir. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm... normalerweise mache ich immer:
Code: [AUSKLAPPEN] ;kollision oben oder unten...
winkel = 360-winkel ;kollision rechts oder links winkel = 180-winkel bei mir gilt immer: winkel = 0 : ball nach rechts winkel = 90 : ball nach oben d.h. jede runde zu der x koordinate den kosinus des winkels addieren der y koordinate den sinus des winkels subtrahieren |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group