My friend figured it out as soon as he saw the GIF! Crazy.
Ok, so I had to apply the delta time function to the camera I made, as it wasn't frame rate independent like the player that it follows (the Player object uses the platform behavior which already has Delta Time applied to it). Before setting up the camera, I noticed that every once in a while the game might hitch for a fraction of a second, but when I added the camera without the DT function, the ball would just jerk when the game would hitch (very technical, eh?).
Anyway, for anyone adding a camera to follow a player that's using either the platform or 8 direction behavior (I believe it's different for the Physics behavior), here is how you set it up so that it is framerate independent:
- Create a blank sprite near your player (preferably on the same layer, though this isn't necessary as long as there is no special layer properties such as parallax), this will be your camera, From here on we'll assume the player object is named "Player", and the camera sprite is named "Camera"
- Give the Camera the "Scroll To" behavior.
- Remove the "Scroll To" behavior from the Player object if it has one.
- Do the following in the corresponding event sheet: Add Event > System > Every Tick. Then click"Add Action" > choose the camera sprite > "Set Position".
- For X enter: lerp(Self.X, Player.X, 1 - 0.012 ^ dt)
- For Y enter: lerp(Self.Y, Player.Y, 1 - 0.012 ^ dt)
The "0.012" number you can adjust between 0 and 1 for different camera following speeds. I have a very fast player object, so I have the camera follow very quickly, but you can tweak the number as you see fit. If you need more information on lerp or any other aspects of this, there are numerous camera tutorials out there, but all of the ones I came upon skipped the part for Delta Time, and they looked like this:
X = lerp(Self.X, Player.X, 0.012)
Y = lerp(Self.Y, Player.Y, 0.012)
Hopefully this makes sense to some people or helps one of you down the road!