Finish beta
This commit is contained in:
parent
ca002ea116
commit
0e3f3965fb
BIN
assets/sounds/ambient.wav
Normal file
BIN
assets/sounds/ambient.wav
Normal file
Binary file not shown.
BIN
assets/sounds/die.wav
Normal file
BIN
assets/sounds/die.wav
Normal file
Binary file not shown.
BIN
assets/sprites/asteroid_2.png
Normal file
BIN
assets/sprites/asteroid_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
51
main.lua
51
main.lua
@ -3,7 +3,11 @@ function love.load()
|
|||||||
game = {}
|
game = {}
|
||||||
game.width = 800
|
game.width = 800
|
||||||
game.height = 480
|
game.height = 480
|
||||||
|
game.play = true
|
||||||
|
game.score = 0
|
||||||
|
game.time_restart = 2
|
||||||
love.window.setMode(game.width, game.height)
|
love.window.setMode(game.width, game.height)
|
||||||
|
score = { x = 500, y = 40 }
|
||||||
-- Background
|
-- Background
|
||||||
background = {}
|
background = {}
|
||||||
background.img = love.graphics.newImage('assets/sprites/background.jpg')
|
background.img = love.graphics.newImage('assets/sprites/background.jpg')
|
||||||
@ -33,7 +37,7 @@ function love.load()
|
|||||||
asteroids = {}
|
asteroids = {}
|
||||||
for i = 1, num_asteroids do
|
for i = 1, num_asteroids do
|
||||||
asteroid = {}
|
asteroid = {}
|
||||||
asteroid.img = love.graphics.newImage('assets/sprites/asteroid_1.png')
|
asteroid.img = love.graphics.newImage('assets/sprites/asteroid_' .. tostring(math.random(1, 2)) .. '.png')
|
||||||
asteroid.x = game.width
|
asteroid.x = game.width
|
||||||
asteroid.y = {
|
asteroid.y = {
|
||||||
(game.height / 4) - (asteroid.img:getHeight() / 2),
|
(game.height / 4) - (asteroid.img:getHeight() / 2),
|
||||||
@ -41,12 +45,31 @@ function love.load()
|
|||||||
3 * (game.height / 4) - (asteroid.img:getHeight() / 2),
|
3 * (game.height / 4) - (asteroid.img:getHeight() / 2),
|
||||||
}
|
}
|
||||||
asteroid.pos = 2
|
asteroid.pos = 2
|
||||||
asteroid.speed = 100
|
asteroid.speed = 800
|
||||||
asteroids[i] = asteroid
|
asteroids[i] = asteroid
|
||||||
end
|
end
|
||||||
|
-- Sounds
|
||||||
|
sounds = {}
|
||||||
|
sounds.die = love.audio.newSource('assets/sounds/die.wav', 'static')
|
||||||
|
sounds.ambient = love.audio.newSource('assets/sounds/ambient.wav')
|
||||||
|
sounds.ambient:play()
|
||||||
|
sounds.ambient:setLooping(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local my_time_restart = 0
|
||||||
function love.update(dt)
|
function love.update(dt)
|
||||||
|
if not game.play then
|
||||||
|
my_time_restart = my_time_restart + dt
|
||||||
|
if my_time_restart > game.time_restart then
|
||||||
|
game.play = true
|
||||||
|
game.score = 0
|
||||||
|
my_time_restart = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Score
|
||||||
|
if game.play then
|
||||||
|
game.score = game.score + dt * 100
|
||||||
|
end
|
||||||
-- Sprite spaceship
|
-- Sprite spaceship
|
||||||
if spaceship.pos_frame ~= spaceship.num_frames then
|
if spaceship.pos_frame ~= spaceship.num_frames then
|
||||||
spaceship.pos_frame = spaceship.pos_frame + 1
|
spaceship.pos_frame = spaceship.pos_frame + 1
|
||||||
@ -60,15 +83,30 @@ function love.update(dt)
|
|||||||
asteroid.x = game.width + math.random(0, game.width)
|
asteroid.x = game.width + math.random(0, game.width)
|
||||||
asteroid.pos = math.random(1, 3)
|
asteroid.pos = math.random(1, 3)
|
||||||
end
|
end
|
||||||
|
-- Colision
|
||||||
|
if checkCollision(spaceship.x + spaceship.img:getWidth() / spaceship.num_frames / 2, spaceship.y[spaceship.pos], spaceship.img:getWidth() / spaceship.num_frames / 2, spaceship.img:getHeight(), asteroid.x, asteroid.y[asteroid.pos], asteroid.img:getWidth(), asteroid.img:getHeight()) then
|
||||||
|
game.play = false
|
||||||
|
sounds.die:play()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function love.draw()
|
function love.draw()
|
||||||
|
-- Background
|
||||||
love.graphics.draw(background.img, background.x, background.y)
|
love.graphics.draw(background.img, background.x, background.y)
|
||||||
love.graphics.draw(spaceship.img, spaceship.frames[spaceship.pos_frame], spaceship.x, spaceship.y[spaceship.pos])
|
-- Spaceship
|
||||||
|
if game.play then
|
||||||
|
love.graphics.draw(spaceship.img, spaceship.frames[spaceship.pos_frame], spaceship.x, spaceship.y[spaceship.pos])
|
||||||
|
end
|
||||||
|
-- Asteroids
|
||||||
for key, asteroid in pairs(asteroids) do
|
for key, asteroid in pairs(asteroids) do
|
||||||
love.graphics.draw(asteroid.img, asteroid.x, asteroid.y[asteroid.pos])
|
love.graphics.draw(asteroid.img, asteroid.x, asteroid.y[asteroid.pos])
|
||||||
end
|
end
|
||||||
|
-- Score
|
||||||
|
love.graphics.print('Score: ' .. math.ceil(game.score), score.x , score.y)
|
||||||
|
if not game.play then
|
||||||
|
love.graphics.print('Game over', game.width / 2, game.height / 2)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Controls
|
-- Controls
|
||||||
@ -81,4 +119,11 @@ function love.keypressed(key, scancode, isrepeat)
|
|||||||
elseif key == 'down' and spaceship.pos < 3 then
|
elseif key == 'down' and spaceship.pos < 3 then
|
||||||
spaceship.pos = spaceship.pos + 1
|
spaceship.pos = spaceship.pos + 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkCollision(x1,y1,w1,h1, x2,y2,w2,h2)
|
||||||
|
return x1 < x2 + w2 and
|
||||||
|
x2 < x1 + w1 and
|
||||||
|
y1 < y2 + h2 and
|
||||||
|
y2 < y1 + h1
|
||||||
end
|
end
|
Loading…
Reference in New Issue
Block a user