I’m new to coding, it’s been a long time since I last coded,
I did it all of a sudden because of a school assignment.
I know my coding is a terrible code covered in ‘global’, but I’m too noob to fix it, so I gave up.
I’m only going to use this as a demonstration of how it works in school, so it doesn’t matter how it’s coded as long as it works.
I know that this error occurs when I put Python keywords in a variable,
Python keywords in the variable are nowhere to be found no matter how much I look for them.
am i blind?
line 44, in draw springforceY = -springconst(positionY – headposY) TypeError: ‘int’ object is not callable
#importing module
from p5 import *
import builtins
def exit(): # to fix p5.exit exception(not working)
builtins.exit()
#initial var
gravity = 20
mass = 15
forceY = 0
forceX = 0
springforceY = 0
springforceX = 0
accY = 0
accX = 0
positionY = 100
positionX = 75
velocityY = 0
velocityX = 0
timeGap = 0.2
headpositionY = 110
headpositionX = 80
springconst = 2
#setup(): initial canvas setting
def setup():
size(400,400)
fill(0)
#draw(): loop after setup()
def draw():
global springforceX
global springforceY
global velocityY
global velocityX
global positionY
global positionX
global accY
global accX
global forceY
global forceX
#calculating
springforceY = -springconst(positionY - headpositionY) # <<< line 44
springforceX = -springconst(positionX - headpositionX)
forceY = mass * gravity + springforceY
forceX = springforceX
accY = forceY/mass
accX = forceX/mass
velocityY = velocityY + accY * timeGap
velocityX = velocityX + accX * timeGap
positionY = positionY + velocityY * timeGap
positionX = positionX + velocityX * timeGap
#showing
background(255, 255, 255)
ellipse(200, positionY, 20, 20)
ellipse(headpositionX - 5, headpositionY - 5, 10, 10 )
line(positionX, positionY, headpositionX, headpositionY)
text("gravity : "+str(gravity), (0,40))
text("mass : "+str(mass), (0,50))
text("accelrationY : "+str(accY), (0,60))
text("accelrationX : "+str(accX), (0,70))
if mouse_button == 'CENTER': # press wheel button to restart
velocityY = 0
velocityX = 0
positionY = 100
positionX = 75
if __name__ == '__main__':
run()
>Solution :
If it’s maths multiplication, the code should be
springforceY = -springconst * (positionY - headpositionY) # <<< line 44
springforceX = -springconst * (positionX - headpositionX)