110 lines
2.7 KiB
Lua
110 lines
2.7 KiB
Lua
|
function love.load()
|
||
|
require "scripts"
|
||
|
love.graphics.setColor(1,1,1)
|
||
|
love.keyboard.setKeyRepeat(true)
|
||
|
love.graphics.setDefaultFilter("nearest") -- good pixel
|
||
|
window_width = 600
|
||
|
window_height = 600
|
||
|
Time = 0
|
||
|
TimeDone = false
|
||
|
BackgroundColor = {0,0,0}
|
||
|
BackgroundTimer = 0
|
||
|
BackgroundPeriod = 0.1
|
||
|
EnemyTimer = 0
|
||
|
EnemyPeriod = 0.8
|
||
|
You = Player:New(1/2*window_width,4/5*window_height)
|
||
|
|
||
|
end
|
||
|
|
||
|
function love.update(dt)
|
||
|
current_dt = dt
|
||
|
You:Input()
|
||
|
|
||
|
for _, obj in pairs(List.Simulate) do
|
||
|
obj:Step()
|
||
|
end
|
||
|
|
||
|
for _, bullet in pairs(List.FriendlyBullet) do
|
||
|
for _, enemy in pairs(List.Enemy) do
|
||
|
if bullet:CollisionWith(enemy) then
|
||
|
if bullet.hits > 0 then
|
||
|
enemy:Damage(bullet.damage)
|
||
|
bullet.hits = bullet.hits - 1
|
||
|
if bullet.hits <= 0 then
|
||
|
bullet:Kill()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
for _, bullet in pairs(List.EnemyBullet) do
|
||
|
if bullet:CollisionWith(You) then
|
||
|
if bullet.hits > 0 then
|
||
|
You:Damage(bullet.damage)
|
||
|
bullet.hits = bullet.hits - 1
|
||
|
if bullet.hits <= 0 then
|
||
|
bullet:Kill()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if TimeDone == false then
|
||
|
Time = Time + dt
|
||
|
EnemyTimer = EnemyTimer + dt
|
||
|
BackgroundTimer = BackgroundTimer + dt
|
||
|
end
|
||
|
|
||
|
if EnemyTimer >= 0 then --EnemyPeriod then
|
||
|
--EnemyTimer = EnemyTimer - EnemyPeriod
|
||
|
EnemyTimer = -1000000000000
|
||
|
for i=1, 1 do
|
||
|
local rand = 1 --math.random(10)
|
||
|
if rand == 1 then
|
||
|
local rand_x = math.random(-100,100)
|
||
|
local rand_y = math.random(-100,100)
|
||
|
local x = Shooter:New(1/2*window_width,1/5*window_height)
|
||
|
else
|
||
|
local rand_x = math.random(-10,10)
|
||
|
local rand_y = math.random(-10,10)
|
||
|
local x = Fang:New(window_width/2+rand_x,window_height/2+rand_y)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function love.keypressed(key)
|
||
|
|
||
|
end
|
||
|
|
||
|
function love.draw()
|
||
|
love.graphics.setColor(BackgroundColor)
|
||
|
love.graphics.rectangle("fill",0,0,window_width,window_height)
|
||
|
love.graphics.setColor(1,1,1)
|
||
|
You:Draw()
|
||
|
|
||
|
for _, obj in pairs(List.Simulate) do
|
||
|
obj:Draw()
|
||
|
end
|
||
|
for _, enemy in pairs(List.Enemy) do
|
||
|
if enemy.show_health == true then enemy:DrawHealth() end
|
||
|
end
|
||
|
local width = You.max_health*3
|
||
|
local height = 20
|
||
|
love.graphics.setColor(1,1,1)
|
||
|
love.graphics.rectangle("fill",20,10,width, height)
|
||
|
love.graphics.setColor(0,1,0)
|
||
|
love.graphics.rectangle("fill",20+1,10+1,You.health/You.max_health*(width)-2, height-2)
|
||
|
love.graphics.setColor(1,1,1)
|
||
|
|
||
|
love.graphics.line(0,1/5*window_height,window_height,1/5*window_height)
|
||
|
love.graphics.rectangle("line",0,0,window_width,window_height)
|
||
|
-- overlay
|
||
|
--love.graphics.print(Time, 10, 10)
|
||
|
love.graphics.print(BackgroundTimer, window_width-100, 10)
|
||
|
love.graphics.print(BackgroundPeriod, window_width-100, 20)
|
||
|
love.graphics.print(#List.Simulate, window_width-100, window_height-10)
|
||
|
love.graphics.print(current_dt, 10, window_height-10)
|
||
|
end
|