Почему эта функция не делает несколько пуль? - PullRequest
2 голосов
/ 14 августа 2011

Я работаю над функцией стрельбы из нескольких пуль, вот она:

local function shootBullets ( event )
    local bullet = display.newImageRect("images/Bullet.png", 12, 12) --Create the bullet image
    physics.addBody(bullet, "kinematic", {bounce = 0}) --Allow physics stuff to work on it
    bullets:insert( bullet ) --Add it to a global group called "bullets"
    bullet:setLinearVelocity(20, 40) --Give it a velocity

end

И я звоню с этим таймером:

timer.performWithDelay(10, shootBullets)

Он двигает одну пулю, но не делает новые. Как я могу заставить его вызывать новые пули каждый раз, когда я вызываю shootBullets ( event )? Я не очень хорошо знаком с Луа, поэтому извините, если я делаю что-то явно не так, или если я не даю достаточно информации (если вам нужна дополнительная информация, спросите).

1 Ответ

3 голосов
/ 14 августа 2011

Упс, стоит обратить более пристальное внимание на API:

Параметр 3 по умолчанию для timer.performWithDelay(time, function, times) равен 1. Чтобы он повторялся вечно, мне нужно сделать его 0. Итак, я изменил:

timer.performWithDelay(10, shootBullets)

К этому:

timer.performWithDelay(10, shootBullets, 0)

Теперь есть пули.

...