有些习惯,新手阶段不养好,以后就很难扭转了。建议以后,至少if和for,把圆括号、花括号和缩进写全。
一般游戏逻辑(即使这样的测试使用),也只是在按下空格的“瞬间”,获取“一次”物品,但在你的当前逻辑下,按下空格后xx的值变更了,无论是否在别的阶段里使用、丢弃、更改了对应格子的内容,这段代码执行时都在“不停”给对应格子刷新物品。这样说的如果不清楚,那么原来的代码更改一下格式可能会清楚一些:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=c688dc3ae6cc7cd9fa2d34d109002104/bc4543fbb2fb43160705bdad65a4462308f7d3fc.jpg?tbpicau=2024-08-01-05_34c0c12fda904811fc35fcf38f3fdfb7)
更改格式后代码的9到20行,是无论是否刚刚按下空格(第3行的判断),都会尝试执行的。如果改成“只在按下空格时尝试刷新物品”的话,这些代码都要被第3行的判断影响,即第7行的花括号结束要移动到更靠下的地方(第21行),把这几行涵盖进去:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=e3d2142a3e899e51788e3a1c72a6d990/c87c1f23dd54564e447023eef6de9c82d0584ffd.jpg?tbpicau=2024-08-01-05_4e52067fdaa80d1fb3856434401a1eb0)
当然,按缩进逻辑,中间的部分要多缩进一级。