[英]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.