Code Sketch


DURVA
By: Mhalsakant School
Category: Art
// ==========================================
//        NORMAL MOVING ROBOT + BACKGROUND
// ==========================================

cleari()

// ================= BACKGROUND =================

// Sky
setBackground(cm.skyBlue)

// Ground
setPenColor(cm.green)
setPenThickness(100)

setPosition(-400, -190)
setHeading(0)
penDown()
forward(800)
penUp()

// Road
setPenColor(cm.darkGray)
setPenThickness(45)

setPosition(-400, -150)
setHeading(0)
penDown()
forward(800)
penUp()

// Road lines
setPenColor(cm.yellow)
setPenThickness(5)

setPosition(-400, -150)
setHeading(0)

for (i <- 0 until 9) {
    penDown()
    forward(60)
    penUp()
    forward(35)
}


// ================= SUN =================

setPenColor(cm.yellow)
setPenThickness(60)

setPosition(300, 180)
dot(60)


// ================= CLOUDS =================

setPenColor(cm.white)
setPenThickness(35)

// Cloud 1
setPosition(-280, 170)
dot(35)

setPosition(-245, 180)
dot(45)

setPosition(-205, 170)
dot(35)

// Cloud 2
setPosition(80, 140)
dot(30)

setPosition(115, 150)
dot(40)

setPosition(150, 140)
dot(30)


// ================= ROBOT =================

val robot = Picture {

    // BODY
    setPenColor(cm.darkGray)
    setPenThickness(3)

    setPosition(-60, -90)
    setHeading(0)

    penDown()
    forward(120)
    right(90)
    forward(100)
    right(90)
    forward(120)
    right(90)
    forward(100)
    right(90)
    penUp()


    // CHEST PANEL
    setPenColor(cm.gray)
    setPenThickness(3)

    setPosition(-35, -35)
    setHeading(0)

    penDown()
    forward(70)
    right(90)
    forward(35)
    right(90)
    forward(70)
    right(90)
    forward(35)
    right(90)
    penUp()


    // CHEST LINE
    setPenColor(cm.darkGray)
    setPenThickness(4)

    setPosition(-20, -45)
    setHeading(0)
    penDown()
    forward(40)
    penUp()


    // NECK
    setPenColor(cm.darkGray)
    setPenThickness(18)

    setPosition(-20, 10)
    setHeading(0)
    penDown()
    forward(40)
    penUp()


    // HEAD
    setPenColor(cm.darkGray)
    setPenThickness(5)

    setPosition(-90, 30)
    setHeading(0)

    penDown()
    forward(180)
    right(90)
    forward(110)
    right(90)
    forward(180)
    right(90)
    forward(110)
    right(90)
    penUp()


    // FACE SCREEN
    setPenColor(cm.black)
    setPenThickness(8)

    setPosition(-70, 50)
    setHeading(0)

    penDown()
    forward(140)
    right(90)
    forward(70)
    right(90)
    forward(140)
    right(90)
    forward(70)
    right(90)
    penUp()


    // EYES
    setPenColor(cm.cyan)
    setPenThickness(20)

    setPosition(-35, 20)
    dot(20)

    setPosition(35, 20)
    dot(20)


    // ANTENNA
    setPenColor(cm.darkGray)
    setPenThickness(4)

    setPosition(0, 140)
    setHeading(90)

    penDown()
    forward(35)
    penUp()

    setPenColor(cm.gray)
    setPenThickness(15)

    setPosition(0, 175)
    dot(15)


    // LEFT ARM
    setPenColor(cm.darkGray)
    setPenThickness(20)

    setPosition(-65, -15)
    setHeading(250)

    penDown()
    forward(60)
    penUp()

    // LEFT HAND
    setPenColor(cm.gray)
    setPenThickness(22)

    setPosition(-85, -70)
    dot(20)


    // RIGHT ARM
    setPenColor(cm.darkGray)
    setPenThickness(20)

    setPosition(65, -15)
    setHeading(290)

    penDown()
    forward(60)
    penUp()

    // RIGHT HAND
    setPenColor(cm.gray)
    setPenThickness(22)

    setPosition(85, -70)
    dot(20)


    // LEFT LEG
    setPenColor(cm.darkGray)
    setPenThickness(25)

    setPosition(-35, -90)
    setHeading(270)

    penDown()
    forward(55)
    penUp()


    // RIGHT LEG
    setPosition(35, -90)
    setHeading(270)

    penDown()
    forward(55)
    penUp()


    // LEFT FOOT
    setPenColor(cm.gray)
    setPenThickness(25)

    setPosition(-50, -145)
    setHeading(0)

    penDown()
    forward(40)
    penUp()


    // RIGHT FOOT
    setPosition(10, -145)
    setHeading(0)

    penDown()
    forward(40)
    penUp()
}


// ================= ROBOT MOVEMENT =================

draw(robot)

var direction = 2

animate {

    robot.translate(direction, 0)

    if (robot.position.x > 220) {
        direction = -2
    }

    if (robot.position.x < -220) {
        direction = 2
    }
}