schläger und ball
Übersicht

Peak7810Betreff: schläger und ball |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich bau grad an einem flipper, und stehe grad vor einem problem.
geflippert hat ja sicher schon fast jeder mal, zumindest virtuell.... jedenfalls sind ja unten die hebel, so nenne ich sie mal. wenn diese nun betätigt werden, kommt es drauf an, zu welchem zeitpunkt beide aufeinandertreffen, und daraus resultiert dann die geschwindigkeit des balls, mit welcher er wieder ins spiel befördert wird. winkel etc. sind momentan unwichtig, weil das hab ich... wie könnte man das theoretisch lösen? also hat jemand nen denkanstoß für mich? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schlägerkante um den Ballradius nach Außen versetzt und darauf dann ''Line Intersect'' durchführen. Einfach mal nach ''Line Intersect'' hier im Forum suchen.
Edit1: Für ein Ballverhalten kannst du folgenden Code als Beispiel benutzen: Code: [AUSKLAPPEN] ;by hectic
Graphics3D 400,600,0,2 SetBuffer BackBuffer() Local XG#=0 Local YG#=0 Local CM=CreateCamera() PositionEntity CM,0,0,-8 CameraProjMode CM,2 CameraZoom CM,.02 AmbientLight 255,255,255 SeedRnd MilliSecs() Local BL=CreateSphere(24) PositionEntity BL,9,-4,0 ScaleMesh BL,1.8,1.8,1 EntityRadius BL,1.8 EntityType BL,1 Local BR=CreateBrush() Local MU=CreateMesh(),FU=CreateSurface(MU,BR):EntityType MU,2:Collisions 1,2,2,2:EntityColor MU,96,96,112 Local MB=CreateMesh(),FB=CreateSurface(MB,BR):EntityType MB,3:Collisions 1,3,2,2:EntityColor MB,200,160,80 Local X1,X2,X3,X4 Local Y1,Y2,Y3,Y4 Local Q,MX,MY Local MXX,MYY Local NX#,NY# Local W1#,W2# Local W3#,W4# Local SP# For Q=1 To 42 Read X1,Y1,X2,Y2,X3,Y3,X4,Y4 If Q<32 Then MC(FU,X1,Y1,X2,Y2,X3,Y3,X4,Y4):Else MC(FB,X1,Y1,X2,Y2,X3,Y3,X4,Y4) Next Function MC(sf,x1,y1,x2,y2,x3,y3,x4,y4) AddTriangle sf,AddVertex(sf,x1,y1,0),AddVertex(sf,x2,y2,0),AddVertex(sf,x3,y3,0) AddTriangle sf,AddVertex(sf,x3,y3,0),AddVertex(sf,x4,y4,0),AddVertex(sf,x1,y1,0) AddTriangle sf,AddVertex(sf,x2,y2,0),AddVertex(sf,x1,y1,0),AddVertex(sf,x1,y1,1) AddTriangle sf,AddVertex(sf,x1,y1,1),AddVertex(sf,x2,y2,1),AddVertex(sf,x2,y2,0) AddTriangle sf,AddVertex(sf,x3,y3,0),AddVertex(sf,x2,y2,0),AddVertex(sf,x2,y2,1) AddTriangle sf,AddVertex(sf,x2,y2,1),AddVertex(sf,x3,y3,1),AddVertex(sf,x3,y3,0) AddTriangle sf,AddVertex(sf,x4,y4,0),AddVertex(sf,x3,y3,0),AddVertex(sf,x3,y3,1) AddTriangle sf,AddVertex(sf,x3,y3,1),AddVertex(sf,x4,y4,1),AddVertex(sf,x4,y4,0) AddTriangle sf,AddVertex(sf,x1,y1,0),AddVertex(sf,x4,y4,0),AddVertex(sf,x4,y4,1) AddTriangle sf,AddVertex(sf,x4,y4,1),AddVertex(sf,x1,y1,1),AddVertex(sf,x1,y1,0) End Function Data -46,-57,-18,-71,-16,-75,-50,-75 Data -50,-27,-46,-23,-46,-57,-50,-75 Data -50,+31,-35,+16,-35,-12,-50,-27 Data -50,+47,-46,+47,-46,+27,-50,+31 Data -50,+75,-38,+63,-46,+47,-50,+47 Data -50,+75,-22,+75,-22,+71,-38,+63 Data -22,+75,+22,+75,+22,+71,-22,+71 Data +22,+75,+50,+75,+38,+63,+22,+71 Data +38,+63,+50,+75,+50,+47,+46,+47 Data +46,+47,+50,+47,+50,-75,+46,-75 Data +27,+16,+42,+31,+42,-27,+27,-12 Data +38,-23,+42,-27,+42,-55,+38,-57 Data +10,-71,+42,-55,+42,-75,+08,-75 Data -38,-46,-20,-55,-24,-63,-42,-54 Data -42,-28,-38,-30,-38,-46,-42,-54 Data -32,-18,-30,-22,-38,-30,-42,-28 Data +12,-55,+30,-46,+34,-54,+16,-63 Data +30,-30,+34,-28,+34,-54,+30,-46 Data +22,-22,+24,-18,+34,-28,+30,-30 Data -27,-37,-18,-46,-18,-51,-34,-43 Data -34,-35,-27,-28,-27,-37,-34,-43 Data +10,-46,+19,-37,+26,-43,+10,-51 Data +19,-28,+26,-35,+26,-43,+19,-37 Data -24,+45,-21,+48,-18,+45,-21,+33 Data -18,+36,-21,+33,-24,+36,-21,+48 Data -10,+45,-07,+48,-04,+45,-07,+33 Data -04,+36,-07,+33,-10,+36,-07,+48 Data +04,+45,+07,+48,+10,+45,+07,+33 Data +10,+36,+07,+33,+04,+36,+07,+48 Data +18,+45,+21,+48,+24,+45,+21,+33 Data +24,+36,+21,+33,+18,+36,+21,+48 Data -27,-28,-18,-46,-27,-37,-27,-37 Data +10,-46,+19,-28,+19,-37,+19,-37 Data -18,+22,-14,+24,-10,+22,-08,+18 Data -08,+18,-10,+14,-20,+18,-18,+22 Data -10,+14,-14,+12,-18,+14,-20,+18 Data +03,+22,+07,+24,+11,+22,+13,+18 Data +13,+18,+11,+14,+01,+18,+03,+22 Data +11,+14,+07,+12,+03,+14,+01,+18 Data -10,+02,-06,+04,-02,+02,-00,-02 Data -00,-02,-02,-06,-12,-02,-10,+02 Data -02,-06,-06,-08,-10,-06,-12,-02 While Not KeyHit(1) YG=YG-0.0075 If EntityY(BL)<-75 Then HideEntity BL:UpdateWorld:PositionEntity BL,0,26,0:UpdateWorld:ShowEntity BL UpdateWorld If CountCollisions(BL) Then NX#=CollisionNX(BL,1) NY#=CollisionNY(BL,1) W1#=ATan2(YG,XG) W2#=ATan2(NY,NX) W3#=180+(W2*2)-W1 W4#=Abs(Cos(W1-W2)*1.2)^6 SP#=Sqr(XG^2+YG^2) XG=Cos(W3)*SP/(1+W4) YG=Sin(W3)*SP/(1+W4) If EntityCollided(BL,3) Then XG=XG+Cos(W2)*.6:YG=YG+Sin(W2)*.6 End If TranslateEntity BL,XG,YG,0 RenderWorld If KeyDown(203) Then XG=XG-.005 If KeyDown(205) Then XG=XG+.005 If KeyDown(200) Then YG=YG+.005 If KeyDown(208) Then YG=YG-.005 MX=MouseX()/4 MY=MouseY()/4 MXX=Int(MX)*4 MYY=Int(MY)*4 Line MXX,0,MXX,600 Line 0,MYY,400,MYY Text 20,20,MX-50 Text 20,40,75-MY Flip Wend End Relevantes Verhalten wird zwischen Codezeile 114 und 125 berechnet. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group