base player and romata spritesheet
This commit is contained in:
parent
af45552f5f
commit
ea83d2431a
Binary file not shown.
Before Width: | Height: | Size: 74 KiB |
Binary file not shown.
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 28 KiB |
BIN
src/assets/characters/player.xcf
Normal file
BIN
src/assets/characters/player.xcf
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 25 KiB |
Binary file not shown.
@ -10,5 +10,6 @@ function Animator:__init(fullWidth, fullHeight)
|
|||||||
self.walk_left = anim8.newAnimation(self.animationGrid('1-9', 2), 0.1)
|
self.walk_left = anim8.newAnimation(self.animationGrid('1-9', 2), 0.1)
|
||||||
self.walk_down = anim8.newAnimation(self.animationGrid('1-9', 3), 0.1)
|
self.walk_down = anim8.newAnimation(self.animationGrid('1-9', 3), 0.1)
|
||||||
self.walk_right = anim8.newAnimation(self.animationGrid('1-9', 4), 0.1)
|
self.walk_right = anim8.newAnimation(self.animationGrid('1-9', 4), 0.1)
|
||||||
|
self.play = anim8.newAnimation(self.animationGrid('1-9', 5), 0.1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -29,10 +29,33 @@ function Gridwalker:sendKey(key)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Gridwalker:findAnimation(animationName)
|
||||||
|
local foundAnimation = nil
|
||||||
|
|
||||||
|
if animationName == 'up' then
|
||||||
|
foundAnimation = self.animator.walk_up
|
||||||
|
elseif animationName == 'down' then
|
||||||
|
foundAnimation = self.animator.walk_down
|
||||||
|
elseif animationName == 'right' then
|
||||||
|
foundAnimation = self.animator.walk_right
|
||||||
|
elseif animationName == 'left' then
|
||||||
|
foundAnimation = self.animator.walk_left
|
||||||
|
elseif animationName == 'play' then
|
||||||
|
foundAnimation = self.animator.play
|
||||||
|
end
|
||||||
|
|
||||||
|
return foundAnimation
|
||||||
|
end
|
||||||
|
|
||||||
function Gridwalker:stopAnimation()
|
function Gridwalker:stopAnimation()
|
||||||
self.animation:pauseAtStart()
|
self.animation:pauseAtStart()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Gridwalker:startAnimation(animationName)
|
||||||
|
self.animation = self:findAnimation(animationName)
|
||||||
|
self.animation:resume()
|
||||||
|
end
|
||||||
|
|
||||||
function Gridwalker:up()
|
function Gridwalker:up()
|
||||||
local newX = self.objectinfo.x
|
local newX = self.objectinfo.x
|
||||||
local newY = self.objectinfo.y - self.speed
|
local newY = self.objectinfo.y - self.speed
|
||||||
@ -72,18 +95,10 @@ end
|
|||||||
function Gridwalker:init()
|
function Gridwalker:init()
|
||||||
self.testShape = collider:addRectangle(self.objectinfo.x + self.neighbourOffsetX, self.objectinfo.y + self.neighbourOffsetY, self.collisionTestSize, self.collisionTestSize)
|
self.testShape = collider:addRectangle(self.objectinfo.x + self.neighbourOffsetX, self.objectinfo.y + self.neighbourOffsetY, self.collisionTestSize, self.collisionTestSize)
|
||||||
collider:setPassive(self.testShape)
|
collider:setPassive(self.testShape)
|
||||||
|
|
||||||
self.animator = Animator:new(self.objectinfo.image:getWidth(), self.objectinfo.image:getHeight())
|
self.animator = Animator:new(self.objectinfo.image:getWidth(), self.objectinfo.image:getHeight())
|
||||||
|
|
||||||
if self.objectinfo.pose == 'up' then
|
self.animation = self:findAnimation(self.objectinfo.pose)
|
||||||
self.animation = self.animator.walk_up
|
|
||||||
elseif self.objectinfo.pose == 'down' then
|
|
||||||
self.animation = self.animator.walk_down
|
|
||||||
elseif self.objectinfo.pose == 'right' then
|
|
||||||
self.animation = self.animator.walk_right
|
|
||||||
elseif self.objectinfo.pose == 'left' then
|
|
||||||
self.animation = self.animator.walk_left
|
|
||||||
end
|
|
||||||
|
|
||||||
self.animation:pauseAtStart()
|
self.animation:pauseAtStart()
|
||||||
end
|
end
|
||||||
|
@ -86,6 +86,7 @@ function Engine:initObjects()
|
|||||||
local objectinfo = love.filesystem.load(filename)()
|
local objectinfo = love.filesystem.load(filename)()
|
||||||
objectinfo.x = obj.x - object.width / 4
|
objectinfo.x = obj.x - object.width / 4
|
||||||
objectinfo.y = obj.y
|
objectinfo.y = obj.y
|
||||||
|
objectinfo.name = obj.name
|
||||||
|
|
||||||
objectinfo.controller.objectinfo = objectinfo
|
objectinfo.controller.objectinfo = objectinfo
|
||||||
|
|
||||||
@ -133,3 +134,12 @@ end
|
|||||||
function Engine:showMessage(message)
|
function Engine:showMessage(message)
|
||||||
ui:showMessage(message)
|
ui:showMessage(message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Engine:animate(objectName, animationName)
|
||||||
|
for _, object in ipairs(self.objects) do
|
||||||
|
if object.name == objectName then
|
||||||
|
object.controller:startAnimation(animationName)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@ -187,18 +187,6 @@ return {
|
|||||||
opacity = 1,
|
opacity = 1,
|
||||||
properties = {},
|
properties = {},
|
||||||
objects = {
|
objects = {
|
||||||
{
|
|
||||||
name = "matty",
|
|
||||||
type = "",
|
|
||||||
shape = "rectangle",
|
|
||||||
x = 416,
|
|
||||||
y = 96,
|
|
||||||
width = 32,
|
|
||||||
height = 64,
|
|
||||||
rotation = 0,
|
|
||||||
visible = true,
|
|
||||||
properties = {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name = "player",
|
name = "player",
|
||||||
type = "",
|
type = "",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup name="objects">
|
<objectgroup name="objects">
|
||||||
<object name="matty" x="416" y="96" width="32" height="64"/>
|
|
||||||
<object name="player" x="320" y="480" width="32" height="64"/>
|
<object name="player" x="320" y="480" width="32" height="64"/>
|
||||||
<object name="romata" x="320" y="160" width="32" height="64"/>
|
<object name="romata" x="320" y="160" width="32" height="64"/>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
local object = require "engine/object"
|
|
||||||
local gridwalker = require "engine/controllers/gridwalker"
|
|
||||||
|
|
||||||
return {
|
|
||||||
spritesheet = "assets/characters/romata.png",
|
|
||||||
pose = 'down',
|
|
||||||
controller = Gridwalker()
|
|
||||||
}
|
|
@ -2,7 +2,7 @@ local object = require "engine/object"
|
|||||||
local gridwalker = require "engine/controllers/gridwalker"
|
local gridwalker = require "engine/controllers/gridwalker"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
spritesheet = "assets/characters/romata.png",
|
spritesheet = "assets/characters/player.png",
|
||||||
pose = 'up',
|
pose = 'up',
|
||||||
controller = Gridwalker(),
|
controller = Gridwalker(),
|
||||||
relevantKeys = {
|
relevantKeys = {
|
||||||
|
@ -3,6 +3,6 @@ local gridwalker = require "engine/controllers/gridwalker"
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
spritesheet = "assets/characters/romata.png",
|
spritesheet = "assets/characters/romata.png",
|
||||||
pose = 'left',
|
pose = 'play',
|
||||||
controller = Gridwalker()
|
controller = Gridwalker()
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ local story = {}
|
|||||||
function story:start(engine)
|
function story:start(engine)
|
||||||
engine:loadLevel('01')
|
engine:loadLevel('01')
|
||||||
engine:showMessage('Du befindest dich auf einer sturmgebeutelten Insel. Wo ist denn nur die Milch?')
|
engine:showMessage('Du befindest dich auf einer sturmgebeutelten Insel. Wo ist denn nur die Milch?')
|
||||||
|
engine:animate('romata', 'play')
|
||||||
end
|
end
|
||||||
|
|
||||||
return story
|
return story
|
Loading…
Reference in New Issue
Block a user