{"id":75962,"date":"2022-11-20T16:01:30","date_gmt":"2022-11-20T21:01:30","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/?p=75962"},"modified":"2022-11-20T16:02:37","modified_gmt":"2022-11-20T21:02:37","slug":"projects-11-landscape","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/2022\/11\/20\/projects-11-landscape\/","title":{"rendered":"project 11: landscape"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div class=\"wp-block-file\"><a class=\"p5_sketch_link\" data-width=\"480\" data-height=\"200\" id=\"wp-block-file--media-60a7e99f-6b33-45e2-9497-a1248f9a7054\" href=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-content\/uploads\/2022\/11\/sketch-74.js\">midnight stroll<\/a><iframe src=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-content\/plugins\/p5-embedder\/p5_iframe.html\" class=\"p5_exampleFrame\" width=\"480\" height=\"200\"><\/iframe><pre class=\"language-javascript\"><code class=\"p5_editor language-javascript\">\/\/ isis berymon section D\n\nvar buildings = [];\nvar stars = [];\nvar streetlights = [];\nvar ground = 160;\n\nfunction setup() {\n    createCanvas(480, 200);\n    frameRate(10);\n\n    \/\/initial scene\n    for(var i =0; i &lt; 10; i++){\n        var rx = random(width);\n        buildings[i] = makeBuilding(rx);\n    }\n    for(var i=0; i&lt; 30; i++){\n        var rx = random(width);\n        stars[i] = makeStar(rx);\n    }\n    for(var i = 0; i&lt;3; i++){\n        var rx = random(width);\n        streetlights[i] = makeLight(rx);\n    }\n}\n\nfunction draw() {\n    background(81, 61, 128); \/\/dark purple sky\n    showScene();\n    updateScene();\n    \/\/dark grey road\n    fill(84);\n    noStroke();\n    rect(0, ground, width, height-ground);\n}\n\nfunction showScene(){ \/\/draw and move all objects\n    \/\/show stars\n    for(var i =0; i&lt; stars.length; i++){\n        stars[i].move();\n        stars[i].draw();\n    }\n    \/\/show buildings\n    for(var i = 0; i &lt; buildings.length; i++){\n        buildings[i].move();\n        buildings[i].draw();\n    }\n    \/\/show streetlights\n    for(var i= 0; i &lt; streetlights.length; i++){\n        streetlights[i].move();\n        streetlights[i].draw();\n    }\n}\n\nfunction updateScene(){ \/\/remove and add to arrays\n    \/\/remove stars offscren\n    var keepstar = [];\n    for(var i = 0; i &lt; stars.length; i++){\n        if(stars[i].x + 3 &gt; 0){\n            keepstar.push(stars[i]);\n        }\n    }\n    stars = keepstar;\n    \/\/add new stars randomly\n    var nstr = .1;\n    if(random(1) &lt; nstr){\n        stars.push(makeStar(width+3));\n    }\n    \/\/remove buildings offscreen\n    var keepbldg = [];\n    for(var i = 0; i &lt; buildings.length; i++){\n        if(buildings[i].x + buildings[i].bw &gt; 0){\n            keepbldg.push(buildings[i]);\n        }\n    }\n    buildings = keepbldg;\n    \/\/add new buildings randomly\n    var nbldg = .03;\n    if(random(1) &lt; nbldg){\n        buildings.push(makeBuilding(width));\n    }\n    \/\/remove lights offscreen\n    var keeplight = [];\n    for(var i = 0; i &lt; streetlights.length; i++){\n        if(streetlights[i].x + 15 &gt; 0){\n            keeplight.push(streetlights[i]);\n        }\n    }\n    streetlights = keeplight;\n    \/\/add new lights randomly\n    var nlight = .005;\n    if(random(1) &lt; nlight){\n        streetlights.push(makeLight(width));\n    }\n}\n\nfunction makeStar(sx){ \/\/star object constructor\n    var star = {x: sx,\n                y: random(ground),\n                speed: -.7,\n                move: moveLeft,\n                draw: drawS}\n    return star;\n}\n\nfunction drawS(){ \/\/white star\n    stroke(255);\n    line(this.x, this.y-3, this.x, this.y+3);\n    line(this.x-3, this.y, this.x+3, this.y);\n}\n\nfunction makeBuilding(bx){ \/\/building object constructor\n    var bldg = {x: bx,\n                bw: round(random(50, 100)),\n                bh: round(random(30, 120)),\n                speed: -2,\n                move: moveLeft,\n                draw: drawB}\n    return bldg;\n}\n\nfunction drawB(){\n    fill(32, 27, 43); \/\/dark purple grey building\n    noStroke();\n    rect(this.x, ground-this.bh, this.bw, this.bh);\n    fill(95, 86, 115); \/\/light purple grey shading\n    rect(this.x, ground-this.bh, 6, this.bh);\n    rect(this.x, ground-this.bh, this.bw, 3);\n}\n\nfunction makeLight(lx){\n    var light = {x: lx,\n                    speed: -2,\n                    move: moveLeft,\n                    draw: drawL}\n    return light; \/\/light object constructor\n}\n\nfunction drawL(){\n    fill(112); \/\/mid grey\n    rect(this.x, 130, 5, 30);\n    \/\/flickering lights\n    if(random(1) &gt; .8){\n        fill(237, 196, 114); \/\/yellow\n    } else {\n        fill(122);\n    }\n    rect(this.x+5, 130, 10, 5); \/\/grey streetlight with flickering light\n}\n\nfunction moveLeft(){ \/\/move left every frame\n    this.x += this.speed;\n}<\/code><\/pre><\/div><\/body><\/html>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":703,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[115,58],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/75962"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/users\/703"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/comments?post=75962"}],"version-history":[{"count":2,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/75962\/revisions"}],"predecessor-version":[{"id":75965,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/75962\/revisions\/75965"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/media?parent=75962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/categories?post=75962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/tags?post=75962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}