2017-04-23 77 views
0

我一直在做一个游戏,但由于某种原因,“子弹”即时尝试产卵只是通常!?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 

事情我试过 - ive将子弹更改为实心方块而不是调用png - 复制并粘贴从现有(工作)游戏的子弹类制作

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

+0

提供的代码只包含几个函数定义..请提供一个最小的可执行示例。 – Piglet

+0

我并不太热衷于Lua内部,但在'bullet.spawn'中,你添加了一个带'x'和'y'成员设置的表格,但在'bullet.draw'中循环遍历'bullet'的每个成员,并且尝试使用这些'x'和'y'变量进行绘制。纠正我,如果我错了,但不会该循环还包括函数'bullet.spawn'和'bullet.draw'? – Thelmund

回答

1

的问题似乎是,在player_shoot你是通过dt而不是加入它乘以playerShootTimer

playerShootTimer = playerShootTimer + dt 

我假设playerShootTimer从零开始。然后你有,如果它变得大于playerShootTimerLim和空间被按下,产生子弹。如果您想让玩家多次拍摄,您还需要在产生子弹后将playerShootTimer重置为零。

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