This can be used in an unlimited amount of games. It shows a ball (or cannonball) randomly being thrown or hit in a 3D perspective toward the Z axis. There is no Z axis in the code though, it uses a parabola equation I found on ChatGPT and after experimentation I came up with this. I also found the SGN command on ChatGPT that helps with choosing either a positive or negative random number. I used to do it a different way in my games, but had forgotten how I did it, so I found this.
Feel free to use this in any of your games or programs. Would make a cool baseball or golf game I would think.
Left click the mouse to throw each time.
Feel free to use this in any of your games or programs. Would make a cool baseball or golf game I would think.
Left click the mouse to throw each time.
Code: (Select All)
'Ken's Throw The Ball Demonstration
'I got the parabola equation and SGN command for random numbers from ChatGPT and I made the rest.
'Feel free to use this as you wish.
Screen _NewImage(800, 600, 32)
Cls
_Title "Click The Left Mouse Button To Throw"
' Define the coefficients for the parabola y = ax^2 + bx + c
Dim a As Double, b As Double, c As Double
centerX = 400
centerY = 300
c = 0
s = 100
ball = 8
Do
Do
Do While _MouseInput
oldm = m
m = _MouseWheel
If _MouseButton(1) Then
b = Int(Rnd * _Pi) + 6
a = Int(Rnd * 7) - 7
randomx = (Rnd * 10) * Sgn(Rnd - 0.5)
Cls
End If
Loop
Loop Until _MouseButton(1)
If m > oldm Then
a = a + .1
b = b + .1
Cls
oldm = m
End If
If m < oldm Then
a = a - .1
Cls
oldm = m
End If
' Set up a loop to draw the parabola
For x = -20 To 30 + a Step .5
' Calculate y using the parabola equation
y = a * (x / 10) ^ 2 + b * (x / 10) + c
' Convert to screen coordinates
screenX = centerX + x * randomx
screenY = centerY - y * 10
If ball > 1.5 Then ball = ball - .2
' Plot the point
Circle (screenX, screenY), ball, _RGB32(255, 255, 255)
_Delay .05
s = s + .1
Sound s, 1
_Display
Cls
Next x
s = 100
ball = 8
Loop Until InKey$ = Chr$(27)
End