Skip to content

10 Time Scale ​

In this chapter, we will setup and implement Time Scale Change.

Time Scale Change ​

Implementation of Time Scale Change is very similar to BPM Change as seen in the previous chapter.

TypeScript
export const skin = defineSkin({
    sprites: {
        // ...
        timeScaleChangeLine: SkinSpriteName.GridYellow,
    },
})
JavaScript
export const skin = defineSkin({
    sprites: {
        // ...
        timeScaleChangeLine: SkinSpriteName.GridYellow,
    },
})
TypeScript
export const archetypes = defineArchetypes({
    // ...
    [EngineArchetypeName.TimeScaleChange]: TimeScaleChange,
})
JavaScript
export const archetypes = defineArchetypes({
    // ...
    [EngineArchetypeName.TimeScaleChange]: TimeScaleChange,
})
TypeScript
export class TimeScaleChange extends Archetype {
    import = this.defineImport({
        beat: { name: EngineArchetypeDataName.Beat, type: Number },
        timeScale: { name: EngineArchetypeDataName.TimeScale, type: Number },
    })

    render() {
        line(skin.sprites.timeScaleChangeLine, this.import.beat, 0.5)

        print(
            this.import.timeScale,
            bpmChanges.at(this.import.beat).time,
            PrintFormat.TimeScale,
            'auto',
            PrintColor.Yellow,
            'left',
        )
    }
}
JavaScript
export class TimeScaleChange extends Archetype {
    import = this.defineImport({
        beat: { name: EngineArchetypeDataName.Beat, type: Number },
        timeScale: { name: EngineArchetypeDataName.TimeScale, type: Number },
    })

    render() {
        line(skin.sprites.timeScaleChangeLine, this.import.beat, 0.5)

        print(
            this.import.timeScale,
            bpmChanges.at(this.import.beat).time,
            PrintFormat.TimeScale,
            'auto',
            PrintColor.Yellow,
            'left',
        )
    }
}