If you want to have a simple 2D animation with position tweening, but you don’t want to use (or don’t have access to) closed-source software like Adobe’s Flash, you are:
a) honest,
b) cheap,
c) inventive, and/or
d) screwed.
I chose ©, after trying out (d) for a day. Turns out (d) is kind of trashy. Anyway, here is the non-flash solution I came up with:
Blender3D’s compositing nodes can all be animated via the right-click menu, so it is a simple matter to create a node graph which offsets the train image, by time, before merging the scene layers together. There is a small host of effects available, but only a few suite pixel-art. It’s worth trying out, and Blender is a quick download. Overall, Blender has one of the best UIs that I’ve ever seen.
The input images were drawn in GIMP. Putting together a node graph is incredibly easy - it basically follows, to a T, the workflow you’d use in GIMP to get the same results. As a bonus, it also appears to play very nicely with GAP. (The Gimp Animation Package was actually my first idea, but it’s quite complex and somewhat unintuitive. I’ve only been able to get the simplest features, like frame duplication, to work. It counted for most of (d), to be honest.)