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',
        )
    }
}