If distance moved per frame is relatively constant, you can probably use a system something like the following (definitely slower, but avoids doing a square root for distance):
- Per tank, keep track of x and y (separately) moved since the last tread mark was placed
- Each frame, check if the sum of the squares of the x and y counters is over some value. If so, place a tread mark
- Reset x and y movement counters every time a tread mark is placed
Oh, that's really smart! I'll be sure to add that next time I work on the game.