Browse Source

enemy firing

master
NCLanceman 8 months ago
parent
commit
60d6692e22
  1. 22
      enemy.lua
  2. 65
      entities/enemy.lua
  3. 0
      entities/player.lua
  4. 9
      main.lua
  5. 0
      scripts/classic.lua

22
enemy.lua

@ -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

65
entities/enemy.lua

@ -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

0
player.lua → entities/player.lua

9
main.lua

@ -1,14 +1,14 @@
function love.load() function love.load()
Object = require("classic") Object = require("scripts.classic")
--require("blaster") --require("blaster")
require("player") require("entities.player")
require("enemy") require("entities.enemy")
local window_width = love.graphics.getWidth() local window_width = love.graphics.getWidth()
local window_height = love.graphics.getHeight() local window_height = love.graphics.getHeight()
player = Player(window_width / 2, window_height * 0.8) player = Player(window_width / 2, window_height * 0.8)
enemy = Enemy(100, 100) enemy = Enemy(100, 100, 70)
--set background for space! --set background for space!
love.graphics.setBackgroundColor(27 / 255, 51 / 255, 85 / 255) love.graphics.setBackgroundColor(27 / 255, 51 / 255, 85 / 255)
@ -16,6 +16,7 @@ end
function love.update(dt) function love.update(dt)
player:update(dt) player:update(dt)
enemy:update(dt)
end end
function love.draw() function love.draw()

0
classic.lua → scripts/classic.lua

Loading…
Cancel
Save