+Schedule a delay execution of a given function after the given time.
+
+Argument name | Description
+---------------|-------------
+func | A function to be executed.
+time | Time, given in frames (NOTE: 40 frames = 1 second). NOTE: If <=0 it is the same as =1.
+repeatCount | The number of times the function will be executed. After such number of times executed, the delay execution will be removed from the list and get deleted. If =0 the delay execution object will be deleted soon. If <0 the function will be executed indefinitely.
+repeatInterval | The repeat interval. If it is `nil` then the `time` argument will be used instead. NOTE: If <=0 the repeat execution will be disabled at all and the repeatCount will be set to 1.
+enabled | Enabled.
+arguments | Optional arguments passed to the function.
+
+Return value: the delayExecution object.
+
+NOTE: If you want to update time/repeatCount during the function execution,
+notice that the time/repeatCount is updated BEFORE the function execution.
+
+NOTE: During the execution the global variable `this`
+temporarily points to current delay execution object. (Ad-hoc workaround!)
+When the execution ends the global variable `this` is reset to `nil`.
+* isValid() -- Check if it's valid, i.e. not removed from list.
+
+* cancel() -- Cancels a delay execution. The canceled delay execution will be removed from the list and can not be restored.
+
+* isEnabled()/setEnabled(bool) -- get/set enabled of a delay execution. A disabled one will not count down its timer.
+
+* getTime()/setTime(integer) -- get/set the remaining time until the next execution. NOTE: If <=0 it is the same as =1.
+
+* getRepeatCount()/setRepeatCount(integer) -- get/set the remaining repeat count. If =0 the object will get deleted soon. If <0 the function will be executed indefinitely.
+
+* getRepeatInterval()/setRepeatInterval(integer) -- get/set the repeat interval. NOTE: If <=0 then nothing happens.
+
+* getFunc()/setFunc(func) -- get/set the function to be executed. NOTE: The setFunc will return the original function.
+
+* getArguments()/setArguments(args...) -- get/set the arguments
+
+* getExecutionTime()/setExecutionTime(integer) -- get/set the number of times the function being executed. NOTE: this execution time doesn't affect the default logic.
+
The "camera" library
--------------------
### Static functions:
* setMode(mode) -- set the camera mode, which is "player" or "shadow"
* lookAt(x,y) -- set the camera mode to "custom" and set the new center of camera
The "audio" library
-------------------
NOTE: the following functions are not going to work if the sound/music volume is 0.