Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [].
- local score = 0
- -- [Подключение физики].
- local physics = require ("physics")
- physics.start ()
- -- [Загрузка фона].
- local background = display.newRect (160, 250, 350, 550)
- background:setFillColor (0, 0.8, 0.8)
- -- [].
- local scoreText = display.newText (score, display.contentCenterX, 70, "11871.otf", 40)
- scoreText:setFillColor (0, 0, 0)
- -- [Загрузка круга].
- local circle = display.newCircle (0, 0, 20)
- circle.x = display.contentCenterX
- circle.y = display.contentHeight -50
- circle.isSensor = true
- circle:setFillColor (0, 0.3, 0.3)
- -- [Загрузка стен].
- local wall_1 = display.newRect (10, 300, 350, 10)
- wall_1:setFillColor (0, 0.6, 0.6)
- local wall_2 = display.newRect (440, 300, 350, 10)
- wall_2:setFillColor (0, 0.6, 0.6)
- local wall_3 = display.newRect (360, 220, 350, 10)
- wall_3:setFillColor (0, 0.6, 0.6)
- local wall_4 = display.newRect (-70, 220, 350, 10)
- wall_4:setFillColor (0, 0.6, 0.6)
- local wall_5 = display.newRect (35, 140, 350, 10)
- wall_5:setFillColor (0, 0.6, 0.6)
- local wall_6 = display.newRect (465, 140, 350, 10)
- wall_6:setFillColor (0, 0.6, 0.6)
- local wall_7 = display.newRect (-25, 60, 350, 10)
- wall_7:setFillColor (0, 0.6, 0.6)
- local wall_8 = display.newRect (405, 60, 350, 10)
- wall_8:setFillColor (0, 0.6, 0.6)
- local wall_9 = display.newRect (-80, -20, 350, 10)
- wall_9:setFillColor (0, 0.6, 0.6)
- local wall_10 = display.newRect (350, -20, 350, 10)
- wall_10:setFillColor (0, 0.6, 0.6)
- -- [Загрузка монеты].
- local money_1 = display.newRect(225, 300, 15, 15)
- money_1:setFillColor (0, 0.3, 0.3)
- -- [Подключение физики к объектам].
- -- (Подключение физики к кругу).
- physics.addBody (circle)
- circle.gravityScale = 0
- circle.isSensor = true
- -- (Подключение физики к стенам).
- physics.addBody (wall_1, "static")
- physics.addBody (wall_2, "static")
- physics.addBody (wall_3, "static")
- physics.addBody (wall_4, "static")
- physics.addBody (wall_5, "static")
- physics.addBody (wall_6, "static")
- physics.addBody (wall_7, "static")
- physics.addBody (wall_8, "static")
- physics.addBody (wall_9, "static")
- physics.addBody (wall_10, "static")
- -- (Подключение физики к монетам).
- physics.addBody (money_1)
- money_1.isSensor = true
- money_1.gravityScale = 0
- -- [Добавление ID к объектам].
- circle.ID = "Circle"
- wall_1.ID = "Wall"
- wall_2.ID = "Wall"
- wall_3.ID = "Wall"
- wall_4.ID = "Wall"
- wall_5.ID = "Wall"
- wall_6.ID = "Wall"
- wall_7.ID = "Wall"
- wall_8.ID = "Wall"
- wall_9.ID = "Wall"
- wall_10.ID = "Wall"
- money_1.ID = "Money"
- -- [Движение стен].
- local speed = 0.9
- local function onUpdate (event)
- wall_1.y = wall_1.y + speed
- wall_2.y = wall_1.y + speed
- wall_3.y = wall_3.y + speed
- wall_4.y = wall_3.y + speed
- wall_5.y = wall_5.y + speed
- wall_6.y = wall_5.y + speed
- wall_7.y = wall_7.y + speed
- wall_8.y = wall_7.y + speed
- wall_9.y = wall_9.y + speed
- wall_10.y = wall_9.y + speed
- if (wall_1.y > 520) then
- wall_1.y = 120
- elseif (wall_3.y > 520) then
- wall_3.y = 120
- elseif (wall_5.y > 520) then
- wall_5.y = 120
- elseif (wall_7.y > 520) then
- wall_7.y = 120
- elseif (wall_9.y > 520) then
- wall_9.y = 120
- end
- end
- Runtime:addEventListener ("enterFrame", onUpdate)
- -- [Движение монеты].
- local speed = 0.9
- local function onUpdate_2 (event)
- money_1.y = money_1.y + speed
- if (money_1.y > 520) then
- money_1.y = 120
- end
- end
- Runtime:addEventListener ("enterFrame", onUpdate_2)
- -- [Движение круга].
- local function dragCircle (event)
- local circle = event.target
- local phase = event.phase
- if ("began" == phase) then
- display.currentStage:setFocus (circle)
- circle.touchOffsetX = event.x - circle.x
- elseif ("moved" == phase) then
- circle.x = event.x - circle.touchOffsetX
- elseif ("ended" == phase or "cancelled" == phase) then
- display.currentStage:setFocus(nil)
- end
- return true
- end
- circle:addEventListener ("touch", dragCircle)
- -- [Функция прикосновения, круга к стенкам].
- local function onLocalCollision (self, event)
- if (event.phase == "began") then
- if (self.ID == "Circle" and event.other.ID == "Wall") then
- endGame ()
- end
- end
- end
- -- [Функция завершения игры].
- function endGame ()
- Runtime:removeEventListener ("enterFrame", onUpdate)
- circle:removeEventListener ("touch", dragCircle)
- circle:removeEventListener ("collision", circle)
- Runtime:removeEventListener ("enterFrame", onUpdate_2)
- local text = display.newText ("END GAME!", display.contentCenterX, 45, "11871.otf", 70)
- text:setFillColor (0, 0.420, 0.420)
- end
- circle.collision = onLocalCollision
- circle:addEventListener("collision", circle)
- local function score (event)
- if (event.phase == "began") then
- if (self.ID == "Circle" and event.other.ID == "Money") then
- score = score + 100
- scoreText = score
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement