self.movex = math.cos(self.angle) * self.amplitude

self.movey = math.sin(self.angle) * self.amplitude

#I couldn’t just add movex/y to the rect because that calculation

#means the rectx/y values are being calculted by the vector PLUS

#the rectx/y meaning the x and y sums probably wont be in line

#with the ratio the vectore intended.

#So I add the vector to the ships position and give rect THAT.

#the difference is that I use the ship’s position as a reference

#so every time I give rectx/y a new value, that value keeps the

#ratio, but just adds the ships starting x/y as a reference point.

#The original didn’t HAVE a refereence point, it just added values

#to rectx/y which means it will change ….

#ok it’s because we keep calculating the vector again because

#we it’s amplitude! If each time we change the vectors amplitude

#we add it to the rectx/y which changes the rectx/y, then we

#are dealing with a ship in a new position and trying to add

#the same vector(but at a new amplitude, point on the line) to

#that NEW starting position.

#let’s take rectx by it’s sef for example. If you change it’s position

#and then add a vectore of a different length to it, you are

#adding to a different rect/x position so it’s …

#I mean, the longer the amplitude, the more it seemed to be in

#line, but without any amplitude, you’re looking at#the cos and sin

#values, and adding those to rect x and y, and then adding them

#again etc.

#We need to go „5+1, 5+2, 5+3

#not „5+1, 6+2, 8+3

#because if cos was 2 but sin was 1

#then it wouldn’t be the right ratio to do things the second

#way for cos and sin, because while you are increasing both

#cos and sin values by the right ratio, by adding them to values

#that then increment at different rates, well then you have values

#of rect x and rect y that GROW at different rates! where as the cos

#and sin grow at the same rates.

#x 5+1 = 6 5+2 = 7 5+3 = 8

#y 5+2 = 7 5+4 = 9 5+6 = 11

#the rate for x is 1 6, 7, 8

#the rate for y is 2 7, 9, 11

#x 5+1 = 6 6+2 = 8 8+3 = 11

#y 5+2 = 7 7+4 = 11 11+6 = 17 y get’s larger FASTER than x

#rate for x is 1, but 6, 8, 11 is not 1 it’s closer to 2.something

#rate for y is 2, but 7, 11, 17 is not 2 it’s closer to 5

#it seems CLOSE to the 1/2 but it’s NOT because…

#11+4 = 15 15+5 = 20

#17+8 = 35 35+10 = 45

#the rates of growth for x here is 5 + 15

#and for y it’s 5+40 because we need to take into account

#what has been added as well for each.

#in the right exampe it will always be x = 5+something

#and y = 5+something*2

#in the wrong example you can see that by the 5th iteration

#15/40 != 1/2

So this works:

self.rect.x = self.x1 + self.movex

self.rect.y = self.y1 + self.movey

#self.x1 and self.y1 act as references to „5“ in the examples above.

This does not

self.rect.x+= self.movex

self.rect.y+= self.movey

Because the ratio will not not remain fixed.