Need a custom module/class used to spin and rotate one display object around another display object, just like a satellite orbiting the earth. Must be written entirely in Corona-SDK Lua.
The satellite object can be either a bitmap or a vector object defined by Corona SDK.
The parent object can also be a sprite. The parent object must be able to have more than one satellites orbiting around it. The satellites should ignore collisions from each other and the parent, except for foreign objects on the display.
The satellite object should fade in when started, and fade out when deleted.
The module should be written for a "designer" (not an "engineer") coder. Must have a level of abstraction so that the "engineering" details of the class are "hidden" to the designer. The "designer" coder should be able to experiment just by changing a few parameters in the code, such as
- length of fade in or fade out time when started or deleted
- distance of the satellite object to the parent object
- speed and direction of orbit around the parent object
- speed and direction of rotation of the satellite object itself
- a boolean or some method, if set, fixes the satellite to one angle (example: an arrow-shaped satellite would always point up as it orbits around the parent)
Satellite object must smoothly follow the parent object with a slight delay/lag (also adjustable by designer) and damping. The movement will naturally cause the orbit to become more elliptical which is desired.
Need an example/test program with a main.lua that shows both bitmap and vector satellites following a parent that can be moved by a user. The example must demonstrate that the satellites responds only to collisions from foreign display object (example: a parent with 3 satellites moving in different directions that may occasionally collide with each other and the parent, but the satellite is only deleted if hit by a foreign object on screen).
Please provide rich comments.
You may use or modify any existing open source, but please credit appropriately in the code.