Main menu:
General Tips
You can input in single quotation marks ( " ) by typing two quotation marks ( "" ) in the Expression Editor.
For example:
" ""Hello World"" " returns "Hello World"
Collisions are layer dependent. If Object A is on layer 1 and Object B is on layer 2, the two objects can never trigger any collision related event.
Likewise, you can improve performance by splitting collisions across layers.
**Note**
Does not apply to physic-related collisions. These collisions are not layer dependent and thusly can cause a collision on any layer.
Hot spots determine at what pixel an object's position is calculated at. If you try to get an object's position and the hot spot is located at (0,0), the position expression will always return the object's top left corner coordinates.
Hot spots also determine the center point when an object rotates. Ball objects should have hot spots in the center of the object while platform objects should have hot spots placed at the object's "feet."
Mass Hot Spot, Action Point, Crop:
Control + Shift + <Click on the Respective Button>
Each tool also has their respective hotkey which you can view by hightlighting the tool.
Clickteam Fusion uses Short Circuit Evaluation when events are processed. Essentially, if you have an event with 30 conditions and the first condition is false, the other 29 conditions are not even checked.
As such, unless proper object scoping is needed, you should leave performance heavy events, such as overlaps, towards the bottom of an event's condition list. This simply trick greatly improves performance.
In MMFusion, you may keep your events bundled in the Event Editor or you may spread your events throughout the editors.
The order of execution for the various editors is as follows:
1. Event Editor (top to bottom)
2. Global Event Editor (top to bottom)
3. Behaviours (top to bottom)
a. Executed in order of object (not instance) creation during edittime
b. Executes even if no instances of the object exist during runtime
You can easily limit the range of a variable by using the Range() function within Clickteam Fusion which has the following format:
Range(MyVariable, lower-limit, upper-limit)
In Multimedia Fusion 2, you will need to use the following expression:
Max( Min( MyVariable, upper-limit), lower-limit)
Explanation of other native MMF2 and Clickteam Fusion functions can be found in the "Extension Editor Basics" reference guide.
Always place, sort, and organize your events into groups! Groups are a way to organize code within MMFusion. You can name groups, protect groups with a custom password, nest groups within other groups, and enable/disable groups during runtime. Furthermore a group is deactivated, all events and sub-groups within the group are also deactivated!
Group manipulation is a powerful technique and can open many new doors within MMFusion.
You can enable HWA (Hardware Acceleration) by changing the Display Mode to Direct3D 8 or Direct3D 9 (preferred). HWA allows the application to execute with more optimizatoin and consequently run faster.
The Create Object's conditions are fast compared to an object's Alterable Variable comparision condition. Like really fast. EXTREMELY FAST.
When you have performance issues with object selection, try scoping with any condition from the above image, specifically from the "Pick objects with reference to their value"
While there is no explict equation to retrieve the window dimension for an application, you can implicitly extract the dimensions with the following equations:
Window Width:
X Right Frame - X Left Frame
Window Height:
Y Bottom Frame - Y Top Frame
Below is a simple expression to find the coordiantes of the window's center.
X Coordinate:
X Left Frame + ( ( X Right Frame - X Left Frame ) / 2 )
Y Coordinate:
Y Top Frame + ( ( Y Bottom Frame - Y Top Frame ) / 2 )
Generic Easing Formula:
Current or Offset Value + ( Min( Ease Speed, Abs( Distance between values ) ) * ( ( Distance between values ) / Abs( Distance between values ) ) )
Easing Formula with Object Position:
Current Position + ( Min( Ease Speed, Abs( Current Position - Destination Position ) ) * ( ( Current Position - Destination Position ) / Abs( Current Position - Destination Position ) ) )
This formulas are intended to be used with the "Set X-Position" and "Set Y-Position" of object actions. The subtrahend of both equations represents the actual displacement of the object. If the easing formula eases in the opposite direction, you may need to change the '+' symbol to a '-' symbol.
You can retrieve the sign of a number with the following equation:
Return the Sign of a Number:
Number / Abs(Number)
If 1 is returned
Number is positive
If -1 is returned
Number is negative
**Note**
Be sure to test if the number is 0 to avoid possible runtime errors.
The limit for names for any object during runtime is 24 characters. Any character past the 24th is cutoff. Keep object's names under 24 characters to avoid possible oddities in your program.
If an application uses any physic movements/objects, do not delete the Physic Engine Object attached to the object during runtime! If a required Physic Engine Object is missing, the entire application crashes.
The object scope before and after a fastloop differs from the original object scope if the fastloop executes any actions. These changes are typically unintentional so be aware of the possible change in object scope!