scenes/levels: use contained asset system for pigs sprites

This commit is contained in:
Kazhnuz 2019-03-04 12:46:11 +01:00
parent c738bb9bf9
commit 35a44a0640
4 changed files with 113 additions and 28 deletions

View File

@ -0,0 +1,51 @@
return {
metadata = {
width = 32,
height = 48,
defaultAnim = "idle"
},
animations = {
["idle"] = {
startAt = 2,
endAt = 2,
loop = 2,
speed = 0,
pauseAtEnd = false,
},
["walk"] = {
startAt = 1,
endAt = 4,
loop = 1,
speed = -1,
pauseAtEnd = false,
},
["brake"] = {
startAt = 5,
endAt = 5,
loop = 5,
speed = 0,
pauseAtEnd = false,
},
["airdash"] = {
startAt = 6,
endAt = 6,
loop = 6,
speed = 0,
pauseAtEnd = false,
},
["jump"] = {
startAt = 7,
endAt = 8,
loop = 8,
speed = 6,
pauseAtEnd = true,
},
["fall"] = {
startAt = 7,
endAt = 7,
loop = 7,
speed = 0,
pauseAtEnd = true,
},
}
}

View File

@ -0,0 +1,51 @@
return {
metadata = {
width = 32,
height = 48,
defaultAnim = "walk"
},
animations = {
["idle"] = {
startAt = 2,
endAt = 2,
loop = 2,
speed = 0,
pauseAtEnd = false,
},
["walk"] = {
startAt = 1,
endAt = 4,
loop = 1,
speed = -1,
pauseAtEnd = false,
},
["brake"] = {
startAt = 5,
endAt = 5,
loop = 5,
speed = 0,
pauseAtEnd = false,
},
["airdash"] = {
startAt = 6,
endAt = 6,
loop = 6,
speed = 0,
pauseAtEnd = false,
},
["jump"] = {
startAt = 7,
endAt = 8,
loop = 8,
speed = 8,
pauseAtEnd = true,
},
["fall"] = {
startAt = 7,
endAt = 7,
loop = 7,
speed = 0,
pauseAtEnd = true,
},
}
}

View File

@ -11,8 +11,6 @@ function Player:new(level, x, y, playerID)
self.startx, self.starty = x, y
self:initAnimations()
Player.super.new(self, level, "player", x - (w / 2), y - (h / 2), w, h)
self.manager = level.playermanager
@ -62,20 +60,12 @@ function Player:initWeapon()
self:setWeapon()
end
function Player:initAnimations()
self.animations = {}
self.animations["idle"] = 1
self.animations["walk"] = 2
self.animations["brake"] = 3
self.animations["jump"] = 4
self.animations["fall"] = 5
end
-- UPDATE and COLLISION functions
function Player:update(dt)
self.keys = self.level.keys
self.level.assets.sprites[self.stats.race]:setCustomSpeed(math.abs(self.xsp / 60))
self:actionMove(dt)
self:shoot(dt)
@ -183,7 +173,7 @@ function Player:actionMove(dt)
self.ysp = self.jmp
self.isJumping = true
self.level.assets:playSFX("jump")
assets.sprites["cochon"]:resetAnimation(self.animations["jump"])
--assets.sprites["cochon"]:resetAnimation(self.animations["jump"])
end
if (self.isJumping == true) and (self.ysp < (-4 * 60)) and (not (self.keys["A"].isDown)) then
@ -210,7 +200,7 @@ end
-- DRAW functions
function Player:getAnimation()
local animation = 1
local animation = "idle"
if (self.onGround) then
if (self.xsp == 0) then
@ -231,18 +221,19 @@ local animation = 1
end
end
if (self.animations[animation] == nil) then
if not (self.level.assets.sprites[self.stats.race]:animationExist(animation)) then
animation = "idle"
end
return self.animations[animation]
self.level.assets.sprites[self.stats.race]:changeAnimation(animation, false)
return animation
end
function Player:draw(dt)
local drawx, drawy = utils.math.floorCoord(self.center.x, self.center.y)
local animation = self:getAnimation()
--if (self.direction == -1) then drawx = drawx + self.w end
assets.sprites[self.stats.race]:draw(animation, drawx, drawy, 0, self.direction, 1, 16, 36)
self.level.assets.sprites[self.stats.race]:drawAnimation(drawx, drawy, 0, self.direction, 1, 16, 36)
end
-- Death and hit functions

View File

@ -64,15 +64,6 @@ function Level:loadSounds()
self.assets:newSFX("collectcoin", "assets/sfx/collectcoin.wav")
end
function Level:loadCochonSprites(name)
assets:addSprite(name, 32, 48, "pigs/")
assets.sprites[name]:newAnimation(2, 1, 0.2)
assets.sprites[name]:newAnimation('1-4', 1, 0.1)
assets.sprites[name]:newAnimation(5, 1, 0.2)
assets.sprites[name]:newAnimation('7-8', 1, 0.03, 'pauseAtEnd')
assets.sprites[name]:newAnimation(7, 1, 0.2)
end
function Level:loadSprites()
assets:clearSprites()
@ -85,8 +76,9 @@ function Level:loadSprites()
self.assets:addSprite("sparkle", "assets/sprites/gfx/sparkle")
self.assets:addSprite("poof", "assets/sprites/gfx/poof")
self:loadCochonSprites("cochon")
self:loadCochonSprites("bling-bling")
local pigfolder = "assets/sprites/pigs/"
self.assets:addSprite("cochon", pigfolder .. "cochon")
self.assets:addSprite("bling-bling", pigfolder .. "bling-bling")
self.assets:addTileset("weapon", "assets/sprites/weapon")
self.assets:addTileset("block", "assets/sprites/items/block")