Size: a a a

Solar2D (Corona SDK) Game Engine

2021 June 18

A

Aleksandt in Solar2D (Corona SDK) Game Engine
можно и сюда засунуть количество элементов в массиве, но  у меня Options.COLOR_COUNT динамически изменяется в зависимости от ситуации в игре
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
и я решил его засунуть в отдельную сущность
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
Ты там клон brick ball crasher делаешь?))
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Для первого енума сработает такое дело:
function randenum(enum, len)
 local key, value = next(enum)
 for i = 1, math.random(len) do
   key, value = next(enum, key)
   if not key then  -- зацикливание
     key, value = next(enum)
   end
 end
 return key, value
end

local color, value = randenum(brickColorEnum, 5)

Рулеточка крутится, рандомная фигня мутится.

Но если ты очень часто это используешь, таки эффективнее перевести в список и брать случайный индекс из списка.
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
имхо эффективнее случайный индекс из списка
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
но холиварить не буду
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Мы балансируем удобство разработки с эффективностью.
Если эффективности _достаточно_, то можно переключиться на удобство разработки.
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
Я когда-то давно написал свой класс для работы с Enum
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
Надеюсь, это актуальная версия, ибо я не помню, что там должно быть
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
local colorsEnum = Enum{ red = {1,0,0}, green = {0,1,0}, blue = {0,0,1} }

local redPosition = colorsEnum:ordinal("red")
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
Нет, здесь почему-то нет одной важной части
источник

D

Din 🐍 in Solar2D (Corona SDK) Game Engine
Фиксед
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Вот эта штука для автоматической индексации на манер @foxdacam

function Enum(...)
 local o = setmetatable({}, {
   __newindex = function(self, key, value)
     local index = type(value) == 'number' and value or #self + 1
     rawset(self, key, value)
     rawset(self, index, key)
   end
 })
 for i = 1, select("#", ...) do
   o[select(i, ...)] = i
 end
end

color = Enum()

color.red = 1
color.green = 2
color.blue = true

print(color[3]) --> "blue"
print(#color) --> 3

Тут правда крайне не желательно добавлять дырки, типа
color.red = 1
color.green = 255

Потому что следующие ключи без индекса, вроде
color.blue = true

могут добавиться как на позицию 2 так и в 256, в зависимости от луёвой реализации.
источник

BC

Boris Call The Polic... in Solar2D (Corona SDK) Game Engine
Просто тетрис. Джаст фо фан.
источник

BC

Boris Call The Polic... in Solar2D (Corona SDK) Game Engine
Вот это я дискуссию затронул. Стока комментов. Мои Saved Messages для дальнейшего перечитывания уже ломятся 🏄‍♂️
источник
2021 June 19

YK

Yan K in Solar2D (Corona SDK) Game Engine
А тетрис он разве не через тайлы делается? Или с физикой?
источник

BC

Boris Call The Polic... in Solar2D (Corona SDK) Game Engine
Да я сам ещё до конца не решил. Про тайлы не читал раньше.
источник

VB

Vadim Badim in Solar2D (Corona SDK) Game Engine
Тетрис - обычно через тайлы/матрицу. И там не то чтобы физика - а "такты" * смещения по У каждый такт. А между тактами - пауза.
источник