lua love2d,没有用子弹产卵

时间:2017-04-23 04:11:39

标签: lua love2d

我一直在做一个游戏,但由于某种原因,“子弹”我试图产生的只是不会!?

这是我的'主'

require "scripts.player"
require "scripts.bullet"

function love.load()
bulletShoot = love.graphics.newImage("pics/bullet.png")
playerPic = love.graphics.newImage("pics/player.png")
background = love.graphics.newImage("pics/background.jpg")
player_load()
bullet.load()
end

function love.update(dt)
player_update(dt)
bullet.update(dt)
end

function love.draw()
love.graphics.draw(background, 0, 0)
bullet.draw()
player_draw()
end

我尝试称之为“播放器”

function player_shoot(dt)
playerShootTimer = playerShootTimer * dt
if(playerShootTimer > playerShootTimerLim) then
    if love.keyboard.isDown("space")then
        bullet.spawn(playerX + (playerWidth / 2) - (bullet.width / 2), playerY)
    end
  end
end

function player_update(dt)
player_move(dt)
player_boundary()
player_shoot(dt)
end

和我的'子弹',我试图绘制和产生它

function bullet.spawn(x,y)
table.insert(bullet, {x = x, y = y})
end

function bullet.draw()
for i,v in ipairs(bullet) do
    love.graphics.draw(bulletShoot, v.x, v.y, bullet.width, bullet.height)
end
end
我试过的事情 - 我把子弹改成了一个填满的方块而不是叫png - 我已经从现有的(工作)游戏中复制并粘贴了子弹类

这些都没有用。 任何帮助都很有用,谢谢!

1 个答案:

答案 0 :(得分:1)

问题似乎是在player_shoot {em} playerShootTimer乘以dt而不是添加

playerShootTimer = playerShootTimer + dt

我假设playerShootTimer从零开始。然后,如果它变得大于playerShootTimerLim并按下空格,则产生子弹。如果你想允许玩家多次射击,你还需要在产生子弹后将playerShootTimer重置为零。

if love.keyboard.isDown("space")then
    bullet.spawn(playerX + (playerWidth / 2) - (bullet.width / 2), playerY)
    playerShootTimer = 0
end