From 3b710c803e2246e7d6ed3397f1cb1ca5f5ea40bc Mon Sep 17 00:00:00 2001 From: NCLanceman Date: Sun, 13 Apr 2025 02:37:43 -0500 Subject: [PATCH] fixed enemy movement and firing bug --- entities/enemy.lua | 24 +++++++++++------------- main.lua | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/entities/enemy.lua b/entities/enemy.lua index c91181b..08ebda5 100644 --- a/entities/enemy.lua +++ b/entities/enemy.lua @@ -2,9 +2,6 @@ require("blaster") Enemy = Object:extend() -local fireTime = love.timer.getTime() -local enemyBullets - --int x, y, radius --playableArea -> {int[2]} function Enemy:new(x, y, radius, playableArea) @@ -36,8 +33,9 @@ function Enemy:new(x, y, radius, playableArea) } self.move_bounds = self:setMoveBounds() - print("Move Bounds: ", self.move_bounds[1], " , ", self.move_bounds[2]) - enemyBullets = {} + --print("Move Bounds: ", self.move_bounds[1], " , ", self.move_bounds[2]) + self.fireTime = love.timer.getTime() + self.enemyBullets = {} end 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.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() end end @@ -61,17 +59,17 @@ function Enemy:update(dt, player) --movement 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 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 end --firing! self:fire() - for i, v in ipairs(enemyBullets) do + for i, v in ipairs(self.enemyBullets) do v:update(dt) if v.y > window_height then @@ -80,7 +78,7 @@ function Enemy:update(dt, player) if v.destroy == true then --print("Enemy Bullet Removed! Bullets in table remaining: ", #enemyBullets) - table.remove(enemyBullets, i) + table.remove(self.enemyBullets, i) end v:checkCollision(player) @@ -95,9 +93,9 @@ end function Enemy:fire() --local fire_origin = { self.x + 26, self.y + 44 } local fire_origin = { (self.x + (self.width / 2)), self.y + self.height } - if love.timer.getTime() - fireTime > self.fireRate then - table.insert(enemyBullets, Blaster(fire_origin[1], fire_origin[2], "enemy")) - fireTime = love.timer.getTime() + if love.timer.getTime() - self.fireTime > self.fireRate then + table.insert(self.enemyBullets, Blaster(fire_origin[1], fire_origin[2], "enemy")) + self.fireTime = love.timer.getTime() end end diff --git a/main.lua b/main.lua index c5d5e85..6c17b8b 100644 --- a/main.lua +++ b/main.lua @@ -18,7 +18,7 @@ function love.load() table.insert(ListOfEnemies, Enemy((bounds[1] + 50), 100, 70, bounds)) table.insert(ListOfEnemies, Enemy((bounds[1] + bounds[2]) / 2, 125, 70, bounds)) - table.insert(ListOfEnemies, Enemy((bounds[2] - 25), 75, 70, bounds)) + table.insert(ListOfEnemies, Enemy((bounds[2] - 50), 75, 70, bounds)) --set background for space! love.graphics.setBackgroundColor(27 / 255, 51 / 255, 85 / 255)