--{Load}--
function love.load()
target = {}
target.x = 300
target.y = 300
target.radius = 50
score = 0
timer = 0
gameFont = love.graphics.newFont('fonts/Daydream.ttf', 40)
math.randomseed(os.time())
red = math.random(1, 255)
green = math.random(1, 255)
blue = math.random(1, 255)
anim8 = require 'libraries/anim8'
love.graphics.setDefaultFilter("nearest", nearest)
sti = require 'libraries/sti'
gameMap = sti('maps/mainMap.lua')
player = {}
player.x = 400
player.y = 400
player.speed = 4
player.runSpeed = 6
player.spriteSheet = love.graphics.newImage('sprites/Slime1_Walk_full.png')
player.runSpriteSheet = love.graphics.newImage('sprites/Slime1_run_full.png')
player.diagonalWalkSpriteSheet = love.graphics.newImage('sprites/Slime1_diagonalWalk_full.png')
player.diagonalRunSpriteSheet = love.graphics.newImage('sprites/Slime1_diagonalRun_full.png')
player.attackSpriteSheet = love.graphics.newImage('sprites/Slime1_attack_full.png')
player.grid = anim8.newGrid(64, 64, player.spriteSheet:getWidth(), player.spriteSheet:getHeight())
player.runGrid = anim8.newGrid(64, 64, player.runSpriteSheet:getWidth(), player.runSpriteSheet:getHeight())
player.diagonalWalkGrid = anim8.newGrid(64, 64, player.diagonalWalkSpriteSheet:getWidth(), player.diagonalWalkSpriteSheet:getHeight())
player.diagonalRunGrid = anim8.newGrid(64, 64, player.diagonalRunSpriteSheet:getWidth(), player.diagonalRunSpriteSheet:getHeight())
player.attackGrid = anim8.newGrid(64, 64, player.attackSpriteSheet:getwidth(), player.attackSpriteSheet:getHeight())
player.animations = {}
player.animations.down = anim8.newAnimation(player.grid('1-8', 1), 0.05)
player.animations.up = anim8.newAnimation(player.grid('1-8', 2), 0.05)
player.animations.left = anim8.newAnimation(player.grid('1-8', 3), 0.05)
player.animations.right = anim8.newAnimation(player.grid('1-8', 4), 0.05)
player.animations.run_down = anim8.newAnimation(player.runGrid('1-8', 1), 0.05)
player.animations.run_up = anim8.newAnimation(player.runGrid('1-8', 2), 0.05)
player.animations.run_left = anim8.newAnimation(player.runGrid('1-8', 3), 0.05)
player.animations.run_right = anim8.newAnimation(player.runGrid('1-8', 4), 0.05)
player.animations.diagonalWalk_NW = anim8.newAnimation(player.diagonalWalkGrid('1-8', 1), 0.05)
player.animations.diagonalWalk_NE = anim8.newAnimation(player.diagonalWalkGrid('1-8', 2), 0.05)
player.animations.diagonalWalk_SE = anim8.newAnimation(player.diagonalWalkGrid('1-8', 3), 0.05)
player.animations.diagonalWalk_SW = anim8.newAnimation(player.diagonalWalkGrid('1-8', 4), 0.05)
player.animations.diagonalRun_NW = anim8.newAnimation(player.diagonalRunGrid('1-8', 1), 0.05)
player.animations.diagonalRun_NE = anim8.newAnimation(player.diagonalRunGrid("1-8", 2), 0.05)
player.animations.diagonalRun_SE = anim8.newAnimation(player.diagonalRunGrid("1-8", 3), 0.05)
player.animations.diagonalRun_SW = anim8.newAnimation(player.diagonalRunGrid("1-8", 4), 0.05)
player.animations.attack = anim8.newAnimation(player.attackGrid('1-8', 1), 0.05)
player.anim = player.animations.left
end
--{Update}--
function love.update(dt)
local isMoving = false
local isRunning = love.keyboard.isDown("lshift")
--{PlayerMovements}--
--linear
if love.keyboard.isDown("d") then
if isRunning then
player.x = player.x + player.runSpeed
player.anim = player.animations.run_right
else
player.x = player.x + player.speed
player.anim = player.animations.right
end
isMoving = true
end
if love.keyboard.isDown("a") then
if isRunning then
player.x = player.x - player.runSpeed
player.anim = player.animations.run_left
else
player.x = player.x - player.speed
player.anim = player.animations.left
end
isMoving = true
end
if love.keyboard.isDown("s") then
if isRunning then
player.y = player.y + player.runSpeed
player.anim = player.animations.run_down
else
player.y = player.y + player.speed
player.anim = player.animations.down
end
isMoving = true
end
if love.keyboard.isDown("w") then
if isRunning then
player.y = player.y - player.runSpeed
player.anim = player.animations.run_up
else
player.y = player.y - player.speed
player.anim = player.animations.up
end
isMoving = true
end
--diagonal
if love.keyboard.isDown("d") and love.keyboard.isDown("w") then
if isRunning then
player.y = player.y + player.runSpeed
player.x = player.x + player.runSpeed
player.anim = player.animations.diagonalRun_NE
else
player.y = player.y + player.speed
player.x = player.x + player.speed
player.anim = player.animations.diagonalWalk_NE
end
isMoving = true
end
if love.keyboard.isDown("a") and love.keyboard.isDown("w") then
if isRunning then
player.y = player.y + player.runSpeed
player.x = player.x - player.runSpeed
player.anim = player.animations.diagonalRun_NW
else
player.y = player.y + player.speed
player.x = player.x - player.speed
player.anim = player.animations.diagonalWalk_NW
end
isMoving = true
end
if love.keyboard.isDown("d") and love.keyboard.isDown("s") then
if isRunning then
player.y = player.y - player.runSpeed
player.x = player.x + player.runSpeed
player.anim = player.animations.diagonalRun_SE
else
player.y = player.y - player.speed
player.x = player.x + player.runSpeed
player.anim = player.animations.diagonalWalk_SE
end
isMoving = true
end
if love.keyboard.isDown("a") and love.keyboard.isDown("s") then
if isRunning then
player.y = player.y - player.runSpeed
player.x = player.x - player.runSpeed
player.anim = player.animations.diagonalWalk_SW
else
player.y = player.y - player.speed
player.x = player.x - player.speed
player.anim = player.animations.diagonalWalk_SW
end
isMoving = true
end
if love.keyboard.isDown("space") then
player.anim = player.animations.attack
player.speed = 0
player.runSpeed = 0
isMoving = false
wait(1)
player.speed = 4
player.runSpeed = 6
end
if love.keyboard.isDown("backspace") then
player.x = 100
player.y = 100
isMoving = false
end
if isMoving == false and player.anim ~= player.animations.attack then
player.anim:gotoFrame(1)
end
player.anim:update(dt)
math.randomseed(os.time())
red = math.random(1, 255)
green = math.random(1, 255)
blue = math.random(1, 255)
while true do
print(red, green, blue)
wait(3)
end
end
function love.draw()
gameMap:draw(160, 65)
love.graphics.setBackgroundColor(0, 0, 0)
love.graphics.circle("fill", target.x, target.y, target.radius)
love.graphics.setColor(red, green, blue)
love.graphics.setFont(gameFont)
love.graphics.print(score, 0, 0)
if love.keyboard.isDown("lshift") then
player.anim:draw(player.runSpriteSheet, player.x, player.y, nil, 1.5, 1.5)
else
player.anim:draw(player.spriteSheet, player.x, player.y, nil, 1.5, 1.5)
end
end
function love.mousepressed( x, y, button, istouch, presses )
if button == 1 then
local mouseToTarget = distanceBetween(x, y, target.x, target.y)
if mouseToTarget < target.radius then
score = score + 1
target.x = math.random(target.radius, love.graphics.getWidth() - target.radius)
target.y = math.random(target.radius, love.graphics.getHeight() - target.radius)
end
end
end
function distanceBetween(x1, y1, x2, y2)
return math.sqrt( (x2 - x1)^2 + (y2 - y1)^2 )
end
To embed this program on your website, copy the following code and paste it into your website's HTML: