Block execution order

../../_images/image-123.png

Description of blocks

Blocks added to the workspace are executed once, at the time the block or block construction is called. To loop or repeat execution N number of times, you must place a block or construct in the appropriate block from the “Chains” section

The block execution logic is executed sequentially, starting with the “Preparing the scene” block, which performs all actions within itself before the start of the project

Next, if you want to make presets for the project, place the “Run chain at scene start” block in the editor. For example, enable or disable gravity for the player

../../_images/image-57.png

Note

Both of these blocks are in the :ref:`”Events”<blockly-events>`block category

Logic Execution Order

Blockly blocks have a number of events that execute in a predetermined order as the logic executes. This execution order is described below:

../../_images/image-68.png

Scene preparation

Initialization of objects on the stage - loading and placing objects on the stage

Initialization of object events - subscription to events of objects used in logic

Scene start

Execution of blocks located in the “Start the chain at the start of the scene” and free blocks

Game logic

Execution of parallel chains, event handling

Examples

Example 1

../../_images/image-212.png
  • The first block will be executed once when the scene is loaded
  • The second block will also be executed once, since it is not burdened with any condition for execution and it will also be executed at the moment of scene initialization

Example 2

Consider an example with a robot

../../_images/image-48.png

In this case, the logic of the “Execute without waiting” blocks from the “Chains” section is used. If the blocks are connected in one logical chain, then their execution will be parallel, that is, each of the actions will be performed without waiting for the completion of the previous one, and so on for each block in the structure

Attention

Only one action block can be placed in the “Execute without waiting” block!

In logic, the robot is given:

  • Rotate around the Z axis at 500 degrees per second
  • Move in the direction of the X axis at a speed of 1 meter per second

These two actions are in the same construct, each of which is placed in “execute without waiting”, so they will be executed in parallel