簡體   English   中英

停止箭頭垃圾郵件

[英]Stop Arrow Spam

我正在大學里和Lua一起做我的第一場比賽,現在很難過。 我的char不停地射箭,我希望它能延遲射箭的時間。

我試圖創建函數來模擬延遲,但是沒有用

local function atkRight()
    system.setTapDelay(10)
    display.remove(char)
    char = display.newImageRect ( "Sprites/archerRight.png", 50, 60)
    char.x = display.contentCenterX
    char.y = display.contentCenterY+50
    physics.addBody (char, "static", { isSensor=false })
    char.myName = "char"

    local arrowRight = display.newImageRect ( "Sprites/arrowRight.png", 50, 5)
    arrowRight.x = display.contentCenterX+40
    arrowRight.y = display.contentCenterY+40
    physics.addBody (arrowRight, "dynamic", { bounce = 0 })
    arrowRight:setLinearVelocity(500, 0)
    arrowRight.gravityScale = 0
    arrowRight.myName = "arrowRight"
end

atkiconRight:addEventListener( "tap", atkRight )

我希望此攻擊功能只能每0.5秒執行一次

有多種方法可以實現此目的。 最簡單的方法可能是讓事件回調檢查時間。

https://docs.coronalabs.com/api/library/system/getTimer.html

將射擊的時間存儲在全局變量中。 當開槍並且有前一槍的時間戳時,請檢查並僅在至少0.5秒后拍攝。

另一種方法是刪除事件偵聽器並啟動計時器事件,該事件將在500ms之后重新添加事件偵聽器。 或者您有一個全局標志來阻止射擊,並讓計時器每500毫秒重置一次此標志。

哪種方法取決於您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM