|
|
@ -2,9 +2,6 @@ |
|
|
require("blaster") |
|
|
require("blaster") |
|
|
Enemy = Object:extend() |
|
|
Enemy = Object:extend() |
|
|
|
|
|
|
|
|
local fireTime = love.timer.getTime() |
|
|
|
|
|
local enemyBullets |
|
|
|
|
|
|
|
|
|
|
|
--int x, y, radius |
|
|
--int x, y, radius |
|
|
--playableArea -> {int[2]} |
|
|
--playableArea -> {int[2]} |
|
|
function Enemy:new(x, y, radius, playableArea) |
|
|
function Enemy:new(x, y, radius, playableArea) |
|
|
@ -36,8 +33,9 @@ function Enemy:new(x, y, radius, playableArea) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
self.move_bounds = self:setMoveBounds() |
|
|
self.move_bounds = self:setMoveBounds() |
|
|
print("Move Bounds: ", self.move_bounds[1], " , ", self.move_bounds[2]) |
|
|
--print("Move Bounds: ", self.move_bounds[1], " , ", self.move_bounds[2]) |
|
|
enemyBullets = {} |
|
|
self.fireTime = love.timer.getTime() |
|
|
|
|
|
self.enemyBullets = {} |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
function Enemy:draw() |
|
|
function Enemy:draw() |
|
|
@ -45,7 +43,7 @@ function Enemy:draw() |
|
|
love.graphics.rectangle("line", self.hitbox[1], self.hitbox[3], self.width, self.height) |
|
|
love.graphics.rectangle("line", self.hitbox[1], self.hitbox[3], self.width, self.height) |
|
|
love.graphics.draw(self.image, self.x, self.y, 0, 1, 1) |
|
|
love.graphics.draw(self.image, self.x, self.y, 0, 1, 1) |
|
|
|
|
|
|
|
|
for _, v in ipairs(enemyBullets) do |
|
|
for _, v in ipairs(self.enemyBullets) do |
|
|
v:draw() |
|
|
v:draw() |
|
|
end |
|
|
end |
|
|
end |
|
|
end |
|
|
@ -61,17 +59,17 @@ function Enemy:update(dt, player) |
|
|
|
|
|
|
|
|
--movement |
|
|
--movement |
|
|
if self.hitbox[1] < self.move_bounds[1] then |
|
|
if self.hitbox[1] < self.move_bounds[1] then |
|
|
self.x = self.move_bounds[1] |
|
|
--self.x = self.move_bounds[1] |
|
|
self.speed = -self.speed |
|
|
self.speed = -self.speed |
|
|
elseif self.hitbox[2] > self.move_bounds[2] then |
|
|
elseif self.hitbox[2] > self.move_bounds[2] then |
|
|
self.x = self.move_bounds[2] - self.width - self.x_offset |
|
|
--self.x = self.move_bounds[2] - self.width - self.x_offset |
|
|
self.speed = -self.speed |
|
|
self.speed = -self.speed |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
--firing! |
|
|
--firing! |
|
|
self:fire() |
|
|
self:fire() |
|
|
|
|
|
|
|
|
for i, v in ipairs(enemyBullets) do |
|
|
for i, v in ipairs(self.enemyBullets) do |
|
|
v:update(dt) |
|
|
v:update(dt) |
|
|
|
|
|
|
|
|
if v.y > window_height then |
|
|
if v.y > window_height then |
|
|
@ -80,7 +78,7 @@ function Enemy:update(dt, player) |
|
|
|
|
|
|
|
|
if v.destroy == true then |
|
|
if v.destroy == true then |
|
|
--print("Enemy Bullet Removed! Bullets in table remaining: ", #enemyBullets) |
|
|
--print("Enemy Bullet Removed! Bullets in table remaining: ", #enemyBullets) |
|
|
table.remove(enemyBullets, i) |
|
|
table.remove(self.enemyBullets, i) |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
v:checkCollision(player) |
|
|
v:checkCollision(player) |
|
|
@ -95,9 +93,9 @@ end |
|
|
function Enemy:fire() |
|
|
function Enemy:fire() |
|
|
--local fire_origin = { self.x + 26, self.y + 44 } |
|
|
--local fire_origin = { self.x + 26, self.y + 44 } |
|
|
local fire_origin = { (self.x + (self.width / 2)), self.y + self.height } |
|
|
local fire_origin = { (self.x + (self.width / 2)), self.y + self.height } |
|
|
if love.timer.getTime() - fireTime > self.fireRate then |
|
|
if love.timer.getTime() - self.fireTime > self.fireRate then |
|
|
table.insert(enemyBullets, Blaster(fire_origin[1], fire_origin[2], "enemy")) |
|
|
table.insert(self.enemyBullets, Blaster(fire_origin[1], fire_origin[2], "enemy")) |
|
|
fireTime = love.timer.getTime() |
|
|
self.fireTime = love.timer.getTime() |
|
|
end |
|
|
end |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
|