坦克大战第一个不爆炸

在学习韩顺平老师的Java基础课程中,遇到游戏内炸弹爆炸图片无法正常加载的问题。通过debug发现图片加载存在延迟,导致未能及时显示。解决办法是在绘制前加入Thread.sleep短暂暂停。

学习B站韩顺平老师的 Java 基础课时遇到的

Debug

  1. 在获取炸弹的那一行设置断点:
    在这里插入图片描述

  2. 然后对敌方坦克射击,子弹接触到地方坦克时到达断点

  3. 此时查看变量数据,发现有 image1 变量(也就是存爆炸图片的),但是点击右侧 show image 显示没有数据在这里插入图片描述

  4. 继续执行,发现在第一个炸弹爆炸的过程中,三个 image 变量均显示 no data

到这里大概就明白了,在第一次画图片时图片还未加载,我也觉得很离谱。更离谱的是:

  1. 在逐步执行点击多个 image 变量的 show Image 之后,下一轮,也就是炸弹的生命周期还未结束时,再点击会显示出图片在加载,再下一轮会显示图片,也就是手动 debug 的这个过程促使了图片的加载,接下来执行会发现成功画出了炸弹爆炸的图片
    在这里插入图片描述

原因

获取图片的方法 toolkit 本身的问题

解决方法

  1. 在绘制炸弹爆炸之前 Thread.sleep 一下,可以 10 ns,如果不行再多一些在这里插入图片描述

  2. 据说韩老师后面会用另一个工具类,解决这个问题

评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三更鬼

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值