5 changed files with 70 additions and 26 deletions
@ -1,22 +0,0 @@ |
|||
--! file enemy.lua |
|||
require("blaster") |
|||
Enemy = Object:extend() |
|||
|
|||
function Enemy:new(x, y) |
|||
self.x = x |
|||
self.y = y |
|||
self.width = 30 |
|||
self.height = 30 |
|||
self.health = 100 |
|||
end |
|||
|
|||
function Enemy:draw() |
|||
--draw stuff |
|||
love.graphics.rectangle("line", self.x, self.y, self.width, self.height) |
|||
end |
|||
|
|||
function Enemy:update(dt) |
|||
--movement |
|||
end |
|||
|
|||
--shoot at the player a variable number of seconds |
|||
@ -0,0 +1,65 @@ |
|||
--! file enemy.lua |
|||
require("blaster") |
|||
Enemy = Object:extend() |
|||
|
|||
local fireTime = love.timer.getTime() |
|||
|
|||
function Enemy:new(x, y, radius) |
|||
self.origin = { x, y } |
|||
self.x = x |
|||
self.y = y |
|||
self.width = 30 |
|||
self.height = 30 |
|||
self.health = 100 |
|||
self.move_radius = radius |
|||
self.speed = 100 |
|||
|
|||
listOfBullets = {} |
|||
end |
|||
|
|||
function Enemy:draw() |
|||
--draw stuff |
|||
love.graphics.rectangle("line", self.x, self.y, self.width, self.height) |
|||
|
|||
for _, v in ipairs(listOfBullets) do |
|||
love.graphics.circle("fill", v.x, v.y, v.radius) |
|||
end |
|||
end |
|||
|
|||
function Enemy:update(dt) |
|||
local bounds = { self.origin[1] - self.move_radius, self.origin[1] + self.move_radius } |
|||
local window_height = love.graphics.getHeight() |
|||
|
|||
self.x = self.x + self.speed * dt |
|||
|
|||
--movement |
|||
if self.x > bounds[2] then |
|||
self.speed = -self.speed |
|||
elseif self.x < bounds[1] then |
|||
self.speed = -self.speed |
|||
end |
|||
|
|||
--firing! |
|||
self:fire() |
|||
|
|||
for i, v in ipairs(listOfBullets) do |
|||
v:update(dt) |
|||
|
|||
if v.y > window_height then |
|||
v.destroy = true |
|||
end |
|||
|
|||
if v.destroy == true then |
|||
print("Enemy Bullet Removed! Bullets in table remaining: ", #listOfBullets) |
|||
table.remove(listOfBullets, i) |
|||
end |
|||
end |
|||
end |
|||
|
|||
--shoot at the player a variable number of seconds |
|||
function Enemy:fire() |
|||
if love.timer.getTime() - fireTime > 2 then |
|||
table.insert(listOfBullets, Blaster(self.x, self.y, "enemy")) |
|||
fireTime = love.timer.getTime() |
|||
end |
|||
end |
|||
Loading…
Reference in new issue