Billiard problem
Übersicht

![]() |
rambo256Betreff: Billiard problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute ich habe da mal wieder ein Problem ![]() Und zwar: Ich entwickle nebenbei auch noch ein kleines Billiard-Spiel. Ich möchte,wenn der Spieler die 1.Maustaste drückt,dann soll sich der kö nachhinten bewegen und wenn nun der Spieler die Maustaste wieder loslässt,dann soll sich der Kö wieder zurück bewegen und die Kugel wegstoßen. Ich bekomme das alles hin,bis auf eine Kleinigkeit.... Ich möchte,das wenn der Kö den Ball getroffen hat,sich verschwindet und die Laufbahn des Balles nicht mehr beeinflusst. Ich hab schon viel versucht,bin aber immer wieder gescheitert. Hier ein Codeschnipsel,wo das Problem liegt: Code: [AUSKLAPPEN] ;------------------------------------------------------------------- ;Kö zeichnen If MouseDown(1) = True Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#+Ko_Speed_X# Ko_Y# = Ko_Y#+Ko_Speed_Y# stos = 1 Else If MouseDown(1) = False And Stos = 1 Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#-Ko_Speed_X# Ko_Y# = Ko_Y#-Ko_Speed_Y# EndIf If Stos = 0 Or Stos = 1 Then Ko_zeichnen(Ko,Ko_X#,Ko_Y#,Ko_Speed_X#,Ko_Speed_Y#,Mouse_X,Mouse_Y,BallW_X#,BallW_Y#,Winkel_Ko_BallW,Mouse_Bt1) EndIf ;-------------------------------------------------------------------; ; Ball mit kö ;-------------------------------------------------------------------; If ImagesCollide(BallW,BallW_X#,BallW_Y#,0,Ko,Ko_X,Ko_Y,0) And stos = 1 Then BallW_Speed_X# = -Cos(Winkel_Ko_BallW) BallW_Speed_Y# = -Sin(Winkel_Ko_BallW) Stos = 2 EndIf THX Uups ![]() Danke! |
||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
übergib Mousedown an eine Variable,
und frag die Taste nicht ab während die Kugel läuft. |
||
solitaire |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ThX hab das Problem jetzt gelöst,aber habe jetzt ein neues:
Wenn der Kö die Kugel von der linken Seite stoßen will,dann kann ich den Kö nicht zurückziehen,sondern die Kugel schießt schon sofort los... Aber mit den genauen Winkel,also so,als wenn ich sie angestoßen hätte... Hier der Code: Code: [AUSKLAPPEN] ;Kö zeichnen
[/list][/code]
If MouseDown(1) = True Then If stos = 0 Or stos = 1 Or stos = 3 Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#+Ko_Speed_X# Ko_Y# = Ko_Y#+Ko_Speed_Y# stos = 1 EndIf Else If MouseDown(1) = False And Stos = 1 Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#-Ko_Speed_X# Ko_Y# = Ko_Y#-Ko_Speed_Y# EndIf If Stos = 0 Or Stos = 1 Or stos = 3 Then Ko_zeichnen(Ko,Ko_X#,Ko_Y#,Ko_Speed_X#,Ko_Speed_Y#,Mouse_X,Mouse_Y,BallW_X#,BallW_Y#,Winkel_Ko_BallW,Mouse_Bt1) EndIf ;-------------------------------------------------------------------; ; Ball mit kö ;-------------------------------------------------------------------; If ImagesCollide(BallW,BallW_X#,BallW_Y#,0,Ko,Ko_X,Ko_Y,0) And stos = 1 Then BallW_Speed_X# = -Cos(Winkel_Ko_BallW) BallW_Speed_Y# = -Sin(Winkel_Ko_BallW) Stos = 2 EndIf ;------------------------------------------------------------------- ;BallW zeichnen If stos = 2 Then Ball_Speed = Ball_Speed-(Ball_Speed#*0.02) EndIf If stos = 0 Or stos = 1 Or stos = 2 Then BallW_X = BallW_X+(BallW_Speed_X*Ball_Speed) BallW_Y = BallW_Y+(BallW_Speed_Y*Ball_Speed) BallW_zeichnen(BallW,BallW_X#,BallW_Y#,Winkel_Ko_BallW) EndIf ;------------------------------------------------------------------- ;------------------------------------------------------------------- ; Abfrage: Wenn Ball stehenbleibt,dann neubeginn ;------------------------------------------------------------------- If Ball_Speed <= 0.0001 Then Stos = 3 BallW_X = BallW_X BallW_Y = BallW_Y Ko_X = BallW_X Ko_Y = BallW_Y Ball_Speed = 3 EndIf |
||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Problem wurde jetzt von mir gelöst,falls es jemadem interressiert ![]() Code: [AUSKLAPPEN] ;-------------------------------------------------------------------
;Kö zeichnen If MouseDown(1) = True Then If stos = 0 Or stos = 1 Or stos = 3 Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#+Ko_Speed_X# Ko_Y# = Ko_Y#+Ko_Speed_Y# stos = 1 EndIf Else If MouseDown(1) = False And Stos = 1 Then Ko_Speed_X# = Cos(Winkel_Ko_Ballw) Ko_Speed_Y# = Sin(Winkel_Ko_Ballw) Ko_X# = Ko_X#-Ko_Speed_X# Ko_Y# = Ko_Y#-Ko_Speed_Y# EndIf If Stos = 0 Or Stos = 1 Or stos = 3 Then Ko_zeichnen(Ko,Ko_X#,Ko_Y#,Ko_Speed_X#,Ko_Speed_Y#,Mouse_X,Mouse_Y,BallW_X#,BallW_Y#,Winkel_Ko_BallW,Mouse_Bt1) EndIf ;------------------------------------------------------------------- ;-------------------------------------------------------------------; ; Ball mit kö ;-------------------------------------------------------------------; If Ko_X = BallW_X And Ko_Y = BallW_Y And Stos = 1 then BallW_Speed_X# = -Cos(Winkel_Ko_BallW) BallW_Speed_Y# = -Sin(Winkel_Ko_BallW) Stos = 2 EndIf ;------------------------------------------------------------------- ;BallW zeichnen If stos = 2 Then Ball_Speed = Ball_Speed-(Ball_Speed#*0.002) EndIf If stos = 0 Or stos = 1 Or stos = 2 Or stos = 3 Then BallW_X = BallW_X+(BallW_Speed_X*Ball_Speed) BallW_Y = BallW_Y+(BallW_Speed_Y*Ball_Speed) BallW_zeichnen(BallW,BallW_X#,BallW_Y#,Winkel_Ko_BallW) EndIf |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group