Javascript 移相器3如何计算每次平台顶部的y位置?

Javascript 移相器3如何计算每次平台顶部的y位置?,javascript,logic,phaser-framework,calculation,Javascript,Logic,Phaser Framework,Calculation,我正在做Phaser 3教程(用于制作2d和3d游戏的javascript框架),我想知道Phaser 3如何通过这个简单的计算处理y位置: /** * @param {Phaser.GameObjects.Sprite} Sprite */ addCarrotAbove(sprite) { // this one!!!!! const y = sprite.y - sprite.displayHeight

我正在做Phaser 3教程(用于制作2d和3d游戏的javascript框架),我想知道Phaser 3如何通过这个简单的计算处理y位置:

    /**
     * @param {Phaser.GameObjects.Sprite} Sprite
     */
    addCarrotAbove(sprite)
     {
        // this one!!!!!
        const y = sprite.y - sprite.displayHeight

        /** @type {Phaser.Physics.Arcade.Sprite} */
        const carrot = this.carrots.get(sprite.x, y, 'carrot')

        this.add.existing(carrot)

        carrot.body.setSize(carrot.width, carrot.height)

        return carrot
    }
当解析一个不同的对象到这个函数时,它代替了我写的sprite,是一个自动平台回收的东西/迭代:

```update(t, dt)
    {
        this.platforms.children.iterate(child => {
            /** @type {Phaser.Physics.Arcade.Sprite} */
            const platform = child

            const scrollY = this.cameras.main.scrollY
            if (platform.y >= scrollY + 600)
            {
                platform.y = scrollY - 60
                platform.body.updateFromGameObject()

                // create a carrot above the platform being reused
                this.addCarrotAbove(platform)
            }
        })```
它会自动将胡萝卜放在平台顶部(执行函数时)


它是如何做到的?我唯一感兴趣的一行是我用const创建的y变量。胡萝卜的位置是通过那个简单的计算得到的,但我不明白每次它是如何把胡萝卜放在平台的顶部的。谢谢你的社区

没关系,我想出来了。对于任何有相同问题但不能解决的人,我编写的回收平台函数使用相机滚动向上发送平台,这给Y坐标一个负值。为了生成不在平台内部(即sprite.y)和平台上方的胡萝卜,可以减去sprite显示高度,而不是将两者相加,因为sprite.y是负值,减去它,就是将胡萝卜向上发送显示高度的像素量。希望我能帮忙