2015年10月21日 星期三

路亞的變數?

  在光暈路亞修行中,不論你是一個個打字還是用複製貼上,你是否對那些指令的長度感到厭煩呢?如果那些指令讓你的程式看起來愈加複雜,那麼你寫得越多頭就越大。你可以使用接下來要教的「變數」,它能大大的幫助你解決這類問題喔!



在學「變數」之前,我想請各位先看看<指定運算子>這篇文章。
如果你已經對「=」的實際意義有所理解,那我們就開始進入正題了。

  首先,什麼是變數?在數學中,變數X和1是不同的,因為1就是1它屬於定值,所以1代表的意思永遠都一樣;但變數不是定值,因為變數的內容可以是1或2或更多更多,但一次只能代表一個值。所以變數就像只能裝一件東西的盒子,雖然可以放各式各樣的東西,卻只能從中擇一,這就是數學上的變數。

  程式中也是有變數的,你可以直接把它當成盒子,這會讓你容易理解的多。不過程式中的變數長得是什麼樣子?我們接下來有個範例:

  enemyme.findClosestEnemy() 找尋畫面上離我最近的敵人
這裡的enemy就是一個變數,而me.findClosestEnemy()是一個函式。這個函式會在當場找出一名離玩家最近且在玩家視野內的敵對角色,找到後這個函式便會回傳資料給其他人。比如在這個例子中,me.findClosestEnemy()的資料為一名角色,透過指定運算子,這名角色的資料就會被指定給enemy這個變數,此時enemy的內容就會是函式me.findClosestEnemy()所回傳的資料,之後當我們需要取得me.findClosestEnemy()的資料時,就只要寫enemy就行了,而不用把me.findClosestEnemy()給打出來,是不是很方便呢?


實作練習:
enemy = me.findClosestEnemy()
if enemy then
  say = "殲滅!!"
  me.talk(say)
else
  say = "敵人呢?"
  me.talk(say)
end
--記住me.talk(say)和me.talk("say")是不同的
--實際執行後,你會發現雖然同是執行me.talk(say)但結果卻大不同


不知道各位對於變數是否有初步的瞭解了?
如果你覺得你的程式很凌亂,你可以用變數來幫你解決
但要記得,變數的名稱一定要與資料有關連
如果你把變數的命名用A或B或C表示,那東西一多時反而會更頭痛喔!
相關參考連結:
<函式?參數?>...尚未撰寫

沒有留言:

張貼留言