You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
1.7 KiB
87 lines
1.7 KiB
local love = require "love" |
|
local lg = love.graphics |
|
local lk = love.keyboard |
|
local Ban = require "Ban" |
|
local Game = require "Game" |
|
local Player = require "Player" |
|
local Menu = require "menu" |
|
|
|
math.randomseed(os.time()) |
|
function love.load() |
|
local BAN_DISTANCE = 0.6 |
|
local BAN_SPEED = 500 |
|
|
|
player = Player() |
|
game = Game() |
|
game:startNewGame(player) |
|
menu = Menu(game, player) |
|
end |
|
|
|
function love.keypressed(key) |
|
if game.state.running then |
|
if key == "escape" then |
|
game:changeGameState("paused") |
|
end |
|
elseif game.state.paused then |
|
if key == "escape" then |
|
game:changeGameState("running") |
|
end |
|
end -- endif for gamestate |
|
|
|
if key == "up" then |
|
player.thrusting = true |
|
end |
|
|
|
if key == "space" then |
|
player:shootBan() |
|
end |
|
|
|
end |
|
|
|
function love.keyreleased(key) |
|
if key == "up" then |
|
player.thrusting = false |
|
end |
|
end |
|
|
|
function love.mousepressed(x, y, button, istouch, presses) |
|
|
|
if button == 1 then |
|
clickedMouse = true |
|
end |
|
end |
|
|
|
function love.update(dt) |
|
if game.state.running then |
|
player:movePlayer(dt) |
|
|
|
for chat_index, chat in pairs(chats) do |
|
-- we new check to see for ban collision detection |
|
for _, ban in pairs(player.bans) do |
|
if calculateDistance(ban.x, ban.y, chat.x, chat.y) < chat.radius then |
|
ban:explode() -- delete ban |
|
chat:destroy(chats, chat_index, game) |
|
end |
|
end |
|
|
|
chat:move(player.x, player.y, dt) |
|
end |
|
|
|
elseif game.state.menu then |
|
menu:run(clickedMouse) |
|
clickedMouse = false |
|
end |
|
end |
|
|
|
function love.draw() |
|
if game.state.running then |
|
player:draw() |
|
|
|
for _, chat in pairs(chats) do |
|
chat:draw() |
|
end |
|
|
|
elseif game.state.paused then |
|
menu:draw() |
|
end |
|
end
|
|
|