Salve a tutti,
mi chiamo Giuseppe,
da poco mi sono avvicinato a Corona SDK.
Sto cercando di sviluppare un piccolo gioco
da distribuire gratuitamente
per alunni con difficoltà cognitive:
trascinare il cerchio nel cestino dello stesso colore.
Sono giorni che mi sono bloccato
su una situazione:
quando i cerchi sono stati rimossi
perchè hanno colliso col cestino giusto,
questi non riesco a farli “riapparire”.
questo è tutto il codice:
display.setStatusBar( display.HiddenStatusBar ) local centerX = display.contentCenterX local centerY = display.contentCenterY local \_W = display.contentWidth local \_H = display.contentHeight local bkg = display.newImage ("bk.png", centerX, centerY,true) score = 0 local scoreNumber = display.newText(score, display.contentCenterX + 60, 20, native.systemFontBold, 20) scoreNumber:setFillColor( 1, 0, 0 ) local function updateScore() score = score + 1 scoreNumber.text = score end local scoreText = display.newImage("score.png", display.contentCenterX, 20) scoreText.xScale = 1.0 scoreText.yScale = 1.0 local cerchi = { { x=100, y=300, w=50, h=50, r=20, red=1, green=math.random(0,1), blue=math.random(0,1) }, { x=30, y=300, w=50, h=50, r=20, red=1, green=math.random(0,1), blue=math.random(0,1) }, } local baskets = {} -- table to hold a list of "baskets" local function checkCollision(event) if event.target then local rect = event.target for i = 1, #baskets do local basket = baskets[i] local basketColor = basket.fillColor local rectColor = rect.fillColor local sameColor = basketColor[1] == rectColor[1] and basketColor[2] == rectColor[2] and basketColor[3] == rectColor[3] local distance = math.sqrt((basket.x - rect.x)^2 + (basket.y - rect.y)^2) if distance \< 20 and sameColor then display.remove(rect) end end end end local function onTouch( event ) local t = event.target local phase = event.phase if "began" == phase then -- Make target the top-most object local parent = t.parent parent:insert( t ) display.getCurrentStage():setFocus( t ) t.isFocus = true t.x0 = event.x - t.x t.y0 = event.y - t.y elseif t.isFocus then if "moved" == phase then t.x = event.x - t.x0 t.y = event.y - t.y0 elseif "ended" == phase or "cancelled" == phase then display.getCurrentStage():setFocus( nil ) t.isFocus = false end end return true end --cerchi da spostare for \_,item in ipairs( cerchi ) do local button = display.newCircle(item.x, item.y, item.r ) button.fillColor = {item.red, item.green, item.blue} button:setFillColor(unpack(button.fillColor)) button.strokeWidth = 3 button:setStrokeColor(0) -- Make the button instance respond to touch events button:addEventListener( "touch", onTouch ) end -- "cestini" local basket = display.newCircle(100, 112, 14) basket.fillColor = {1, 0, 0} basket:setFillColor(unpack(basket.fillColor)) table.insert(baskets, basket) local basket = display.newCircle(300, 112, 14) basket.fillColor = {1, 1, 1} basket:setFillColor(unpack(basket.fillColor)) table.insert(baskets, basket)
mi potreste aiutare a capire come risolvere questo problema?
grazie a tutti