在開始教學之前,我想請各位先認識一下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就可以避免撿彈匣的目標被改變,路亞也就能專心地去撿彈匣,而不受旁人影響。
請看到下面的範例:
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的使用是否合宜,這是筆者預先設想到全面的可能性,所以沒辦法教各位怎麼去判斷,不過程式這種東西本來就應該自己去弄懂,而不是坐等別人的解答。
相關文章:
沒有留言:
張貼留言