Ground = {} class("Ground").extends(NobleSprite) function Ground:init(x, y, player) Ground.super.init(self, "assets/sprites/groundFin") -- Collision properties self:setZIndex(ZIndex.ground) self:setTag(3) self:setGroups(CollideGroups.wall) self:setCollideRect(0, 28, 800, 10) self:setCollidesWithGroups( { CollideGroups.player }) self:setSize(800, 32) -- Main properties Ground.moveSpeed = 2 Ground.player = player self:add() self:moveTo(x, y) end function Ground:setMoveSpeed(speed) Ground.moveSpeed = speed end function Ground:update() -- Stop ground if Ground.moveSpeed == 0 then return end -- Speedup when player is moving right if Ground.player.isMovingRight() == false then Ground.moveSpeed = 0.2 else Ground.moveSpeed = 1 end -- Reset position if self.x <= 0 then self:moveWithCollisions(400, self.y) end -- Move ground self:moveWithCollisions(self.x - Ground.moveSpeed, self.y) end