Advertisement
RedEnderman19

Computercraft Test-Programm for game-utils library

May 11th, 2022 (edited)
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. if fs.exists("game-utils") == false then shell.run("wget https://raw.githubusercontent.com/Terandox-The-Pineapple/TRX-Librarys/main/game-utils.lua game-utils") end
  2. local game_utils = require("game-utils")
  3. if fs.exists("table-utils") == false then shell.run("wget https://raw.githubusercontent.com/Terandox-The-Pineapple/TRX-Librarys/main/table-utils.lua table-utils") end
  4. local table_utils = require("table-utils")
  5.  
  6. math.randomseed(os.time())
  7. local my_back = game_utils.add_background("my_back")
  8. for x = 1, 51, 1 do
  9. for y = 1, 19, 1 do
  10. if x == 1 or x == 51 or y == 1 or y == 19 then
  11. my_back.render[x][y].color = colours.green
  12. else
  13. my_back.render[x][y].color = colours.red
  14. end
  15. end
  16. end
  17. game_utils.change_background(my_back)
  18. local player = game_utils.add_player(2, 2, "player_1")
  19. local enemy = game_utils.add_enemy(50, 18, "enemy_1")
  20. local buffer = false
  21. player.render[2][1].color = colours.black
  22. player.render[2][2].color = colours.black
  23. player.render[2][3].color = colours.black
  24. player.render[1][2].color = colours.black
  25. player.render[3][2].color = colours.black
  26. enemy.render[1][1].color = colours.pink
  27. local controlls = game_utils.add_controller("controlls")
  28. game_utils.add_controller_key(controlls, "Quit", keys.q, function()
  29. controlls:stop()
  30. term.setBackgroundColor(colors.black)
  31. shell.run("clear")
  32. print("Programm finished")
  33. end)
  34. game_utils.add_controller_key(controlls, "Up", keys.up, function()
  35. buffer = "U"
  36. end)
  37. game_utils.add_controller_key(controlls, "Down", keys.down, function()
  38. buffer = "D"
  39. end)
  40. game_utils.add_controller_key(controlls, "Left", keys.left, function()
  41. buffer = "L"
  42. end)
  43. game_utils.add_controller_key(controlls, "Right", keys.right, function()
  44. buffer = "R"
  45. end)
  46. local e_move = "L"
  47. local bullets = {}
  48. local c_bullet = game_utils.add_other(1, 1, "c_bullet")
  49. function c_bullet:fly()
  50. if self.posY > 2 then
  51. if self:collision(player) then return hit() end
  52. self:undraw()
  53. self:moveUp()
  54. self:draw()
  55. if self:collision(player) then return hit() end
  56. else
  57. if self:collision(player) then return hit() end
  58. table_utils.removeItem(bullets, self)
  59. self:undraw()
  60. self:destroy()
  61. end
  62. return false
  63. end
  64.  
  65. c_bullet.render[1][1].color = colours.purple
  66. player:draw()
  67. function game()
  68. os.sleep(0.1)
  69. if moveEnemy() then return true end
  70. if moveBullets() then return true end
  71. test_shot()
  72. local sizeX, sizeY = player:getSize()
  73. if buffer == "U" and player.posY > 2 then
  74. player:undraw()
  75. player:moveUp()
  76. player:draw()
  77. elseif buffer == "D" and player.posY < (19 - sizeY) then
  78. player:undraw()
  79. player:moveDown()
  80. player:draw()
  81. elseif buffer == "L" and player.posX > 2 then
  82. player:undraw()
  83. player:moveLeft()
  84. player:draw()
  85. elseif buffer == "R" and player.posX < (51 - sizeX) then
  86. player:undraw()
  87. player:moveRight()
  88. player:draw()
  89. end
  90. end
  91.  
  92. function moveBullets()
  93. for index, bullet in pairs(bullets) do
  94. if bullet:fly() then return true end
  95. end
  96. return false
  97. end
  98.  
  99. function moveEnemy()
  100. if enemy:collision(player) then return hit() end
  101. enemy:undraw()
  102. if e_move == "R" then
  103. enemy:moveRight()
  104. if enemy.posX >= 50 then
  105. e_move = "L"
  106. end
  107. elseif e_move == "L" then
  108. enemy:moveLeft()
  109. if enemy.posX <= 2 then
  110. e_move = "R"
  111. end
  112. else
  113. controlls:stop()
  114. end
  115. enemy:draw()
  116. if enemy:collision(player) then return hit() end
  117. return false
  118. end
  119.  
  120. function test_shot()
  121. value = math.random(8)
  122. if value == 1 then shoot() end
  123. end
  124.  
  125. function shoot()
  126. local bullet = c_bullet:new({ posX = enemy.posX, posY = enemy.posY - 1 })
  127. table.insert(bullets, bullet)
  128. bullet:draw()
  129. end
  130.  
  131. function hit()
  132. controlls:stop()
  133. term.setBackgroundColor(colors.black)
  134. shell.run("clear")
  135. print("Hit")
  136. return true
  137. end
  138.  
  139. controlls:start(game)
  140.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement