Size: a a a

Solar2D (Corona SDK) Game Engine

2021 June 19

S

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

ДБ

Денис Байцеров... in Solar2D (Corona SDK) Game Engine
Ребят, а такой вопрос по userdata в плюсах. Допустим, у меня есть класс
class A{
int len;
int* arr_ptr;
};
Делаю lua_newuserdata(L, sizeof(A));
Если я потом возьму и сделаю что-то вроде a->arr_ptr=new int[10]; то будут ли у меня возможны утечки памяти, при условии, что я также сделаю метатаблицу и зарегистрирую в _gc деструктор, который всё это удаляет. Другими словами, есть ли вариант, где lua попытается что-то сделать с этой памятью?
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Удали старый массив, влепи на его место новый массив.
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Каждый new означает необходимость delete.
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Когда ты делаешь lua_newuserdata(L, sizeof(A)); — там выделяется место только под указатель массива, но не сам массив.
источник

ДБ

Денис Байцеров... in Solar2D (Corona SDK) Game Engine
дело не в этом
источник

ДБ

Денис Байцеров... in Solar2D (Corona SDK) Game Engine
вопрос как раз об этой выделенной памяти с new
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
А, ну так по хорошему и надо. При инициализации ты пихаешь массив через new, при замене на свежий массив — удаляешь старый ставишь новый. Так оно и работает.
источник

ДБ

Денис Байцеров... in Solar2D (Corona SDK) Game Engine
будет ли с ней что-то происходить? скажем, gb её как-то заберёт
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Не заберёт, будет утечка, добавляешь метатаблицу с удалением массива на __gc или делаешь указатель с подсчётом ссылок на этот массив (во втором варианте не уверен).
источник

ДБ

Денис Байцеров... in Solar2D (Corona SDK) Game Engine
ага, ок, спасибо
источник

S

Snusmumriken in Solar2D (Corona SDK) Game Engine
Это в общем-то к тому же правилу "на каждый new нужен delete", луа не умеет его вызывать, и вообще не имеет понятия о плюсах )
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
Добрый день, подскажите где можно найти или поделитесь примером Image Sheet для On-Off Switch :)
источник

Q

Qugurun in Solar2D (Corona SDK) Game Engine
Тебе такое нужно?
источник

Q

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

Q

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

Q

Qugurun in Solar2D (Corona SDK) Game Engine
local sheetInfo = require("atlas_switch")
local myImageSheet = graphics.newImageSheet( "atlas_switch.png", sheetInfo:getSheet() )

local bg_switch = display.newSprite( myImageSheet , {frames={sheetInfo:getFrameIndex("bg")}} )
local btn_switch = display.newSprite( myImageSheet , {frames={sheetInfo:getFrameIndex("btn")}} )
источник

A

Aleksandt in Solar2D (Corona SDK) Game Engine
Да, спасибо. Попробую через пару часиков
источник

Q

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

VA

Vittorio Amatti in Solar2D (Corona SDK) Game Engine
Нет( Я когда делаю условную проверку я получаю вечный цикл. Задача по идее очень простая просто как то окуклить два транзишна что бы пока они не завершились не происходило бы больше ничего. И решаться по идее должна как то просто 😏
источник