gamemaker吧 关注:13,584贴子:94,401
  • 16回复贴,共1

物品管理的问题!!

只看楼主收藏回复

按空格键增加物品2时,最后会多一个物品1,是怎么回事啊?楼下有链接


IP属地:湖北1楼2022-05-23 07:00回复
    链接:https://pan.baidu.com/s/16M4C8Rt5-1LOHlYoJbNzrQ
    提取码:5s6r
    复制这段内容后打开百度网盘手机App,操作更方便哦


    IP属地:湖北2楼2022-05-23 07:01
    回复
      提问规则里有这样一条,不准拿别人写的代码问第三方。所以……如果这段代码是别人写的,是谁写的就让谁去修复问题;如果这段代码是自己写的,请回答以下几个疑点(毕竟整个代码的逻辑都比较乱),没准题主回答问题的过程中就找到了关键点。
      1-xx、i、j这3个变量分别是什么作用
      2-i循环里的draw sprite、j循环里的draw sprite,分别想draw什么东西
      3-draw事件第17行的draw sprite,明明位于j循环却使用i变量,理由是什么
      4-draw事件6到9行的赋值不受第3行的if影响,从一定意义上来说是“持续发生”的,是否符合设计意图


      IP属地:北京3楼2022-05-23 13:02
      收起回复
        有些习惯,新手阶段不养好,以后就很难扭转了。建议以后,至少if和for,把圆括号、花括号和缩进写全。
        一般游戏逻辑(即使这样的测试使用),也只是在按下空格的“瞬间”,获取“一次”物品,但在你的当前逻辑下,按下空格后xx的值变更了,无论是否在别的阶段里使用、丢弃、更改了对应格子的内容,这段代码执行时都在“不停”给对应格子刷新物品。这样说的如果不清楚,那么原来的代码更改一下格式可能会清楚一些:

        更改格式后代码的9到20行,是无论是否刚刚按下空格(第3行的判断),都会尝试执行的。如果改成“只在按下空格时尝试刷新物品”的话,这些代码都要被第3行的判断影响,即第7行的花括号结束要移动到更靠下的地方(第21行),把这几行涵盖进去:

        当然,按缩进逻辑,中间的部分要多缩进一级。


        IP属地:北京4楼2022-05-23 14:42
        收起回复
          噢,对了,之前有一个疑点没解决,就是i循环和j循环似乎在做“同一件事”。
          建议把j循环里的y坐标改成y+45观察一下j循环是不是“多余”。


          IP属地:北京5楼2022-05-23 15:55
          收起回复