minecraft吧 关注:2,542,996贴子:31,799,486

回复:【教程】MC个人向成果展示·教程贴

取消只看楼主收藏回复

3. turtle.dig() 破坏前面的实体,如果是农耕机器人而且前下方为泥土或者草方块的话会把它变为耕地。然后在生存中不能破坏的方块turtle也无法破坏。
4. turtle.place() 向前方放置一个实体,放置的实体为前面turtle.select(i)语句所选中格子的物品。如果选中的为种子或者树苗而且前面的地面符合种植条件的话就会种上去,如果选中的是骨粉且前面为种子或者树苗就会施加骨粉。对于依附性的实体比如火把开关等需要符合放置条件才能放置。
5.turtle.suck() turtle.suckDown() 向前方或者下方吸取掉落物或者从前方或下方的箱子吸取东西(前面一个语句向前方吸取,后面一个向下方吸取,其实还有个turtle.suckUp()语句),一次吸取一组物品到选中的格子,如果满了则放到下一格)
5. turtle.drop() turtle.dropDown() 与前面的语句相反,这个是以掉落物的形式放出东西或者往箱子里放置东西。
6. turtle.turnRight() 和它的字面意思一样,向右转。


IP属地:浙江本楼含有高级字体178楼2013-08-15 15:26
回复
    有了以上的这些语句就可以写出一个世界!!!
    当然这个一点都不夸张,首先来看看这个简单的全自动耕作程序的代码吧~~~


    IP属地:浙江179楼2013-08-15 15:28
    回复
      digit = turtle.getItemCount(1)
      for i = 1, digit do
      turtle.select(1)
      if not turtle.place() then
      turtle.dig()
      turtle.place()
      end
      turtle.select(16)
      repeat
      if turtle.getItemCount(16) == 0 then
      if not turtle.suckDown() then
      print("Bone Meal Lack")
      break
      end
      end
      until not turtle.place()
      turtle.dig()
      end
      turtle.turnRight()
      turtle.turnRight()
      for i = 1, 15 do
      turtle.select(i)
      turtle.drop()
      end
      turtle.turnRight()
      turtle.turnRight()

      这个就是完整的代码了。。。要看代码解释的话在下面


      IP属地:浙江本楼含有高级字体180楼2013-08-15 15:30
      收起回复
        digit = turtle.getItemCount(1)
        for i = 1, digit do
        turtle.select(1)
        if not turtle.place() then
        turtle.dig()
        turtle.place()
        end
        turtle.select(16)
        repeat
        if turtle.getItemCount(16) == 0 then
        if not turtle.suckDown() then
        print("Bone Meal Lack")
        break
        end
        end
        until not turtle.place()
        turtle.dig()
        end
        turtle.turnRight()
        turtle.turnRight()
        for i = 1, 15 do
        turtle.select(i)
        turtle.drop()
        end
        turtle.turnRight()
        turtle.turnRight()
        这个就是完整的代码了,有爱的抱走。。。要看代码解释的话在下面


        IP属地:浙江182楼2013-08-15 15:33
        收起回复
          digit = turtle.getItemCount(1)
          首先是第一条语句。之前有说过放入的种子数就是耕作的次数,所以需要获取第一格物品的数量


          IP属地:浙江183楼2013-08-15 15:36
          回复
            接下来是一个很大的for循环,每循环一次就收获作物一次,循环digit次就是上面提到的收获相应的次数。。。接下来就在重要的语句那里做上相应的注释。
            for i = 1, digit do
            turtle.select(1) --选择第一个格子,这里放置了种子
            if not turtle.place() then --这是一个if语句,如果无法放置种子的话说明前下方放置的是泥土或者草地,需要将其犁成耕地,然后放置种子。
            turtle.dig()
            turtle.place()
            end
            turtle.select(16) --选择第16格,这里放置了骨粉
            repeat --这里用了个repeat循环。由于1.5版本以后骨粉的特性被修改了,需要多次施粉才能成熟,所以需要用到循环来判断
            if turtle.getItemCount(16) == 0 then --如果骨粉用完的话就向下吸取骨粉到第16格
            if not turtle.suckDown() then --如果无法吸取(就是箱子里没有骨粉)那么就提示Bone Meal Lack
            print("Bone Meal Lack")
            break
            end
            end
            until not turtle.place() --判定条件,如果无法放置骨粉,就说明作物已经成熟
            turtle.dig() --然后就挖掉前面的作物
            end --至此循环结束


            IP属地:浙江184楼2013-08-15 16:40
            回复
              接下来就是这段代码,这段代码的主要作用就是把获得的作物放到后面的箱子里,还是看代码的注释
              turtle.turnRight()
              turtle.turnRight() --两次向右转转到后面
              for i = 1, 15 do --一个for循环,应该能看懂这段代码,就是把第1格至第15格的物品放到箱子里。
              turtle.select(i)
              turtle.drop()
              end
              turtle.turnRight()
              turtle.turnRight() --还是两次右转回到原来的方向


              IP属地:浙江185楼2013-08-15 16:45
              回复
                发现吧内对电脑mod这个逆天的mod介绍很少呐。。。于是我打算做一个详细点的电脑mod的介绍,预计1个礼拜内会放出相应的mod介绍&简单程序的教程贴,当然主要的教程贴还是这个。。。


                IP属地:浙江186楼2013-08-15 16:47
                回复
                  补充一下,这个代码放在其他的带工具机器人里面也是可以的,不过得保证前面必须为耕地方块,否则就会出错


                  IP属地:浙江187楼2013-08-15 16:54
                  回复