added new constants about animations
refactor some comments
This commit is contained in:
parent
47647a5c8a
commit
7c36f73b8e
@ -2,15 +2,30 @@ local anim8 = require "anim8"
|
|||||||
|
|
||||||
local CHARACTER_SIZE = 64
|
local CHARACTER_SIZE = 64
|
||||||
|
|
||||||
|
--- Для anim8, представляет из себя с какого по какого представлены спрайты для анимации
|
||||||
|
local ANIMATION_SIZE = '1-8'
|
||||||
|
--- Скорость между кадрами в анимации
|
||||||
|
local ANIMATION_SPEED = 0.1
|
||||||
|
-- Константы ниже представляют из себя номер строки (с единицы), в которой находится та или иная анимация
|
||||||
|
local IDLE_ROW = 1
|
||||||
|
local RUN_ROW = 2
|
||||||
|
local ATTACK_ROW = 3
|
||||||
|
|
||||||
local Character = {}
|
local Character = {}
|
||||||
Character.name = ""
|
Character.name = ""
|
||||||
|
|
||||||
|
--- мы должны определиться со спрайтшитами и подобным, всё что здесь написано лишь пример
|
||||||
|
---
|
||||||
|
--- предполагается, что у всех будет одинаковое кол-во кадров в анимации и их скорость произведения
|
||||||
Character.animationTable = {
|
Character.animationTable = {
|
||||||
idle = {},
|
idle = {},
|
||||||
run = {},
|
run = {},
|
||||||
attack = {}
|
attack = {}
|
||||||
-- etc etc
|
-- etc etc
|
||||||
}
|
}
|
||||||
|
--- чтобы не обновлять все анимации одновременно, храним нужную анимацию здесь
|
||||||
|
---
|
||||||
|
--- когда нужно сменить анимацию с idle на run например, меняем именно это поле
|
||||||
Character.animation = Character.animationTable.idle
|
Character.animation = Character.animationTable.idle
|
||||||
|
|
||||||
Character.stats = {}
|
Character.stats = {}
|
||||||
@ -19,14 +34,11 @@ Character.stats.initiative = 0
|
|||||||
Character.player = {}
|
Character.player = {}
|
||||||
|
|
||||||
--- Обёртка над Character:Create
|
--- Обёртка над Character:Create
|
||||||
--- @param name string
|
|
||||||
--- @param imagePath string
|
|
||||||
--- @param initiative? integer
|
|
||||||
CreateCharacter = Character.create
|
CreateCharacter = Character.create
|
||||||
|
|
||||||
-- ты клоун же
|
-- ты клоун же
|
||||||
-- какого черта у тебя конструктор объекта принимает ссылку на объект
|
-- какого черта у тебя конструктор объекта принимает ссылку на объект
|
||||||
--
|
--
|
||||||
-- хз
|
-- хз
|
||||||
-- ща я в душ
|
-- ща я в душ
|
||||||
-- :clown:
|
-- :clown:
|
||||||
@ -39,15 +51,11 @@ function Character:create(name, imagePath, initiative)
|
|||||||
local animationGrid = anim8.newGrid(CHARACTER_SIZE, CHARACTER_SIZE, image:getWidth(), image:getHeight())
|
local animationGrid = anim8.newGrid(CHARACTER_SIZE, CHARACTER_SIZE, image:getWidth(), image:getHeight())
|
||||||
return Character {
|
return Character {
|
||||||
name = name,
|
name = name,
|
||||||
--- мы должны определиться со спрайтшитами и подобным, всё что здесь написано лишь пример
|
|
||||||
---
|
|
||||||
--- предполагается, что у всех будет одинаковое кол-во кадров в анимации и их скорость произведения
|
|
||||||
animationTable = {
|
animationTable = {
|
||||||
idle = anim8.newAnimation(animationGrid('1-8', 1), 0.2)
|
idle = anim8.newAnimation(animationGrid(ANIMATION_SIZE, IDLE_ROW), ANIMATION_SPEED),
|
||||||
|
run = anim8.newAnimation(animationGrid(ANIMATION_SIZE, RUN_ROW), ANIMATION_SPEED),
|
||||||
|
attack = anim8.newAnimation(animationGrid(ANIMATION_SIZE, ATTACK_ROW), ANIMATION_SPEED)
|
||||||
},
|
},
|
||||||
--- чтобы не обновлять все анимации одновременно, храним нужную анимацию здесь
|
|
||||||
---
|
|
||||||
--- когда нужно сменить анимацию с idle на run например, меняем именно это поле
|
|
||||||
animation = self.animationTable.idle,
|
animation = self.animationTable.idle,
|
||||||
stats = {
|
stats = {
|
||||||
initiative = initiative or 10
|
initiative = initiative or 10
|
||||||
@ -59,4 +67,4 @@ function Character:update(dt)
|
|||||||
self.animation:update(dt)
|
self.animation:update(dt)
|
||||||
end
|
end
|
||||||
|
|
||||||
local f = Character.create
|
local f = Character.create
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user