Форум программистов, компьютерный форум, киберфорум
Наши страницы

Доступ к таблице по строке - Lua

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Lua Как сравнить параметры одной и той же таблицы двух экземпляров класса внутри самого класса? http://www.cyberforum.ru/lua/thread1517432.html
Как сравнить параметры одной и той же таблицы двух экземпляров класса внутри самого класса (если это невозможно, то скажите тогда другой способ)?
Lua Редактирование файла в Lua Здравствуйте, есть вопрос. Как читать и записывать в файл ясно. Есть ли возможность непосредственно его редактировать. То-есть, скажем, осуществляется вывод содержания файла, который можно... http://www.cyberforum.ru/lua/thread1506336.html
Lua Как вынести набор команд в отдельную функцию в lua?
Есть вот такой код на lua: require('sem') semaphore = sem.open('RS485-3') timeout = 10 * 2 while not semaphore:trywait() and timeout > 0 do sleep(0.5) timeout = timeout - 1 end
Lua Описание IUPLUA
Помогите, пожалуйста, с описанием функций библиотеки iuplua. Может есть какая-то литература?
Lua Присваивание результата setmetatable http://www.cyberforum.ru/lua/thread1496471.html
Чем отличается код: local a={} local metaA={} metaA.__index=metaA setmetatable(a,metaA)--не присваивания от кода: local a={}
Lua Расшифровка файла под Linux Помогите пожалуйста расшифровать файл Нашел декодер, но он пишет luadec.exe: g.lua too old: read version 4.0; expected at least 5.0 А более старые версии только под Linux, а устанавливать его... подробнее

Показать сообщение отдельно
Defake
4 / 4 / 0
Регистрация: 24.08.2011
Сообщений: 191

Доступ к таблице по строке - Lua

31.08.2015, 00:23. Просмотров 424. Ответов 4
Метки (Все метки)

Есть код:
Код
IMAGE = {
	imgID = 0,
	content = {
		NPC = {}
	}
}

function IMAGE:new(className, path) 

end

function IMAGE:GetAmount(class) 
	return self.content[class].foo
end
IMAGE:new(NPC, "res/idle.png")
IMAGE:new(NPC, "res/dead.png")

Из с++ вызывается функция GetAmount(class). class - это название класса с++ в строковом виде. Я пытаюсь сделать функцию IMAGE:new. И вот какие результаты:
Код
--работает
function IMAGE:new(className, path) 
	local class = ""
	class = "NPC"
	self.content[class]["foo"] = 4
end

--не работает
function IMAGE:new(className, path) 
	local class = ""
	class = "NPC" + ""
	self.content[class]["foo"] = 4
end

--не работает
function IMAGE:new(className, path) 
	local class = ""
	class = className
	self.content[class]["foo"] = 4
end
Я уже думаю, что в lua мне нужно бы приведение типов...

А вот такой вариант почему-то работает:
Код
IMAGE = {
	imgID = 0,
	content = {
		NPC = {0,1,2}
	}
}

function IMAGE:new(class, path) 
	self.content[class][1] = 4
end

function IMAGE:GetAmount(class) 
	return self.content[class][1]
end
IMAGE:new(NPC, "res/idle.png")
IMAGE:new(NPC, "res/dead.png")
Что творит этот язык?? Как это сделать правильно?

Но этот код я писал, потому что основная задача не получалась. Вообще нужно, чтоб работало примерно так:

Код
IMAGE = {
	imgID = 0,
	content = { }
}

function IMAGE:new(className, path) 
	self.content[class][1] = self.content[class][1] + 1
	self.content[class][#class + 1] = self.imgID
	self.imgID = self.imgID + 1
end

function IMAGE:GetAmount(class) 
	return self.content[class][1]
end
IMAGE:new(NPC, "res/idle.png")
IMAGE:new(NPC, "res/dead.png")
IMAGE:new(Monster, "res/eat.png")
IMAGE:new(itd, "res/itp.png")
То есть чтоб при вызове IMAGE:new добавлось новое поле таблицы в content и далее уже в это поле добавлялись айдишники. Ну, я думаю, при решении первой проблемы автоматически рассосется и вторая

Добавлено через 8 минут
Аах да.. Под словом "работает", я имел в виду, что оно возвращает то число, которое я установил в функции new. На path вообще не обращайте внимания)

Добавлено через 3 часа 9 минут
Мда. В общем, я думал, что ключи в луа можно писать и без кавычек, а оказалось, что нельзя) От этого всё и косячилось. Хотя не представляю, почему работал тот кусок кода...
Тему можно закрывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru