2015年10月30日 星期五

return必學的指令敘述

  這次討論的return是一個相當重要的指令,它可以幫助程式避免衝突發生,也可以讓程式專注於執行某一段程式,retrun讓程式能變出更多花樣了!同時也可以加強路亞的戰鬥力!你還在等什麼?快點進來看看吧!



在開始教學之前,我想請各位先認識一下main.lua這個主程式是甚麼
如果已經認識了主程式,那麼我們就開始講解return的功能了!

【return的功能】
  return可以使程式在中途中止,這麼做可以讓電腦不執行後面的程式,接著main.lua就會自動重新執行。雖然用return可以忽略後面不要的程式,但它也會忽略想要執行的程式,所以在使用return時應該要整理出程式的執行優先順序,以確保重要的程式不會被return給忽略。

請看到下面的範例:
  enemy = me.findClosestEnemy()
  if enemy then
    me.stopMoving()
    return
  end
  me.talk("testing...")
  me.moveTo(enemy)

若你將上面這個範例至於main.lua的最上方,那麼你的角色會一直不停的喊testing...,一旦敵人出現,你的角色就會站著不動,任人宰割,即使後面還有程式可以攻擊敵人,電腦也不會去執行。

  向上面的例子就充分表達了return對程式的影響,適時的使用return可以讓自己的程式有優先次序,同時可以避免前後程式產生衝突。比如撿彈匣與攻擊敵人,如果身上沒有子彈了,那麼角色應該要往彈匣移動,但途中遇到了敵人,所以路亞就改變主意去攻擊敵人,甚至向敵人移動,此時若有使用return就可以避免撿彈匣的目標被改變,路亞也就能專心地去撿彈匣,而不受旁人影響。

  return的使用有好有壞,端看你怎麼使用它,有時程式太長也會讓return把你的路亞弄得慘兮兮,所以各位要自行判斷return的使用是否合宜,這是筆者預先設想到全面的可能性,所以沒辦法教各位怎麼去判斷,不過程式這種東西本來就應該自己去弄懂,而不是坐等別人的解答。
相關文章:

沒有留言:

張貼留言