2013-07-10 3 views
1

эй, я новичок в мире sdk Corona, я хочу узнать, как порождать некоторые объекты и заставить их перемещаться по экрану. Я пробую все, и он никогда не работает. Я читаю форум о нерестах права способ и попробовать его, но до сих пор в конечном итоге с ошибкой в ​​моем коде помощи это мой кодКак создать объекты в короне sdk

local mRandom = math.random 
local mAbs = math.abs 
local objects = {"rocket02" ,"rocket01","coin01"} 

local function spawnObject() 
    local objIdx = mRandom(#objects) 
    local objName = objects[objIdx] 
    local object = display.newImage("image/object_"..objName..".png") 
    object.x = mRandom (screenLeft +30,screenRight-30) 
    object.y = screenTop 

    if objIdx < 4 then 
     object.type = "food" 
    else 
     object.type = "other" 
    end 
end 

Также может кто-нибудь сказать мне, как заставить его двигаться по экрану

Пожалуйста, помогите спасибо

вот медиа-файл для вас, чтобы посмотреть

ответ

0

Я покажу вам метод. Для этого я переписать код следующим образом:

local mRandom = math.random 
local objects = {"rocket02" ,"rocket01","coin01"} 
local objectTag = 0 
local object = {} 

local function spawnObject() 
    objectTag = objectTag + 1 
    local objIdx = mRandom(#objects) 
    local objName = objects[objIdx] 
    object[objectTag] = display.newImage(objName..".png") -- see the difference here 
    object[objectTag].x = 30+mRandom(320) 
    object[objectTag].y = 200 
    object[objectTag].name = objectTag 
    print(objectTag) 
end 
timer.performWithDelay(1,spawnObject,3) 

Здесь я использовал timer для отображения объекта. Вы можете также использовать цикл для той же цели. Здесь вы можете позвонить любому объекту с тегом как object[objectTag].

Для справки:

display.newImage(objName..".png") 
    --[[ will display object named rocket02.png or rocket01.png or coin01.png 
     placed in the same folder where your main.lua resides --]] 

И

display.newImage("image/object_"..objName..".png") 
    --[[ will display object named object_rocket02.png or object_rocket01.png 
     or object_coin01.png placed in a folder named 'image'. And the folder 
     'image' should reside in the same folder where your main.lua is. --]] 

И перемещение объекта сверху вниз, вы можете использовать:

либо

function moveDown() 
    object[objectTag].y = object[objectTag].y + 10 
    --replace 'objectTag' in above line with desired number (ir., 1 or 2 or 3) 
end 
timer.performWithDelay(100,moveDown,-1) 

или

transition.to(object[objectTag],{time=1000,y=480}) 
--[[ replace 'objectTag' in above line with desired number (ir., 1 or 2 or 3) 
eg: transition.to(object[1],{time=1000,y=480}) --]] 

Держите кодирование .............. :)

+0

эй я получить этот новый индекс таблицы сообщений об ошибках это nil on line object [i] = display.newImage ("image/object _" .. objName .. ".png") благодарит за вашу помощь – SeanDp32

+0

Извините, моя ошибка. Замените «i» на «objectTag». Я скорректировал приведенный выше код ... –

+0

это нормально, я так рад, что вы помогаете e с этим, это не значит, что ошибка, но получить новую ошибку, когда я запускаю код. ошибка говорит «попытаться проиндексировать поле» это на объект линии [objectTag] .x = 30 + mRandom (320), я не разделяю то, что может быть обложка этого. Я надеюсь, что вы можете помочь мне решить эту проблему, чтобы я мог получить мою игру. Спасибо. – SeanDp32

Смежные вопросы