Первое сообщение, и я искренне извиняюсь, если на это ответили в любом другом сообщении, но я не смог найти решение проблемы, с которой я столкнулся, на этом или другом сайт. Я - новый программист, самостоятельно обучающийся с веб-учебниками и любым другим ресурсом, который я нашел. Я пытаюсь создать код, который будет порождать символы и позволяет вам их вызывать. Мне не удалось присвоить значение индекса отдельным экземплярам, которые я создал с помощью функции for. Я попытался установить экземпляр как таблицу, так и групповой экранный объект. Если кто-то может указать мне в сторону любых ресурсов, чтобы получить более глубокое понимание таблиц и групповых экранных объектов для реализации Corona SDK Lua, я уверен, что моя проблема в том, что у меня недостаточно глубокое понимание от этих конкретных функций и от того, как они работают. Вот код, который я написал до сих пор.Объекты группового отображения в сравнении с таблицами в Corona Lua
-- Character Game
require "sprite"
require "ui"
local background = display.newImage("Background Placeholder.png")
halfW = display.viewableContentWidth/2
halfH = display.viewableContentHeight/2
local numCharacters = 20
local roundedRect = display.newRoundedRect(365, 20, 110, 40, 8)
roundedRect:setFillColor(0, 255, 0, 80)
score = 0
t = ui.newLabel{ bounds = { 370, 30, 100, 40 },
text = "Score " .. score,
textColor = { 255, 0, 20, 255 },
size = 18,
align = "center"
}
local scoreboard = function (event)
t:setText("Score " .. score)
end
Runtime:addEventListener("enterFrame", scoreboard)
local group = display.newGroup()
local character = sprite.newSpriteSheetFromData("Character Placeholder.png", require("Character Placeholder").getSpriteSheetData())
local characterSet1 = sprite.newSpriteSet(character,1,8)
sprite.add(characterSet1,"character",1,8,1500,0)
local characterplay = function(event)
score = score + group.points
group[i]:removeSelf()
end
do
for i=1, numCharacters do
group:insert(sprite.newSprite(characterSet1))
group[i].xScale = .2
group[i].yScale = .2
group.points = 50
group[i]:setReferencePoint (display.BottomCenterReferencePoint)
group[i]:translate(halfW + math.random(-100, 100), halfH + math.random(-130, -110))
end
timer.performWithDelay(500, charactermovie)
for i=1, 21 do
timer.performWithDelay(math.random(500, 5000) , charactermove)
charactermove = function(event)
transition.to(group[i], { time=10000, y = 580 })
transition.to(group[i], { time=8000, x = math.random(0, 480) })
transition.to(group[i], { time=7000, xScale = 1.5})
transition.to(group[i], { time=7000, yScale = 1.5})
group[i]:prepare("character")
group[i]:play()
end
group[i]:addEventListener("tap", characterplay)
end
end
charactermovie = function(event)
group[i]:prepare("character")
group[i]:play()
end
local function spriteListener(event)
print("Sprite event: ", event.sprite, event.sprite.sequence, event.phase)
end
for i, group in pairs(group) do print (group, i, v) end
В настоящее время я получаю «попытку индексации поля»? в строке, содержащей этот код «group [i]: addEventListener (« tap », zombieplay)» при запуске и ошибка «nil key provided for property lookup» в строке «group [i]: removeSelf()», zombieplay ". Я попытался переместить код нарушения в различные местоположения, чтобы увидеть, является ли это проблемой, но я в значительной степени сталкиваюсь с той же ошибкой и считаю, что я не могу правильно понять индексы и ключи ... Я нашел что приложение функционирует так, как предполагалось, но я должен вызвать индексные ключи с 1 по 21, чтобы заставить их всех двигаться, хотя я призываю только 20 символов, а ошибки удаления строки removeSelf не удаляют отдельные символы. Я собираюсь попробовать написав модуль для персонажей и посмотрим, поможет ли это сделать это. Я опубликую свои результаты в ближайшее время.
вы должны отступов вашего кода, чтобы мы могли легко прочитать – cctan
спасибо я буду работать по очистке его в ближайшее время. –
Это было правильно отформатировано сейчас. Если кто-то увидит, что я делаю неправильно, мы будем очень благодарны! Я попытался установить это в модуле, и я столкнулся в основном с одними и теми же проблемами, поэтому я попытаюсь придерживаться его, чтобы он работал таким образом. Это в основном то, что все равно войдет в модуль ... Спасибо заранее всем, кто это проверяет !!!! –