Code Sketch
CrossLine
Category: Art
toggleFullScreenCanvas()
def pic = Picture {
repeat(10) {
forward(90)
right()
}
}
def hurdle = Picture {
repeat(4) {
forward(100)
right()
}
}
def line = Picture {
repeat(90) {
forward(-10)
}
}
def posline = Picture {
repeat(90) {
forward(10)
}
}
def finishLine = Picture {
repeat(4) {
forward(500)
}
}
cleari()
setBackground(black)
setPenColor(blue)
val line1 = trans(-20, -35) * scale(2.5) -> line
val line2 = trans(-150, 190) * scale(2.5) -> line
val line3 = trans(10, 180) * scale(2.5) -> posline
val line4 = trans(450, 200) * scale(2.5) -> posline
val line5 = trans(-450, -200) * scale(0.3) -> posline
val line6 = trans(259, 42) * scale(0.3) -> posline
val line7 = trans(130, 80) * scale(0.1) -> posline
val line8 = trans(230, 0) * scale(0.1) -> posline
val line9 = trans(330, -190) * scale(0.1) -> posline
val line10 = trans(530, 100) * scale(0.1) -> posline
val line11 = trans(-358, 132) * scale(0.1) -> posline
val line12 = trans(-100, 80) * scale(0.1) -> posline
val line13 = trans(-580, -120) * scale(0.2) -> posline
val line14 = trans(464, -300) * scale(0.2) -> posline
val fline = trans(680, -670) * scale(3) * penColor(green) -> finishLine
var cb = canvasBounds
val ymax = cb.y.abs
val xmax = cb.x.abs
val p = trans(-550, 100) * fillColor(brown) * scale(0.5) -> pic
val h = trans(400, 100) * fillColor(white) -> hurdle
val h1 = trans(100, -400) * fillColor(white) -> hurdle
val h2 = trans(-33, 31) * fillColor(white) -> hurdle
val h3 = trans(-261, -34) * fillColor(white) -> hurdle
val h4 = trans(-284, 169) * fillColor(white) -> hurdle
val h5 = trans(-570,-108) *fillColor(white) ->hurdle
val h6 = trans(-500,100) *fillColor(white) ->hurdle
val h7 = trans(464,-100) *fillColor(white) ->hurdle
draw(p)
draw(h, h1, h2, h3, h4,h5,h6,h7)
draw(line1, line2, line3, line4, line5, line6, line7, line8, line9, line10, line11, line12, line13, line14)
draw(fline)
val lis = List(h, h1, h2, h3, h4, h5, h6, h7, line1, line2, line3, line4, line5, line6, line7, line8, line9, line10, line11, line12, line13, line14)
val lis1 = List(fline)
p.react { self =>
if (p.collision(lis).isDefined) {
stopAnimation()
write("LOSER,YOU TOUCH THE HURDLE")
}
if (p.collision(lis1).isDefined) {
stopAnimation()
write("Winner")
}
}
val speed = 20
p.react { self =>
if (isKeyPressed(Kc.VK_RIGHT)) {
self.translate(speed, 0)
}
if (isKeyPressed(Kc.VK_LEFT)) {
self.translate(-speed, 0)
}
if (isKeyPressed(Kc.VK_UP)) {
self.translate(0, speed)
}
if (isKeyPressed(Kc.VK_DOWN)) {
self.translate(0, -speed)
}
}
p.react { self =>
if (self.position.x.abs > cb.width / 2 || self.position.y.abs > cb.height / 2) {
stopAnimation()
write("Sorry you are not allowed to leave the canvas or just touch it")
}
}
activateCanvas()