首页 > 解决方案 > 砖块破坏游戏在被球击中后没有从完整的砖块更新为破碎的砖块

问题描述

我有 2 个 png 文件,其中包含一块完整的砖块和一块破碎的砖块,我想在第一次与球碰撞后显示它们。

该游戏旨在在关卡开始时绘制砖块,然后过滤掉被击中两次的砖块。每次更新都应该重新绘制仍在游戏中的砖块,但我已经修改了我的绘制函数以包含一个 switch 语句,该语句应该根据是否被击中显示损坏或未损坏的砖块,但它不起作用。

绘制函数似乎没有响应 switch 语句,因为我尝试更改布尔值以查看是否可以让游戏仅绘制破碎的砖块,但它仍然显示未破碎的砖块。

只有当我使用 this.brickBroken 消除 switch 语句和 drawImage 时,我才能显示破碎的砖块。

我的brick.js 文件与game.js 是分开的,所以我可能遗漏了一些与game.js 文件通信的细节,它需要显示破碎的砖块,但似乎我应该能够更新显示的png 砖块来自brick.js 中的draw 函数的文件。

我错过了什么?

这是相关的brick.js 文件。

绘制(ctx){

    switch (this.hitBrick) {
        case true:
            ctx.drawImage(
                this.brickBroken, 
                this.position.x,
                this.position.y,
                this.width, 
                this.height);

        case false: 
        ctx.drawImage(
            this.brickUnbroken, 
            this.position.x,
            this.position.y,
            this.width, 
            this.height); 
    }
}







update(deltaTime) {
    if(detectCollision(this.game.ball, this )) {
        this.game.ball.speed.y = - this.game.ball.speed.y;

        if (this.hitBrick === true) this.markedForDeletion = true;

        this.hitBrick = true;

    }

}

标签: javascriptgame-development

解决方案


推荐阅读