Advertisement
ERROR_CODE

game

Nov 7th, 2024 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.19 KB | None | 0 0
  1. -- Создание GUI элементов
  2. local screenGui = Instance.new("ScreenGui")
  3. screenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
  4.  
  5. local backgroundFrame = Instance.new("Frame")
  6. backgroundFrame.Parent = screenGui
  7. backgroundFrame.Size = UDim2.new(1, 0, 1, 0) -- Во весь экран
  8. backgroundFrame.Position = UDim2.new(0, 0, 0, 0)
  9. backgroundFrame.BackgroundColor3 = Color3.new(1, 1, 1) -- Белый фон
  10.  
  11. local sheepImage = Instance.new("ImageLabel")
  12. sheepImage.Name = "SheepImage"
  13. sheepImage.Parent = backgroundFrame
  14. sheepImage.Size = UDim2.new(0, 100, 0, 100) -- Размер барашка
  15. sheepImage.Position = UDim2.new(0.1, 0, 0.7, 0) -- Позиция барашка слева и чуть ниже
  16. sheepImage.Image = "rbxassetid://108390234749539" -- ID изображения барашка
  17. sheepImage.BackgroundTransparency = 1 -- Прозрачный фон
  18.  
  19. local fenceImage = Instance.new("ImageLabel")
  20. fenceImage.Name = "FenceImage"
  21. fenceImage.Parent = backgroundFrame
  22. fenceImage.Size = UDim2.new(0, 200, 0, 50) -- Размер забора
  23. fenceImage.Position = UDim2.new(1, 0, 0.75, 0) -- Начальная позиция забора за экраном справа
  24. fenceImage.Image = "rbxassetid://70673399094620" -- ID изображения забора
  25. fenceImage.BackgroundTransparency = 1 -- Прозрачный фон
  26.  
  27. local gameOverText = Instance.new("TextLabel")
  28. gameOverText.Parent = backgroundFrame
  29. gameOverText.Size = UDim2.new(0.5, 0, 0.1, 0)
  30. gameOverText.Position = UDim2.new(0.25, 0, 0.4, 0)
  31. gameOverText.Text = "Игра окончена"
  32. gameOverText.TextScaled = true
  33. gameOverText.Visible = false
  34. gameOverText.BackgroundTransparency = 1 -- Прозрачный фон
  35.  
  36. local countdownText = Instance.new("TextLabel")
  37. countdownText.Parent = backgroundFrame
  38. countdownText.Size = UDim2.new(0.5, 0, 0.1, 0)
  39. countdownText.Position = UDim2.new(0.25, 0, 0.5, 0)
  40. countdownText.TextScaled = true
  41. countdownText.Visible = false
  42. countdownText.BackgroundTransparency = 1 -- Прозрачный фон
  43.  
  44. local jumpCounterText = Instance.new("TextLabel")
  45. jumpCounterText.Parent = backgroundFrame
  46. jumpCounterText.Size = UDim2.new(0.1, 0, 0.05, 0)
  47. jumpCounterText.Position = UDim2.new(0, 0, 0, 0)
  48. jumpCounterText.TextScaled = true
  49. jumpCounterText.Text = "Прыжки: 0"
  50. jumpCounterText.BackgroundTransparency = 1 -- Прозрачный фон
  51.  
  52. -- Скрипт для прыжка барашка и движения забора
  53. local userInputService = game:GetService("UserInputService")
  54.  
  55. local jumpHeight = 0.1 -- Высота прыжка (в масштабах UDim2)
  56. local jumpDuration = 0.5
  57. local isJumping = false
  58. local gameOver = false
  59. local jumpCounter = 0
  60.  
  61. local function resetGame()
  62.     print("Сброс игры")
  63.     gameOverText.Visible = false
  64.     countdownText.Visible = false
  65.     sheepImage.Position = UDim2.new(0.1, 0, 0.7, 0)
  66.     fenceImage.Position = UDim2.new(1, 0, 0.75, 0)
  67.     gameOver = false
  68.     jumpCounter = 0
  69.     jumpCounterText.Text = "Прыжки: 0"
  70.     wait(1) -- Небольшая задержка перед началом движения забора
  71.     moveFence()
  72. end
  73.  
  74. local function countdown()
  75.     print("Начало отсчета")
  76.     for i = 5, 1, -1 do
  77.         countdownText.Text = tostring(i)
  78.         wait(1)
  79.     end
  80.     resetGame()
  81. end
  82.  
  83. local function endGame()
  84.     print("Конец игры")
  85.     gameOver = true
  86.     gameOverText.Visible = true
  87.     countdownText.Visible = true
  88.     countdown()
  89. end
  90.  
  91. local function checkCollision()
  92.     local sheepLeft = sheepImage.AbsolutePosition.X
  93.     local sheepRight = sheepLeft + sheepImage.AbsoluteSize.X
  94.     local sheepTop = sheepImage.AbsolutePosition.Y
  95.     local sheepBottom = sheepTop + sheepImage.AbsoluteSize.Y
  96.  
  97.     local fenceLeft = fenceImage.AbsolutePosition.X
  98.     local fenceRight = fenceLeft + fenceImage.AbsoluteSize.X
  99.     local fenceTop = fenceImage.AbsolutePosition.Y
  100.     local fenceBottom = fenceTop + fenceImage.AbsoluteSize.Y
  101.  
  102.     if sheepRight > fenceLeft and sheepLeft < fenceRight and sheepBottom > fenceTop and sheepTop < fenceBottom then
  103.         print("Столкновение обнаружено")
  104.         endGame()
  105.     end
  106. end
  107.  
  108. local function jump()
  109.     if isJumping or gameOver then return end
  110.     isJumping = true
  111.  
  112.     local originalPosition = sheepImage.Position
  113.     local targetPosition = UDim2.new(originalPosition.X.Scale, originalPosition.X.Offset, originalPosition.Y.Scale - jumpHeight, originalPosition.Y.Offset)
  114.  
  115.     sheepImage:TweenPosition(targetPosition, Enum.EasingDirection.Out, Enum.EasingStyle.Quad, jumpDuration, true, function()
  116.         sheepImage:TweenPosition(originalPosition, Enum.EasingDirection.In, Enum.EasingStyle.Quad, jumpDuration, true, function()
  117.             isJumping = false
  118.         end)
  119.     end)
  120. end
  121.  
  122. local function moveFence()
  123.     if gameOver then return end
  124.     print("Движение забора")
  125.     local startPosition = UDim2.new(1, 0, 0.75, 0)
  126.     local endPosition = UDim2.new(-0.2, 0, 0.75, 0) -- Конечная позиция забора за экраном слева
  127.  
  128.     fenceImage.Position = startPosition
  129.     fenceImage:TweenPosition(endPosition, Enum.EasingDirection.Out, Enum.EasingStyle.Linear, 2, true, function()
  130.         if not gameOver then
  131.             checkCollision()
  132.             if fenceImage.Position.X.Scale < sheepImage.Position.X.Scale then
  133.                 jumpCounter = jumpCounter + 1
  134.                 jumpCounterText.Text = "Прыжки: " .. jumpCounter
  135.             end
  136.             moveFence() -- Повторное движение забора
  137.         end
  138.     end)
  139. end
  140.  
  141. userInputService.InputBegan:Connect(function(input)
  142.     if input.KeyCode == Enum.KeyCode.Space then
  143.         jump()
  144.     end
  145.     if input.KeyCode == Enum.KeyCode.RightControl then
  146.         screenGui:Destroy()
  147.     end
  148. end)
  149.  
  150. userInputService.TouchTap:Connect(function()
  151.     jump()
  152. end)
  153.  
  154. -- Добавляем проверку столкновения в основной цикл
  155. game:GetService("RunService").RenderStepped:Connect(function()
  156.     if not gameOver then
  157.         checkCollision()
  158.     end
  159. end)
  160.  
  161. moveFence() -- Начать движение забора
  162.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement