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