an eine Art Gummiband hängt. Dann kann man den Ball werfen und er dreht sich auch.
Blöder Ball ist für alle die programmierten Schwachsinn mögen:
Code: Alles auswählen
InitSprite()
InitMouse()
InitKeyboard()
ExamineDesktops()
Global sw.l, sh.l
sw = DesktopWidth(0)
sh = DesktopHeight(0)
OpenScreen(sw,sh,32,"BloederBall_v1.0")
Global ballx.f, bally.f, ballxm.f, ballym.f, pw.l, tempx.f, tempy.f, rot.f,rotm.f , pi.f
pi = 3.141592
ballx = 640
bally = 512
ballxm = 11
pw = 2000
CreateSprite(0,sw,sh,0)
StartDrawing(SpriteOutput(0))
For x = 0 To 9000
Box(Random(sw),Random(sh),16,16,RGB(0,Random(50),0))
Next
StopDrawing()
Repeat
DisplaySprite(0,0,0)
ExamineKeyboard()
ExamineMouse()
;Kraftdivision einstellen
If MouseWheel() > 0
pw + 100
If pw = 0
pw = 1
EndIf
EndIf
If MouseWheel() < 0
pw - 100
If pw = 0
pw = -1
EndIf
EndIf
If bally < -16000
bally = -16000
ballym = 0
EndIf
If MouseButton(1)
tempx = (ballx-MouseX())/pw
tempy = (bally-MouseY())/pw
ballym - tempy
ballxm - tempx
ping = 1
Else
ping = 0
EndIf
If bally < sh-16
ballym = ballym + 0.1
EndIf
bally + ballym
If bally > sh-16
bally = sh-16
ballym = -(ballym/2)
rotm = ballxm
EndIf
If ballxm > 0
ballxm - 0.01
EndIf
If ballxm < 0
ballxm + 0.01
EndIf
ballx+ballxm
If ballx > sw-16
ballx = sw-16
ballxm = -(ballxm/2)
rotm = -ballym
EndIf
If ballx < 16
ballx = 16
ballxm = -(ballxm/2)
rotm = ballym
EndIf
If rotm > 0
rotm - 0.01
EndIf
If rotm < 0
rotm + 0.01
EndIf
StartDrawing(ScreenOutput())
olposx = MouseX()
olposy = MouseY()
If ping = 1
For x = 0 To 50
If ballx > olposx
newposx = Random(16)-4
Else
newposx = Random(64)-32
If ballx < olposx
newposx = 4-Random(16)
EndIf
EndIf
If bally > olposy
newposy = Random(16)-4
Else
newposy = Random(64)-32
If bally < olposy
newposy = 4-Random(16)
EndIf
EndIf
If x = 100
newposx = olposx-ballx
newposy = olposy-bally
EndIf
Line(olposx,olposy,newposx,newposy,RGB(100-x,50-x/2,255-x*2))
olposx = olposx + newposx
olposy = olposy + newposy
Next
EndIf
Circle(ballx,bally,16,RGB(100,0,0))
rot - rotm
For x = 1 To 8
rox.f = Sin(2*pi*((rot+(x*45))/360))*15
roy.f = Cos(2*pi*((rot+(x*45))/360))*15
Line(ballx,bally,rox,roy,RGB(255,0,0))
Next
Line(MouseX(),MouseY()-16,0,32,RGB(255,255,0))
Line(MouseX()-16,MouseY(),32,0,RGB(255,255,0))
Locate(0,0)
DrawingMode(1)
FrontColor(255,255,255)
DrawText("Power-Division: "+Str(pw))
Locate(0,16)
DrawText("Ball-X: "+Str(ballx))
Locate(0,32)
DrawText("Ball-Y: "+Str(bally))
Locate(0,48)
DrawText("Ball-Move-X: "+StrF(ballxm,3))
Locate(0,64)
DrawText("Ball-Move-Y: "+StrF(ballym,3))
StopDrawing()
FlipBuffers()
ClearScreen(10,10,0)
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End