love2d吧 关注:544贴子:1,149
  • 4回复贴,共1

update和draw有啥区别?

只看楼主收藏回复

我写了一半发现我把很多逻辑处理都放draw里了 好像也没啥问题?


IP属地:美国来自Android客户端1楼2015-07-22 12:27回复
    不清晰,貌似update是draw的回调,,,


    来自Android客户端2楼2015-07-23 00:37
    回复
      unction love.run()
      if love.math then
      love.math.setRandomSeed(os.time())
      for i=1,3 do love.math.random() end
      end
      if love.event then
      love.event.pump()
      end
      if love.load then love.load(arg) end
      -- We don't want the first frame's dt to include time taken by love.load.
      if love.timer then love.timer.step() end
      local dt = 0
      -- Main loop time.
      while true do
      -- Process events.
      if love.event then
      love.event.pump()
      for e,a,b,c,d in love.event.poll() do
      if e == "quit" then
      if not love.quit or not love.quit() then
      if love.audio then
      love.audio.stop()
      end
      return
      end
      end
      love.handlers[e](a,b,c,d)
      end
      end
      -- Update dt, as we'll be passing it to update
      if love.timer then
      love.timer.step()
      dt = love.timer.getDelta()
      end
      -- Call update and draw
      if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
      if love.window and love.graphics and love.window.isCreated() then
      love.graphics.clear()
      love.graphics.origin()
      if love.draw then love.draw() end
      love.graphics.present()
      end
      if love.timer then love.timer.sleep(0.001) end
      end
      end
      看了主流程就懂了吧,update只依赖于update自己,但是draw依赖于window,graphics模块。 另外update里有传dt参数。 如果是draw那传会有些许延迟吧


      IP属地:四川3楼2015-07-23 08:37
      回复
        其实你把别的模块都禁用了 love就是个解释器了,比如做服务器会方便点 虽然不效率 呵呵~


        IP属地:四川4楼2015-07-23 08:39
        收起回复