table.insert 没有添加参数 Lua
table.insert is not adding the parameter Lua
我制作了这个小动画处理程序代码,我想将在一个函数中定义的动画网格名称添加到另一个 table(网格,在一个名为 sprite 的 table 中) ,但是当我尝试将新网格插入 sprites.grids
table 时,它不起作用并且代码在 anim8.newAnimation(grid('1-'...
sattin 处崩溃,我给出了一个零网格。我不明白。 :( 代码:
require("table")
function createSprite(x, y, path)
love.graphics.setDefaultFilter("nearest", "nearest")
local sprite = {
position = {
x = x,
y = y
},
sprite = love.graphics.newImage(path),
currentAnimation,
animations,
grids = {}
}
function sprite:createSpriteGrid(animation, maxFrames)
animation = anim8.newGrid(self.sprite:getWidth() / maxFrames, self.sprite:getHeight(), self.sprite:getWidth(), self.sprite:getHeight())
table.insert(self.grids, animation)
end
function sprite:setAnimation(grid, maxFrames, time)
self.currentAnimation = anim8.newAnimation(grid('1-'.. maxFrames .. '', 1), time)
end
function sprite:update(dt)
self.currentAnimation:update(dt)
end
function sprite:draw(scale)
self.currentAnimation:draw(self.sprite, self.position.x, self.position.y, nil, scale)
end
return sprite
end
shop = createSprite(630, 160, "assets/shop.png")
shop:createSpriteGrid(shopAnim, 6)
shop:setAnimation(shop.grids.shopAnim, 6, 0.17)
特别是那个函数很可能没有做你想做的事:
function sprite:createSpriteGrid(animation, maxFrames)
animation = anim8.newGrid(self.sprite:getWidth() / maxFrames, self.sprite:getHeight(), self.sprite:getWidth(), self.sprite:getHeight())
table.insert(self.grids, animation)
end
换句话说:您传递了 animation
和 maxFrames
,但从不使用 animation
并立即将其替换为您的网格。然后将网格添加到 self.grids
数组,由于它是第一个条目,因此它将获得 index/key 1
。因此 shop.grids.shopAnim
为零,因为您从未设置过它。 shop.grids[1]
可以。
我制作了这个小动画处理程序代码,我想将在一个函数中定义的动画网格名称添加到另一个 table(网格,在一个名为 sprite 的 table 中) ,但是当我尝试将新网格插入 sprites.grids
table 时,它不起作用并且代码在 anim8.newAnimation(grid('1-'...
sattin 处崩溃,我给出了一个零网格。我不明白。 :( 代码:
require("table")
function createSprite(x, y, path)
love.graphics.setDefaultFilter("nearest", "nearest")
local sprite = {
position = {
x = x,
y = y
},
sprite = love.graphics.newImage(path),
currentAnimation,
animations,
grids = {}
}
function sprite:createSpriteGrid(animation, maxFrames)
animation = anim8.newGrid(self.sprite:getWidth() / maxFrames, self.sprite:getHeight(), self.sprite:getWidth(), self.sprite:getHeight())
table.insert(self.grids, animation)
end
function sprite:setAnimation(grid, maxFrames, time)
self.currentAnimation = anim8.newAnimation(grid('1-'.. maxFrames .. '', 1), time)
end
function sprite:update(dt)
self.currentAnimation:update(dt)
end
function sprite:draw(scale)
self.currentAnimation:draw(self.sprite, self.position.x, self.position.y, nil, scale)
end
return sprite
end
shop = createSprite(630, 160, "assets/shop.png")
shop:createSpriteGrid(shopAnim, 6)
shop:setAnimation(shop.grids.shopAnim, 6, 0.17)
特别是那个函数很可能没有做你想做的事:
function sprite:createSpriteGrid(animation, maxFrames)
animation = anim8.newGrid(self.sprite:getWidth() / maxFrames, self.sprite:getHeight(), self.sprite:getWidth(), self.sprite:getHeight())
table.insert(self.grids, animation)
end
换句话说:您传递了 animation
和 maxFrames
,但从不使用 animation
并立即将其替换为您的网格。然后将网格添加到 self.grids
数组,由于它是第一个条目,因此它将获得 index/key 1
。因此 shop.grids.shopAnim
为零,因为您从未设置过它。 shop.grids[1]
可以。