Skip to content

Calculations

Because Hikkaku compiles TypeScript to Scratch blocks, runtime math must use block helpers.

Static Calculations

Use normal TypeScript when the value is known at compile time.

ts
import { 
moveSteps
,
whenFlagClicked
} from 'hikkaku/blocks'
sprite
.
run
(() => {
whenFlagClicked
(() => {
moveSteps
(10 + 5)
}) })

Dynamic Calculations

Use Hikkaku operator blocks when values depend on runtime state.

ts
import { 
getVariable
,
moveSteps
,
whenFlagClicked
} from 'hikkaku/blocks'
import {
add
} from 'hikkaku/blocks'
const
stepVar
=
sprite
.
createVariable
('stepVar', 0)
sprite
.
run
(() => {
whenFlagClicked
(() => {
moveSteps
(
add
(
getVariable
(
stepVar
), 5))
}) })

Common Mistake

ts
moveSteps
(stepVar + 5)
Operator '+' cannot be applied to types 'VariableReference' and 'number'.

This is invalid because stepVar is a variable reference, not a JavaScript number at Scratch runtime.