Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- local game_utils = require("game-utils")
- 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
- local table_utils = require("table-utils")
- math.randomseed(os.time())
- local my_back = game_utils.add_background("my_back")
- for x = 1, 51, 1 do
- for y = 1, 19, 1 do
- if x == 1 or x == 51 or y == 1 or y == 19 then
- my_back.render[x][y].color = colours.green
- else
- my_back.render[x][y].color = colours.red
- end
- end
- end
- game_utils.change_background(my_back)
- local player = game_utils.add_player(2, 2, "player_1")
- local enemy = game_utils.add_enemy(50, 18, "enemy_1")
- local buffer = false
- player.render[2][1].color = colours.black
- player.render[2][2].color = colours.black
- player.render[2][3].color = colours.black
- player.render[1][2].color = colours.black
- player.render[3][2].color = colours.black
- enemy.render[1][1].color = colours.pink
- local controlls = game_utils.add_controller("controlls")
- game_utils.add_controller_key(controlls, "Quit", keys.q, function()
- controlls:stop()
- term.setBackgroundColor(colors.black)
- shell.run("clear")
- print("Programm finished")
- end)
- game_utils.add_controller_key(controlls, "Up", keys.up, function()
- buffer = "U"
- end)
- game_utils.add_controller_key(controlls, "Down", keys.down, function()
- buffer = "D"
- end)
- game_utils.add_controller_key(controlls, "Left", keys.left, function()
- buffer = "L"
- end)
- game_utils.add_controller_key(controlls, "Right", keys.right, function()
- buffer = "R"
- end)
- local e_move = "L"
- local bullets = {}
- local c_bullet = game_utils.add_other(1, 1, "c_bullet")
- function c_bullet:fly()
- if self.posY > 2 then
- if self:collision(player) then return hit() end
- self:undraw()
- self:moveUp()
- self:draw()
- if self:collision(player) then return hit() end
- else
- if self:collision(player) then return hit() end
- table_utils.removeItem(bullets, self)
- self:undraw()
- self:destroy()
- end
- return false
- end
- c_bullet.render[1][1].color = colours.purple
- player:draw()
- function game()
- os.sleep(0.1)
- if moveEnemy() then return true end
- if moveBullets() then return true end
- test_shot()
- local sizeX, sizeY = player:getSize()
- if buffer == "U" and player.posY > 2 then
- player:undraw()
- player:moveUp()
- player:draw()
- elseif buffer == "D" and player.posY < (19 - sizeY) then
- player:undraw()
- player:moveDown()
- player:draw()
- elseif buffer == "L" and player.posX > 2 then
- player:undraw()
- player:moveLeft()
- player:draw()
- elseif buffer == "R" and player.posX < (51 - sizeX) then
- player:undraw()
- player:moveRight()
- player:draw()
- end
- end
- function moveBullets()
- for index, bullet in pairs(bullets) do
- if bullet:fly() then return true end
- end
- return false
- end
- function moveEnemy()
- if enemy:collision(player) then return hit() end
- enemy:undraw()
- if e_move == "R" then
- enemy:moveRight()
- if enemy.posX >= 50 then
- e_move = "L"
- end
- elseif e_move == "L" then
- enemy:moveLeft()
- if enemy.posX <= 2 then
- e_move = "R"
- end
- else
- controlls:stop()
- end
- enemy:draw()
- if enemy:collision(player) then return hit() end
- return false
- end
- function test_shot()
- value = math.random(8)
- if value == 1 then shoot() end
- end
- function shoot()
- local bullet = c_bullet:new({ posX = enemy.posX, posY = enemy.posY - 1 })
- table.insert(bullets, bullet)
- bullet:draw()
- end
- function hit()
- controlls:stop()
- term.setBackgroundColor(colors.black)
- shell.run("clear")
- print("Hit")
- return true
- end
- controlls:start(game)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement