Compare commits
No commits in common. "19e10d66016cb750fd83b58599962127d844a207" and "16f90a075b61e597931a175e7fba11a140e2284f" have entirely different histories.
19e10d6601
...
16f90a075b
@ -1,21 +1,14 @@
|
|||||||
function GameKeyPressed(key)
|
function GameKeyPressed(key)
|
||||||
|
|
||||||
if key == "escape" then
|
if key == "escape" then
|
||||||
musicBattle:setVolume(0)
|
_G.GAMESTATE = "MENU"
|
||||||
musicPause:setVolume(0.5)
|
print("STATE CHANEGD: MENU!")
|
||||||
|
|
||||||
_G.GAMESTATE = "PAUSE"
|
|
||||||
print("STATE CHANEGD: PAUSED!")
|
|
||||||
_G.PAUSED = true
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if key == "b" and not _G.PAUSED then
|
if key == "b" then
|
||||||
DebugFlag = not DebugFlag
|
DebugFlag = not DebugFlag
|
||||||
end
|
end
|
||||||
|
|
||||||
--[[
|
if key == "r" then
|
||||||
if key == "r" and not _G.PAUSED then
|
|
||||||
love.load()
|
love.load()
|
||||||
end
|
end
|
||||||
]]--
|
|
||||||
end
|
end
|
||||||
|
@ -19,6 +19,7 @@ local function button(x,y, w, h, text, selected)
|
|||||||
-- Place text inside the rectangle
|
-- Place text inside the rectangle
|
||||||
love.graphics.setFont(MenuFont)
|
love.graphics.setFont(MenuFont)
|
||||||
love.graphics.print(text, textX, textY)
|
love.graphics.print(text, textX, textY)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function title()
|
local function title()
|
||||||
@ -39,6 +40,4 @@ function DrawMenu()
|
|||||||
button(100, 350, bwidth, bheight, "???", MENU_POS == 1 and true or false)
|
button(100, 350, bwidth, bheight, "???", MENU_POS == 1 and true or false)
|
||||||
button(100, 500, bwidth, bheight, "???", MENU_POS == 2 and true or false)
|
button(100, 500, bwidth, bheight, "???", MENU_POS == 2 and true or false)
|
||||||
button(100, 650, bwidth, bheight, "Quit", MENU_POS == 3 and true or false)
|
button(100, 650, bwidth, bheight, "Quit", MENU_POS == 3 and true or false)
|
||||||
|
|
||||||
love.graphics.setColor(255,255,255) -- reset colours
|
|
||||||
end
|
end
|
@ -8,7 +8,6 @@ function MenuKeyPressed(key)
|
|||||||
--Change state to GAME!
|
--Change state to GAME!
|
||||||
_G.GAMESTATE = "GAME"
|
_G.GAMESTATE = "GAME"
|
||||||
print("STATE CHANEGD: GAME!")
|
print("STATE CHANEGD: GAME!")
|
||||||
musicMenu:stop()
|
|
||||||
|
|
||||||
elseif MENU_POS == 1 then
|
elseif MENU_POS == 1 then
|
||||||
print("STATE CHANEGD: DUNNO!")
|
print("STATE CHANEGD: DUNNO!")
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
local function button(x,y, w, h, text, selected)
|
|
||||||
--x,y is the top left corner of the button
|
|
||||||
local rounding = 30 -- used for rounding the buttons
|
|
||||||
|
|
||||||
if not selected then
|
|
||||||
love.graphics.setColor(love.math.colorFromBytes(41,134,204))
|
|
||||||
elseif selected then
|
|
||||||
love.graphics.setColor(love.math.colorFromBytes(244,67,54))
|
|
||||||
end
|
|
||||||
-- Draw rectangle
|
|
||||||
love.graphics.rectangle("fill", x, y, w, h, rounding, rounding)
|
|
||||||
|
|
||||||
-- Get width and height of text
|
|
||||||
local tw = MenuFont:getWidth(text)
|
|
||||||
local th = MenuFont:getHeight(text)
|
|
||||||
-- Calculate position to center the text
|
|
||||||
local textX = x + (w - tw) / 2
|
|
||||||
local textY = y + (h - th) / 2
|
|
||||||
-- Place text inside the rectangle
|
|
||||||
love.graphics.setFont(MenuFont)
|
|
||||||
love.graphics.setColor(1,1,1) -- reset colours
|
|
||||||
love.graphics.print(text, textX, textY)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function DrawPause()
|
|
||||||
local opacity = 0.3
|
|
||||||
local height = love.graphics.getHeight()
|
|
||||||
local width = love.graphics.getWidth()
|
|
||||||
local bwidth, bheight = 300, 140
|
|
||||||
love.graphics.setFont(GameFont)
|
|
||||||
|
|
||||||
DrawGame() --Draw a single frame of the game
|
|
||||||
love.graphics.setColor(0.1,0.1,0.1, opacity) --overlay opaque img
|
|
||||||
love.graphics.rectangle("fill", 0, 0, width, height)
|
|
||||||
|
|
||||||
love.graphics.setColor(1,1,1)
|
|
||||||
love.graphics.print("PAUSED", 100,100)
|
|
||||||
--love.graphics.print("" .. PAUSE_POS, 200,200)
|
|
||||||
|
|
||||||
button(100, 200, bwidth, bheight, "Return", PAUSE_POS == 0 and true or false)
|
|
||||||
button(100, 350, bwidth, bheight, "Menu", PAUSE_POS == 1 and true or false)
|
|
||||||
button(100, 500, bwidth, bheight, "Quit", PAUSE_POS == 2 and true or false)
|
|
||||||
love.graphics.setColor(255,255,255) -- reset colours
|
|
||||||
end
|
|
@ -1,44 +0,0 @@
|
|||||||
function PauseKeyPressed(key)
|
|
||||||
if key == 'return' then
|
|
||||||
musicBattle:setVolume(0.5)
|
|
||||||
musicPause:setVolume(0)
|
|
||||||
-- 0 Return to game
|
|
||||||
-- 1 Quit
|
|
||||||
if PAUSE_POS == 0 then
|
|
||||||
-- unpause the game
|
|
||||||
_G.GAMESTATE = "GAME"
|
|
||||||
print("STATE CHANEGD: GAME!")
|
|
||||||
_G.PAUSED = false
|
|
||||||
musicBattle:setVolume(0.5)
|
|
||||||
musicPause:setVolume(0)
|
|
||||||
|
|
||||||
elseif PAUSE_POS == 1 then
|
|
||||||
_G.GAMESTATE = "MENU"
|
|
||||||
print("STATE CHANEGD: MENU!")
|
|
||||||
_G.PAUSED = false
|
|
||||||
musicPause:stop()
|
|
||||||
musicBattle:stop()
|
|
||||||
|
|
||||||
elseif PAUSE_POS == 2 then
|
|
||||||
love.event.quit()
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if love.keyboard.isDown("up") then
|
|
||||||
if _G.PAUSE_POS == 0 then
|
|
||||||
_G.PAUSE_POS = 0
|
|
||||||
else
|
|
||||||
_G.PAUSE_POS = _G.PAUSE_POS - 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if love.keyboard.isDown("down") then
|
|
||||||
if _G.PAUSE_POS >= _G.PAUSE_MAX then
|
|
||||||
_G.PAUSE_POS = _G.PAUSE_MAX
|
|
||||||
else
|
|
||||||
_G.PAUSE_POS = _G.PAUSE_POS + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,2 +0,0 @@
|
|||||||
function UpdatePause(dt)
|
|
||||||
end
|
|
30
README.md
30
README.md
@ -1,30 +0,0 @@
|
|||||||
# Tanks-A-Lot (LÖVE2D Game)
|
|
||||||
|
|
||||||
## How to install
|
|
||||||
|
|
||||||
### Download
|
|
||||||
|
|
||||||
### Build from source (LÖVE2D must be installed already)
|
|
||||||
To build and make **.love** file:
|
|
||||||
```sh
|
|
||||||
zip -r game.love . -x '*.git*'
|
|
||||||
```
|
|
||||||
To play, use:
|
|
||||||
```sh
|
|
||||||
love game.love
|
|
||||||
```
|
|
||||||
|
|
||||||
## How to Play
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
|
|
||||||
* Programming: Simon
|
|
||||||
* Art: Laura
|
|
||||||
* Music: AJ
|
|
||||||
|
|
||||||
# TODOS
|
|
||||||
* Links to socials
|
|
||||||
* Exe files
|
|
||||||
* Release stuff
|
|
||||||
* how to play instructions
|
|
||||||
* images for git
|
|
2
conf.lua
2
conf.lua
@ -2,5 +2,5 @@
|
|||||||
function love.conf(t)
|
function love.conf(t)
|
||||||
t.window.width = 1600
|
t.window.width = 1600
|
||||||
t.window.height = 960
|
t.window.height = 960
|
||||||
t.window.title = "Tanks-A-Lot"
|
t.window.title = "Game"
|
||||||
end
|
end
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
GAMESTATE = "MENU"
|
GAMESTATE = "MENU"
|
||||||
|
|
||||||
MENU_POS = 0
|
MENU_POS = 0
|
||||||
MENU_MAX = 3 --0 play, 1 ?, 2 ?, 3 quit
|
MENU_MAX = 3
|
||||||
|
|
||||||
PAUSED = false
|
|
||||||
PAUSE_POS = 0
|
|
||||||
PAUSE_MAX = 2 -- 0 resume, 1 menu, 2 quit
|
|
@ -1,68 +0,0 @@
|
|||||||
--
|
|
||||||
-- classic
|
|
||||||
--
|
|
||||||
-- Copyright (c) 2014, rxi
|
|
||||||
--
|
|
||||||
-- This module is free software; you can redistribute it and/or modify it under
|
|
||||||
-- the terms of the MIT license. See LICENSE for details.
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
||||||
local Object = {}
|
|
||||||
Object.__index = Object
|
|
||||||
|
|
||||||
|
|
||||||
function Object:new()
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Object:extend()
|
|
||||||
local cls = {}
|
|
||||||
for k, v in pairs(self) do
|
|
||||||
if k:find("__") == 1 then
|
|
||||||
cls[k] = v
|
|
||||||
end
|
|
||||||
end
|
|
||||||
cls.__index = cls
|
|
||||||
cls.super = self
|
|
||||||
setmetatable(cls, self)
|
|
||||||
return cls
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Object:implement(...)
|
|
||||||
for _, cls in pairs({...}) do
|
|
||||||
for k, v in pairs(cls) do
|
|
||||||
if self[k] == nil and type(v) == "function" then
|
|
||||||
self[k] = v
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Object:is(T)
|
|
||||||
local mt = getmetatable(self)
|
|
||||||
while mt do
|
|
||||||
if mt == T then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
mt = getmetatable(mt)
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Object:__tostring()
|
|
||||||
return "Object"
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Object:__call(...)
|
|
||||||
local obj = setmetatable({}, self)
|
|
||||||
obj:new(...)
|
|
||||||
return obj
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
return Object
|
|
46
main.lua
46
main.lua
@ -43,7 +43,7 @@ function love.run()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function love.load()
|
function love.load()
|
||||||
Object = require("libs/classic")
|
Object = require("classic")
|
||||||
require("player")
|
require("player")
|
||||||
require("bullet")
|
require("bullet")
|
||||||
|
|
||||||
@ -52,15 +52,12 @@ function love.load()
|
|||||||
|
|
||||||
require("Game/UpdateGame")
|
require("Game/UpdateGame")
|
||||||
require("Menu/UpdateMenu")
|
require("Menu/UpdateMenu")
|
||||||
require("Pause/UpdatePause")
|
|
||||||
|
|
||||||
require("Game/DrawGame")
|
require("Game/DrawGame")
|
||||||
require("Menu/DrawMenu")
|
require("Menu/DrawMenu")
|
||||||
require("Pause/DrawPause")
|
|
||||||
|
|
||||||
require("Game/GameKeyPressed")
|
require("Game/GameKeyPressed")
|
||||||
require("Menu/MenuKeyPressed")
|
require("Menu/MenuKeyPressed")
|
||||||
require("Pause/PauseKeyPressed")
|
|
||||||
|
|
||||||
require("mapsloader")
|
require("mapsloader")
|
||||||
|
|
||||||
@ -105,28 +102,12 @@ function love.load()
|
|||||||
local playerSpeed = 12000
|
local playerSpeed = 12000
|
||||||
UserPlayer1 = Player(1, 1000, 100, HEALTH, "assets/player1.png", playerSpeed)
|
UserPlayer1 = Player(1, 1000, 100, HEALTH, "assets/player1.png", playerSpeed)
|
||||||
UserPlayer2 = Player(2, 200, 300, HEALTH, "assets/player2.png", playerSpeed)
|
UserPlayer2 = Player(2, 200, 300, HEALTH, "assets/player2.png", playerSpeed)
|
||||||
|
|
||||||
-- Music streaming
|
|
||||||
musicMenu = love.audio.newSource("music/menu.mp3", "stream")
|
|
||||||
musicBattle = love.audio.newSource("music/battle.mp3", "stream")
|
|
||||||
musicStory = love.audio.newSource("music/story.mp3", "stream")
|
|
||||||
|
|
||||||
musicPause = musicBattle:clone()
|
|
||||||
musicPause:setFilter{
|
|
||||||
type = 'lowpass',
|
|
||||||
volume = 0.3,
|
|
||||||
highgain = 0.4,
|
|
||||||
}
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function love.keypressed(key)
|
function love.keypressed(key)
|
||||||
if _G.GAMESTATE == "MENU" then
|
if _G.GAMESTATE == "MENU" then
|
||||||
MenuKeyPressed(key)
|
MenuKeyPressed(key)
|
||||||
end
|
end
|
||||||
if _G.GAMESTATE == "PAUSE" then
|
|
||||||
PauseKeyPressed(key)
|
|
||||||
end
|
|
||||||
if _G.GAMESTATE == "GAME" then
|
if _G.GAMESTATE == "GAME" then
|
||||||
GameKeyPressed(key)
|
GameKeyPressed(key)
|
||||||
end
|
end
|
||||||
@ -136,31 +117,9 @@ end
|
|||||||
function love.update(dt)
|
function love.update(dt)
|
||||||
if _G.GAMESTATE == "MENU" then
|
if _G.GAMESTATE == "MENU" then
|
||||||
UpdateMenu(dt)
|
UpdateMenu(dt)
|
||||||
-- Handle music
|
|
||||||
if not musicMenu:isPlaying() then
|
|
||||||
musicMenu:setVolume(0.5)
|
|
||||||
love.audio.play(musicMenu)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if _G.GAMESTATE == "PAUSE" then
|
|
||||||
UpdatePause(dt)
|
|
||||||
-- Handle music
|
|
||||||
if not musicPause:isPlaying() then
|
|
||||||
--musicBattle:setVolume(0)
|
|
||||||
--musicPause:setVolume(0.5)
|
|
||||||
love.audio.play(musicBattle)
|
|
||||||
love.audio.play(musicPause)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if _G.GAMESTATE == "GAME" then
|
if _G.GAMESTATE == "GAME" then
|
||||||
UpdateGame(dt)
|
UpdateGame(dt)
|
||||||
-- Handle music
|
|
||||||
if not musicBattle:isPlaying() then
|
|
||||||
--musicBattle:setVolume(0.5)
|
|
||||||
--musicPause:setVolume(0)
|
|
||||||
love.audio.play(musicBattle)
|
|
||||||
love.audio.play(musicPause)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -168,9 +127,6 @@ function love.draw()
|
|||||||
if _G.GAMESTATE == "MENU" then
|
if _G.GAMESTATE == "MENU" then
|
||||||
DrawMenu()
|
DrawMenu()
|
||||||
end
|
end
|
||||||
if _G.GAMESTATE == "PAUSE" then
|
|
||||||
DrawPause()
|
|
||||||
end
|
|
||||||
if _G.GAMESTATE == "GAME" then
|
if _G.GAMESTATE == "GAME" then
|
||||||
DrawGame()
|
DrawGame()
|
||||||
if DebugFlag then
|
if DebugFlag then
|
||||||
|
BIN
music/battle.mp3
BIN
music/battle.mp3
Binary file not shown.
BIN
music/fight.mp3
BIN
music/fight.mp3
Binary file not shown.
BIN
music/menu.mp3
BIN
music/menu.mp3
Binary file not shown.
BIN
music/story.mp3
BIN
music/story.mp3
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user