Add chaingun

This commit is contained in:
Mikko Ahlroth 2014-10-18 20:20:37 +03:00
parent 4b0191e2f9
commit d6500622fd
6 changed files with 45 additions and 7 deletions

40
entities/chaingun.lua Normal file
View file

@ -0,0 +1,40 @@
Class = require 'hump.class'
require 'entities/physicsentity'
require 'settings'
CHAINGUN_SOUND = love.audio.newSource("resources/audio/chaingun.mp3", "static")
Chaingun = Class{
__includes = Rectangle,
MAX_LIFETIME = 60 * 5,
img = nil,
frame = 0,
init = function(self, x, y, level)
local xsize = 0.2 * PIXELS_PER_METER
local ysize = 0.2 * PIXELS_PER_METER
Rectangle.init(self, x, y, level, "dynamic", 0.2, xsize, ysize, 1000, nil)
self.body:setBullet(true)
CHAINGUN_SOUND:rewind()
CHAINGUN_SOUND:play()
end;
update = function(self, dt)
Rectangle.update(self, dt)
self.frame = self.frame + 1
if self.frame >= self.MAX_LIFETIME then
self:delete()
end
end;
draw = function(self)
love.graphics.setColor({255, 0, 0, 255})
Rectangle.draw(self)
end;
}

View file

@ -33,7 +33,6 @@ PhysicsEntity = Class{
-- Reimplement
draw = function(self)
love.graphics.setColor({255, 255, 255, 255})
end;
-- Only update if physics is not static

View file

@ -31,7 +31,6 @@ Rectangle = Class{
end;
draw = function(self)
PhysicsEntity.draw(self)
if self.img ~= nil then
love.graphics.draw(self.img, self.quad, self.body:getX(), self.body:getY(), self.angle, 1, 1, self.xsize / 2, self.ysize / 2)
else

View file

@ -13,7 +13,7 @@ Vickers77 = Class{
init = function(self, x, y, level)
local xsize = 0.35 * PIXELS_PER_METER
local ysize = 0.1 * PIXELS_PER_METER
local ysize = 0.2 * PIXELS_PER_METER
Rectangle.init(self, x, y, level, "dynamic", 0.2, xsize, ysize, 1000, nil)
self.body:setBullet(true)

View file

@ -1,7 +1,7 @@
Gamestate = require 'hump.gamestate'
require 'level'
require 'player'
require 'entities/vickers77'
require 'entities/chaingun'
level_state = {}
@ -73,9 +73,9 @@ function level_state:keypressed(key, unicode)
end
end
local shot = Vickers77(200, 700, current_level)
shot:setAngle(-89)
shot:punch(-89, 10000)
local shot = Chaingun(200, 700, current_level)
shot:setAngle(-45)
shot:punch(-45, 100000)
end

Binary file not shown.