Main.lua:
Code: Select all
function love.load()
Object = require"classic"
require "player"
anim8 = require "anim8"
windfield = require("windfield-master/windfield")
world = windfield.newWorld()
world:setGravity(0, 100)
ground = world:newRectangleCollider(0, 550, 800, 50)
ground:setType('static')
world:addCollisionClass('Ground')
world:addCollisionClass('Player')
ground:setCollisionClass('Ground')
player = Player()
end
function love.update(dt)
world:update(dt)
player:update(dt)
end
function love.draw()
player:draw()
world:draw()
end
player.lua:
Code: Select all
Player = Object:extend()
function Player:new()
self.width = 50
self.height = 37
self.x = 200
self.y = 200
self.sx = 1
self.onGround = false
....
--physics
self.collider = world:newRectangleCollider(200, 200, 27, 30)
self.collider:setCollisionClass('Player')
end
function Player:update(dt)
if love.keyboard.isDown("left") then
self.collider:setX(self.collider:getX()-1)
self.sx = -1
self.anim = self.animations.run
end
if love.keyboard.isDown("right") then
self.collider:setX(self.collider:getX()+1)
self.sx = 1
self.anim = self.animations.run
end
if love.keyboard.isDown("up") and self.onGround==true then
self.collider:applyLinearImpulse(0, -100)
self.anim = self.animations.jump
print("ok")
end
if love.keyboard.isDown("down") then
end
if self.collider:enter('Ground') then
onGround = true
print("yes")
end
function Player:draw()
self.x = self.collider:getX()---37 / 2-6
self.y = self.collider:getY()--- 50 / 2+ 6
self.anim:draw(self.sprites, self.x, self.y, nil, self.sx, 1, self.width / 2, self.height / 2)
end
----
end