監聽事件中函式的執行順序

2021-07-25 08:57:41 字數 896 閱讀 3636

inst:listenforevent("onhitother", onhit)
這是用來監聽攻擊動作事件的,監聽到後執行函式onhit

實際測試

local target = data.target

data.damage = data.damage * 2

local damage = data.damage

damage = damage * 1

target.components.health:dodelta(-damage)

這是onhit的一段**,用手杖(傷害為17)攻擊的傷害是51,即17 + 17 * 2,所以應該是先計算攻擊的傷害,並應用在被攻擊的物件上,然後在執行這個函式,而不是在攻擊傷害計算之前執行。

對於下面的onattack函式的執行也同理

inst:listenforevent("attacked", onattack)
暫且將攻擊分為

由此初步設想監聽事件的函式執行都是發生攻擊後搖的階段。

注:只通過上述測試是無法驗證函式執行的前後的,不過配上監聽事情「killed」時就可以完全的驗證上述的結論,因為如果被攻擊的物件在執行完語句

target

.components

.health

:dodelta(-damage)

之後死亡時,是不會觸發「killer」事件的,比如說用攻擊為30的**去攻擊health為45的物件,此時是觸發不了「killed」事件的,因為先計算**的30傷害,然後執行onhit函式,在執行onhit函式過程中,物件剛好死亡,如果攻擊health為25的物件時,物件在被攻擊的時候就已經死亡了,此時就會觸發「killed」事件

vue中的監聽事件(watch)

html 在html裡寫下那個事件會讓觸發methods讓data發生變化 text v model firstname keyup getfullname data 這裡是data裡面的值 data methods 這裡是讓data資料改變的方法 getfullname function watc...

android中監聽事件新增動作

初學者都比較迷茫,怎麼用 實現一些動作 方法一 在activity元件的oncreate事件中直接定義 這種方法比較簡單粗暴,初學者可以用這種方式,比較容易理解。button btn button findviewbyid r.id.mybutton btn setonclicklistener n...

flex中遇到監聽事件非同步呼叫

最近搞了個flex的小玩意兒,大致就是用urlloader去讀伺服器上的xml檔案,獲得資料後將內容存到陣列裡。本來想著挺簡單的,想著這程式應該是順序執行完,相當然的以為監聽事件會在返回後再繼續執行下面的語句,誰知道上來就出錯了,在監聽事件裡的 是非同步執行的,這就導致主程式的資料不正常,也就是不能...