javascript - 砖块破坏游戏在被球击中后没有从完整的砖块更新为破碎的砖块
问题描述
我有 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;
}
}
解决方案
推荐阅读
- c++ - 使用 constexpr 初始化非常量静态字符串
- typescript - SystemJS 看不到导出
- spring-boot - Spring Thymeleaf 中的可编辑表
- flutter - Expanded Widget 抛出“RenderBox 未布局”异常
- nativescript - 列表视图上的三元操作不适用于 nativescript
- c# - 您如何在代码中组织您的操作方法和控制器 - 通过 url 或返回的实体?
- java - Spring核心中的自动装配冲突与xml配置
- swift - 如何获取 uiview 的任何信息(视觉调试器报告的原始地址)
- android - 如何解决打开 Android Studio 时出现的“port.lock”错误?
- angular - 如何更改角字体真棒中“fa-icon”元素的旋转速度?