IL CODICE CHE HO SCRITTO FINO AD ORA E' QUESTO
Ho inserito i bidoni in un unica variabile ma mi sa che dovrò farne tre per ogni bidone.
I rifiuti cadono dall'alto e devo definire il fatto che le bottiglie di plastica devono cadere sul bidone verde, le lattine su quello rosso e la mela su quello giallo
Al momento i rifiuti cadono dall'alto e i bidoni si spostano col mouse a destra e sinistra
Ma non ho idea di come fare per dire che i rifiuti devono cadere nel rispettivo bidone e se si sbaglia c'è il GAME OVER
Grazie a chi mi aiuterà
-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------
-- impostazione fisica
local physics = require("physics")
physics.start()
physics.setDrawMode("hybrid")
--impostazione sfondo
local bg = display.newImageRect("img/back.jpg",600,900)
bg.x=display.contentCenterX
bg.y=display.contentCenterY
--impostazione rifiuti che cadono
local bg2=display.newImageRect("img/apple.gif",112, 87)
bg2.x=display.contentCenterX
bg2.y= -200
local bottle= display.newImageRect("img/bottle.gif",112,94)
bottle.x = display.contentCenterX+40
bottle.y = -400
local lattina = display.newImageRect("img/lattina2.gif",112,83)
lattina.x = display.contentCenterX+40
lattina.y = -100
--impostazione dei bidoni
local bidoni = display.newImageRect("img/bidoni.jpg",258,103)
bidoni.x = display.contentCenterX
bidoni.y = display.contentCenterY+220
-- Funzione ascoltatore che gestisce l'evento touch per i bidoni
local function move(event)
-- memorizzo in "bidoni" l'oggetto sulla quale è richiamato
-- l'ascoltatore (i.e. i bidoni hanno riconosciuto l'evento touch)
local bidoni = event.target
--all'inizio della fase di touch...
if event.phase=="began" then
-- calcolo la distanza fra il punto di contatto e il centro dei
-- bidoni
bidoni.offsetX = event.x - bidoni.x
-- setto il focus dell'intero evento sui bidoni che sto toccando
-- (i.e. tutti i prossimi eventi touch saranno gestiti dall'oggetto
-- (in bidoni)
display.currentStage:setFocus(bidoni)
-- metto in primo piano sullo stage i bidoni da spostare
bidoni:toFront()
--durtante lo spostamento dei bidoni...
elseif event.phase=="moved" then
--cambio le coordinate della medaglia
--tenendo conto dell'offset calcolato
bidoni.x = event.x-bidoni.offsetX
--quando termina la fase di touch
elseif event.phase =="ended" or event.phase=="cancelled" then
--elimino il focus dell'evento sui bidoni che stavo spostando
--ora i bidoni possono riservare la gestione dell'evento touch
display.currentStage:setFocus(nil)
end
-- il comando return true permette di far gestire l'evento touch da un singolo oggetto. In altre parole l'evento non è propagato af altri oggetti o allo stage.
return true
end
bidoni:addEventListener("touch", move)
--physics.addBody( ground, "static", { friction=0.5, bounce=0.3 } )
physics.addBody( bg2,"dynamic", {density=0.6, friction=0.2, bounce=0.3 } )
physics.addBody( bottle,"dynamic", {density=0.6, friction=0.2, bounce=0.3 } )
physics.addBody( lattina,"dynamic", {density=0.6, friction=0.2, bounce=0.3 } )