Skip to content

Example program: Bat and ball (OO-style) #133

@maryrosecook

Description

@maryrosecook
ball: make-circle(50 50 20)
ball: set(ball "x-speed" 0)
ball: set(ball "y-speed" 0)

gravity: 0.5

forever {
  bat: make-rectangle(mouse-x mouse-y 100 10)

  if are-overlapping(bat ball) {
    bat-ball-difference: subtract(get(ball "x") get(bat "x"))
    ball: set(ball "x-speed" divide(bat-ball-difference 10))  
    ball: set(ball "y-speed" opposite(get(ball "y-speed")))
  } else {
    ball: set(ball "y-speed" add(gravity get(ball "y-speed")))
  }

  ball: set(ball "x" add(get(ball "x") get(ball "x-speed")))
  ball: set(ball "y" add(get(ball "y") get(ball "y-speed")))

  clear-screen()
  draw(ball)
  draw(bat)
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions