Batman
This commit is contained in:
131
lua/script_old.lua
Normal file
131
lua/script_old.lua
Normal file
@@ -0,0 +1,131 @@
|
||||
-- annotation.lua contains EmmyLua annotations for cpp_function & cpp_variable\
|
||||
|
||||
-- ball player
|
||||
|
||||
player = {
|
||||
x = 0,
|
||||
y = 0,
|
||||
size = 20
|
||||
}
|
||||
|
||||
|
||||
avoid_cubes = {}
|
||||
|
||||
timer = 0
|
||||
max_timer = 10
|
||||
|
||||
function create_cube(x, y, size, timer_to_explode, exploded, death_timer)
|
||||
return {
|
||||
x = x,
|
||||
y = y,
|
||||
size = size,
|
||||
timer_to_explode = timer_to_explode,
|
||||
death_timer = death_timer,
|
||||
exploded = exploded
|
||||
}
|
||||
end
|
||||
|
||||
function create_random_cube()
|
||||
local x = math.random(0, 800)
|
||||
local y = math.random(0, 600)
|
||||
local size = math.random(10, 50)
|
||||
local timer_to_explode = math.random(50, 200)
|
||||
local exploded = false
|
||||
local death_timer = math.random(50, 200)
|
||||
return create_cube(x, y, size, timer_to_explode, exploded, death_timer)
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- @param Engine GameEngine
|
||||
--- @param cube table
|
||||
function draw_cube(Engine, cube)
|
||||
if cube.exploded then
|
||||
Engine:setColor(Color.new(255, 0, 0))
|
||||
Engine:fillRect(cube.x, cube.y, cube.size, cube.size)
|
||||
else
|
||||
Engine:setColor(Color.new(0, 255, 0))
|
||||
Engine:drawRect(cube.x, cube.y, cube.size, cube.size)
|
||||
end
|
||||
end
|
||||
|
||||
function update_cubes()
|
||||
for i, cube in ipairs(avoid_cubes) do
|
||||
cube.timer_to_explode = cube.timer_to_explode - 1
|
||||
if cube.timer_to_explode < 0 then
|
||||
cube.exploded = true
|
||||
end
|
||||
|
||||
if cube.exploded then
|
||||
cube.death_timer = cube.death_timer - 1
|
||||
if cube.death_timer < 0 then
|
||||
table.remove(avoid_cubes, i)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function draw_player(Engine)
|
||||
Engine:setColor(Color.new(255, 0, 0))
|
||||
Engine:fillRect(player.x, player.y, player.size, player.size)
|
||||
end
|
||||
|
||||
--- the setup function
|
||||
--- @param Engine GameEngine # The GameEngine instance.
|
||||
--- @return nil
|
||||
function setup_window(Engine)
|
||||
Engine:setTitle("Hello World new")
|
||||
Engine:setWidth(800)
|
||||
Engine:setHeight(600)
|
||||
Engine:setFrameRate(60)
|
||||
end
|
||||
|
||||
--- the set_keylist function
|
||||
--- @return string
|
||||
function set_keylist()
|
||||
return "WASD"
|
||||
end
|
||||
|
||||
--- the update function
|
||||
--- @param Engine GameEngine # The GameEngine instance.
|
||||
--- @return nil
|
||||
function update(Engine)
|
||||
if Engine:isKeyDown("W") then
|
||||
player.y = player.y - 5
|
||||
end
|
||||
|
||||
if Engine:isKeyDown("A") then
|
||||
player.x = player.x - 5
|
||||
end
|
||||
|
||||
if Engine:isKeyDown("S") then
|
||||
player.y = player.y + 5
|
||||
end
|
||||
|
||||
if Engine:isKeyDown("D") then
|
||||
player.x = player.x + 5
|
||||
end
|
||||
|
||||
timer = timer + 1
|
||||
if timer > max_timer then
|
||||
table.insert(avoid_cubes, create_random_cube())
|
||||
timer = 0
|
||||
end
|
||||
|
||||
update_cubes()
|
||||
|
||||
player.x = Engine:getMouseX()
|
||||
player.y = Engine:getMouseY()
|
||||
end
|
||||
|
||||
|
||||
--- the draw function
|
||||
--- @param Engine GameEngine # The GameEngine instance.
|
||||
--- @return nil
|
||||
function draw(Engine)
|
||||
Engine:fillScreen(Color.new(0, 0, 0))
|
||||
draw_player(Engine)
|
||||
for i, cube in ipairs(avoid_cubes) do
|
||||
draw_cube(Engine, cube)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user