Can't get physics working

I’m trying to get a physics game but when I’m applyForce then it’s going below the floor

Boy = class()

function Boy:init()
    -- you can accept and set parameters here
    self.bodysprite = "Small World:Bush"
    self.body = physics.body(CIRCLE,50)
    self.body.x = WIDTH/2
    self.body.y = HEIGHT/2
end

function Boy:draw()
    sprite(self.bodysprite,self.body.x,self.body.y,50,50)
    -- Codea does not automatically call this method
end

function Boy:touched(touch)
    -- Codea does not automatically call this method
    if CurrentTouch.x > WIDTH/2 then
        self.body:applyForce(vec2(800,0))
    end
end

@Purple107 Not sure about all you’re trying to do, but I took your class and made some changes. Move your finger on the left side of the screen to move the bush to the right. Move your finger on the right side to move it left. Also, any finger movement moves it up. See how to use the touched function correctly instead of using CurrentTouch.

EDIT: Added EDGE to create a floor.

displayMode(FULLSCREEN)

function setup()
    e=physics.body(EDGE,vec2(0,0),vec2(WIDTH,0))
    b=Boy()
end

function draw()
    background(40, 40, 50)
    b:draw()
end

function touched(t)
    b:touched(t)
end

Boy = class()

function Boy:init()
    self.bodysprite = "Small World:Bush"
    self.body = physics.body(CIRCLE,50)
    self.body.x = WIDTH/2
    self.body.y = HEIGHT/2
end
    
function Boy:draw()
    sprite(self.bodysprite,self.body.x,self.body.y,50,50)
end
    
function Boy:touched(touch)
    if touch.state==MOVING then
        if touch.x < WIDTH/2 then
            self.body:applyForce(vec2(100,150))
        else
            self.body:applyForce(vec2(-100,150))
        end
    end
end

@dave1707 thank you again for the code your awesome.
:slight_smile: