Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. -- [].
  2. local score = 0
  3.  
  4. -- [Подключение физики].
  5. local physics = require ("physics")
  6. physics.start ()
  7.  
  8. -- [Загрузка фона].
  9. local background = display.newRect (160, 250, 350, 550)
  10. background:setFillColor (0, 0.8, 0.8)
  11.  
  12. -- [].
  13. local scoreText = display.newText (score, display.contentCenterX, 70, "11871.otf", 40)
  14. scoreText:setFillColor (0, 0, 0)
  15.  
  16. -- [Загрузка круга].
  17. local circle = display.newCircle (0, 0, 20)
  18. circle.x = display.contentCenterX
  19. circle.y = display.contentHeight -50
  20. circle.isSensor = true
  21. circle:setFillColor (0, 0.3, 0.3)
  22.  
  23. -- [Загрузка стен].
  24. local wall_1 = display.newRect (10, 300, 350, 10)
  25. wall_1:setFillColor (0, 0.6, 0.6)
  26. local wall_2 = display.newRect (440, 300, 350, 10)
  27. wall_2:setFillColor (0, 0.6, 0.6)
  28.  
  29. local wall_3 = display.newRect (360, 220, 350, 10)
  30. wall_3:setFillColor (0, 0.6, 0.6)
  31. local wall_4 = display.newRect (-70, 220, 350, 10)
  32. wall_4:setFillColor (0, 0.6, 0.6)
  33.  
  34. local wall_5 = display.newRect (35, 140, 350, 10)
  35. wall_5:setFillColor (0, 0.6, 0.6)
  36. local wall_6 = display.newRect (465, 140, 350, 10)
  37. wall_6:setFillColor (0, 0.6, 0.6)
  38.  
  39. local wall_7 = display.newRect (-25, 60, 350, 10)
  40. wall_7:setFillColor (0, 0.6, 0.6)
  41. local wall_8 = display.newRect (405, 60, 350, 10)
  42. wall_8:setFillColor (0, 0.6, 0.6)
  43.  
  44. local wall_9 = display.newRect (-80, -20, 350, 10)
  45. wall_9:setFillColor (0, 0.6, 0.6)
  46. local wall_10 = display.newRect (350, -20, 350, 10)
  47. wall_10:setFillColor (0, 0.6, 0.6)
  48.  
  49. -- [Загрузка монеты].
  50. local money_1 = display.newRect(225, 300, 15, 15)
  51. money_1:setFillColor (0, 0.3, 0.3)
  52.  
  53. -- [Подключение физики к объектам].
  54. -- (Подключение физики к кругу).
  55. physics.addBody (circle)
  56. circle.gravityScale = 0
  57. circle.isSensor = true
  58.  
  59. -- (Подключение физики к стенам).
  60. physics.addBody (wall_1, "static")
  61. physics.addBody (wall_2, "static")
  62. physics.addBody (wall_3, "static")
  63. physics.addBody (wall_4, "static")
  64. physics.addBody (wall_5, "static")
  65. physics.addBody (wall_6, "static")
  66. physics.addBody (wall_7, "static")
  67. physics.addBody (wall_8, "static")
  68. physics.addBody (wall_9, "static")
  69. physics.addBody (wall_10, "static")
  70.  
  71. -- (Подключение физики к монетам).
  72. physics.addBody (money_1)
  73. money_1.isSensor = true
  74. money_1.gravityScale = 0
  75.  
  76. -- [Добавление ID к объектам].
  77. circle.ID = "Circle"
  78. wall_1.ID = "Wall"
  79. wall_2.ID = "Wall"
  80. wall_3.ID = "Wall"
  81. wall_4.ID = "Wall"
  82. wall_5.ID = "Wall"
  83. wall_6.ID = "Wall"
  84. wall_7.ID = "Wall"
  85. wall_8.ID = "Wall"
  86. wall_9.ID = "Wall"
  87. wall_10.ID = "Wall"
  88. money_1.ID = "Money"
  89.  
  90. -- [Движение стен].
  91. local speed = 0.9
  92. local function onUpdate (event)
  93. wall_1.y = wall_1.y + speed
  94. wall_2.y = wall_1.y + speed
  95.  
  96. wall_3.y = wall_3.y + speed
  97. wall_4.y = wall_3.y + speed
  98.  
  99. wall_5.y = wall_5.y + speed
  100. wall_6.y = wall_5.y + speed
  101.  
  102. wall_7.y = wall_7.y + speed
  103. wall_8.y = wall_7.y + speed
  104.  
  105. wall_9.y = wall_9.y + speed
  106. wall_10.y = wall_9.y + speed
  107.  
  108. if (wall_1.y > 520) then
  109. wall_1.y = 120
  110. elseif (wall_3.y > 520) then
  111. wall_3.y = 120
  112. elseif (wall_5.y > 520) then
  113. wall_5.y = 120
  114. elseif (wall_7.y > 520) then
  115. wall_7.y = 120
  116. elseif (wall_9.y > 520) then
  117. wall_9.y = 120
  118. end
  119. end
  120.  
  121. Runtime:addEventListener ("enterFrame", onUpdate)
  122.  
  123. -- [Движение монеты].
  124. local speed = 0.9
  125. local function onUpdate_2 (event)
  126. money_1.y = money_1.y + speed
  127.  
  128. if (money_1.y > 520) then
  129. money_1.y = 120
  130. end
  131. end
  132.  
  133. Runtime:addEventListener ("enterFrame", onUpdate_2)
  134.  
  135. -- [Движение круга].
  136. local function dragCircle (event)
  137.  
  138. local circle = event.target
  139. local phase = event.phase
  140.  
  141. if ("began" == phase) then
  142. display.currentStage:setFocus (circle)
  143. circle.touchOffsetX = event.x - circle.x
  144.  
  145. elseif ("moved" == phase) then
  146. circle.x = event.x - circle.touchOffsetX
  147.  
  148. elseif ("ended" == phase or "cancelled" == phase) then
  149. display.currentStage:setFocus(nil)
  150. end
  151.  
  152. return true
  153. end
  154.  
  155. circle:addEventListener ("touch", dragCircle)
  156.  
  157. -- [Функция прикосновения, круга к стенкам].
  158. local function onLocalCollision (self, event)
  159. if (event.phase == "began") then
  160. if (self.ID == "Circle" and event.other.ID == "Wall") then
  161. endGame ()
  162. end
  163. end
  164. end
  165.  
  166. -- [Функция завершения игры].
  167. function endGame ()
  168. Runtime:removeEventListener ("enterFrame", onUpdate)
  169. circle:removeEventListener ("touch", dragCircle)
  170. circle:removeEventListener ("collision", circle)
  171. Runtime:removeEventListener ("enterFrame", onUpdate_2)
  172. local text = display.newText ("END GAME!", display.contentCenterX, 45, "11871.otf", 70)
  173. text:setFillColor (0, 0.420, 0.420)
  174. end
  175.  
  176. circle.collision = onLocalCollision
  177. circle:addEventListener("collision", circle)
  178.  
  179. local function score (event)
  180. if (event.phase == "began") then
  181. if (self.ID == "Circle" and event.other.ID == "Money") then
  182. score = score + 100
  183. scoreText = score
  184. end
  185. end
  186. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement