-
Notifications
You must be signed in to change notification settings - Fork 3
/
bundle.js.map
1 lines (1 loc) · 55.6 KB
/
bundle.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap 966f1f544bd4a44e67bc","webpack:///./lib/objects/thruster.js","webpack:///./lib/game.js","webpack:///./lib/game_view.js","webpack:///./lib/ball.js","webpack:///./lib/left_flipper.js","webpack:///./lib/objects/bumper1.js","webpack:///./lib/objects/bumper2.js","webpack:///./lib/objects/bumper3.js","webpack:///./lib/objects/left_bump.js","webpack:///./lib/objects/left_triangle.js","webpack:///./lib/objects/right_bump.js","webpack:///./lib/objects/right_triangle.js","webpack:///./lib/pinball_app.js","webpack:///./lib/right_flipper.js"],"names":["upPressed","downPressed","tposX","tposY","velY","tposYMax","document","addEventListener","keyDownHandler","keyUpHandler","e","keyCode","Thruster","height","HEIGHT","width","WIDTH","color","COLOR","ctx","module","exports","require","RightTriangle","LeftTriangle","Ball","RightFlipper","LeftFlipper","BumperOne","BumperTwo","BumperThree","LeftBump","RightBump","sPressed","SpaceHandler","SpaceHandlerUp","Game","thruster","ball","rightTriangle","leftTriangle","rightFlipper","leftFlipper","bumperOne","bumperTwo","bumperThree","leftBump","rightBump","score","highscore","clearRect","DIM_X","DIM_Y","draw","getElementById","innerHTML","ballPosX","ballPosY","ballVelX","ballVelY","delta","thrust","firstReflect","checkCollisions","flippers","i","length","isCollidedWithLine","hitbackFlipper","radius","collidewithTopWall","collidewithRightWall","collidewithLeftWall","bumpers","j","isCollidedWithBumpers","hitbackBumper","bumps","k","hitbackBump","isCollidedwithSideBump","collidewithSideBump","triangles","l","hitbackTriangle","concat","BG_COLOR","GameView","game","lastTime","requestAnimationFrame","animate","bind","time","timeDiff","step","muteHandler","muteAudio","audio","bell","thud","flip","muted","gravity","elasticity","friction","RADIUS","bounced","bouncedTwo","img","pat","createPattern","beginPath","arc","Math","PI","fillStyle","fill","closePath","speed","sqrt","dnorm","x","y","random","obj","distX","abs","mid","distY","halfwidth","halfheight","changeBounce","dx","dy","dd","vnorm","refl","playThud","currentTime","play","distance","pow","setTimeout","slope","inverseSlope","iPos","iPosMag","iPosUnit","cllsnpt","playBumpSound","volume","mid2","halfwidthTwo","halfheightTwo","NORMAL_FRAME_TIME_DELTA","lPressed","posY","leftFlipperHandler","leftFlipperHandlerUp","pos1","moveTo","lineTo","lineWidth","strokeStyle","stroke","pos2","vec","flipLeftUp","flipLeftDown","playFlip","merc","mars","nep","earth","canvasEl","getContext","start","rPressed","rightFlipperHandler","rightFlipperHandlerUp","flipRightUp","flipRightDown"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 966f1f544bd4a44e67bc","let upPressed = false;\nlet downPressed = false;\nlet tposX = 440;\nlet tposY = 400;\nlet velY = 0;\nlet tposYMax = 0;\n\ndocument.addEventListener(\"keydown\", keyDownHandler, false);\ndocument.addEventListener(\"keyup\", keyUpHandler, false);\n\nfunction keyDownHandler(e) {\n if(e.keyCode === 38) {\n upPressed = true;\n }\n else if(e.keyCode === 40) {\n downPressed = true;\n }\n}\nfunction keyUpHandler(e) {\n if(e.keyCode === 38) {\n upPressed = false;\n }\n else if(e.keyCode === 40) {\n downPressed = false;\n }\n}\n\nclass Thruster {\n constructor() {\n this.height = Thruster.HEIGHT;\n this.width = Thruster.WIDTH;\n this.color = Thruster.COLOR;\n this.tposY = tposY;\n this.tposX = tposX;\n this.tposYMax = 0;\n }\n\n draw(ctx){\n if (downPressed && this.tposY < 480) {\n this.tposY += 1;\n } else if (downPressed === false && this.tposY > 400) {\n if (this.tposY > this.tposYMax) {\n this.tposYMax = this.tposY;\n }\n if (this.tposYMax % 16 === 0) {\n this.tposY -= 17;\n } else {\n this.tposY -= 16;\n }\n }\n if (this.tposY === 400) {\n this.tposYMax = 0;\n }\n }\n}\n\n\nThruster.HEIGHT = 60;\nThruster.WIDTH = 30;\nThruster.COLOR = 'blue';\n\nmodule.exports = Thruster;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/thruster.js","const Thruster = require('./objects/thruster');\nconst RightTriangle = require('./objects/right_triangle');\nconst LeftTriangle = require('./objects/left_triangle');\nconst Ball = require('./ball');\nconst RightFlipper = require('./right_flipper');\nconst LeftFlipper = require('./left_flipper');\nconst BumperOne = require('./objects/bumper1');\nconst BumperTwo = require('./objects/bumper2');\nconst BumperThree = require('./objects/bumper3');\nconst LeftBump = require('./objects/left_bump');\nconst RightBump = require('./objects/right_bump');\n\nlet sPressed = false;\n\ndocument.addEventListener(\"keydown\", SpaceHandler, false);\ndocument.addEventListener(\"keyup\", SpaceHandlerUp, false);\n\nfunction SpaceHandler(e) {\n if(e.keyCode === 32) {\n sPressed = true;\n }\n}\nfunction SpaceHandlerUp(e) {\n if(e.keyCode === 32) {\n sPressed = false;\n }\n}\n\nclass Game {\n constructor() {\n this.thruster = new Thruster();\n this.ball = new Ball();\n this.rightTriangle = new RightTriangle();\n this.leftTriangle = new LeftTriangle();\n this.rightFlipper = new RightFlipper();\n this.leftFlipper = new LeftFlipper();\n this.bumperOne = new BumperOne();\n this.bumperTwo = new BumperTwo();\n this.bumperThree = new BumperThree();\n this.leftBump = new LeftBump();\n this.rightBump = new RightBump();\n this.score = 0;\n this.highscore = 0;\n }\n\n draw(ctx){\n ctx.clearRect(0, 0, Game.DIM_X, Game.DIM_Y);\n\n this.thruster.draw(ctx);\n this.ball.draw(ctx);\n this.rightTriangle.draw(ctx);\n this.leftTriangle.draw(ctx);\n this.rightFlipper.draw(ctx);\n this.leftFlipper.draw(ctx);\n this.bumperOne.draw(ctx);\n this.bumperTwo.draw(ctx);\n this.bumperThree.draw(ctx);\n this.leftBump.draw(ctx);\n this.rightBump.draw(ctx);\n\n if (this.score > this.highscore) {\n this.highscore = this.score;\n }\n\n document.getElementById(\"test\").innerHTML = this.score;\n document.getElementById(\"high\").innerHTML = this.highscore;\n\n if (sPressed === true) {\n this.ball.ballPosX = 445;\n this.ball.ballPosY = 384;\n this.ball.ballVelX = 0;\n this.ball.ballVelY= 0;\n this.score = 0;\n document.getElementById(\"test\").innerHTML = this.score;\n }\n }\n\n step(delta){\n // Thruster Ball Starting Movement\n if (this.ball.ballPosX === 445 &&\n this.ball.ballPosY + 15 > this.thruster.tposY) {\n this.ball.thrust(delta);\n } else if (this.ball.ballPosX === 445 && this.ball.ballPosY < 80) {\n this.ball.firstReflect(delta);\n }\n\n this.checkCollisions();\n }\n\n checkCollisions(){\n // Flipper Collision\n const flippers = this.flippers();\n for (var i = 0; i < flippers.length; i++) {\n if (this.ball.isCollidedWithLine(flippers[i])) {\n this.ball.hitbackFlipper(flippers[i]);\n }\n }\n\n // Wall Collision\n if (this.ball.ballPosY <= (0 + this.ball.radius)) {\n this.ball.collidewithTopWall();\n } else if (this.ball.ballPosX >= (Game.DIM_X - this.ball.radius)) {\n this.ball.collidewithRightWall();\n } else if (this.ball.ballPosX <= this.ball.radius) {\n this.ball.collidewithLeftWall();\n }\n\n // BumperCollision\n const bumpers = this.bumpers();\n for (var j = 0; j < bumpers.length; j++) {\n if (this.ball.isCollidedWithBumpers(bumpers[j])) {\n this.ball.hitbackBumper(bumpers[j]);\n if (j===2) {\n this.score += 7;\n } else {\n this.score += 5;\n }\n }\n }\n\n const bumps = this.bumps();\n for (var k = 0; k < bumps.length; k++) {\n if (this.ball.isCollidedWithLine(bumps[k])) {\n this.ball.hitbackBump(bumps[k]);\n this.score += 3;\n } else if (this.ball.isCollidedwithSideBump(bumps[k])) {\n this.ball.collidewithSideBump();\n this.score += 3;\n }\n }\n\n const triangles = this.triangles();\n for (var l = 0; l < triangles.length; l++) {\n if (this.ball.isCollidedWithLine(triangles[l])) {\n this.ball.hitbackTriangle(triangles[l]);\n }\n }\n\n }\n\n flippers() {\n return [].concat(this.rightFlipper, this.leftFlipper);\n }\n\n bumpers() {\n return [].concat(this.bumperOne, this.bumperTwo, this.bumperThree);\n }\n\n bumps(){\n return [].concat(this.leftBump, this.rightBump);\n }\n\n triangles(){\n return [].concat(this.leftTriangle, this.rightTriangle);\n }\n\n}\n\nmodule.exports = Game;\n\nGame.DIM_X = 470;\nGame.DIM_Y = 570;\nGame.BG_COLOR = 'white';\n\n\n\n// WEBPACK FOOTER //\n// ./lib/game.js","class GameView {\n constructor(game, ctx) {\n this.game = game;\n this.ctx = ctx;\n }\n\n start(){\n this.lastTime = 0;\n requestAnimationFrame(this.animate.bind(this));\n // setInterval(this.animate(60), 60);\n }\n\n animate(time){\n const timeDiff = time - this.lastTime;\n this.game.step(timeDiff);\n this.game.draw(this.ctx);\n this.lastTime = time;\n\n requestAnimationFrame(this.animate.bind(this));\n }\n\n\n\n}\n\ndocument.addEventListener(\"keydown\", muteHandler, false);\n\nfunction muteHandler(e) {\n if(e.keyCode === 77) {\n muteAudio();\n }\n}\n\nfunction muteAudio() {\nlet audio = document.getElementById('audio');\nlet bell = document.getElementById('bell');\nlet thud = document.getElementById('thud');\nlet flip = document.getElementById('flip');\n\nif (audio.muted === false) {\n document.getElementById('audio').muted = true;\n document.getElementById('bell').muted = true;\n document.getElementById('thud').muted = true;\n document.getElementById('flip').muted = true;\n}\nelse {\n document.getElementById('audio').muted = false;\n document.getElementById('bell').muted = false;\n document.getElementById('thud').muted = false;\n document.getElementById('flip').muted = false;\n }\n}\n\n\n\nmodule.exports = GameView;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/game_view.js","var Thruster = require('./objects/thruster');\n\nlet ballPosX = 445;\nlet ballPosY = 384;\nlet gravity = 0.2;\nlet elasticity = 0.8;\nlet friction = 0.1;\n\n\n\nclass Ball {\n constructor(ctx) {\n this.radius = Ball.RADIUS;\n this.color = Ball.COLOR;\n this.ballPosX = ballPosX;\n this.ballPosY = ballPosY;\n this.ballVelX = 0;\n this.ballVelY = 0;\n this.elasticity = elasticity;\n this.bounced = false;\n this.bouncedTwo = false;\n }\n\n draw(ctx) {\n let img = document.getElementById('moon');\n let pat = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.arc(this.ballPosX, this.ballPosY, this.radius, 0, Math.PI*2, false);\n ctx.fillStyle = pat;\n ctx.fill();\n ctx.closePath();\n if (this.ballVelY !== 0 && this.ballVelX !== 0) {\n this.ballVelY += gravity;\n }\n this.speed =\n Math.sqrt(this.ballVelX*this.ballVelX + this.ballVelY*this.ballVelY);\n this.dnorm = {x: this.ballVelX/this.speed, y: this.ballVelY/this.speed};\n this.ballPosY += this.ballVelY;\n this.ballPosX += this.ballVelX;\n }\n\n thrust(delta){\n this.ballVelY = -12;\n }\n\n firstReflect(delta){\n this.ballVelX = Math.random() * (-2.53 + 2.6) - 2.6;\n this.ballVelY = Math.random() * (3.4 - 3.1) + 3.1;\n }\n\n\n isCollidedWithLine(obj){\n // X and Y distance between the ball and the bump\n let distX = Math.abs(this.ballPosX - (obj.mid.x));\n let distY = Math.abs(this.ballPosY - (obj.mid.y));\n\n // Distance too far\n if (distX > (obj.halfwidth + this.radius)) { return false; }\n if (distY > (obj.halfheight + this.radius)) { return false; }\n\n // Distance definitely colliding\n if ((distX <= obj.halfwidth) && (this.bouncedTwo === false)) {\n this.changeBounce();\n return true;\n }\n\n if ((distX <= obj.halfheight) && (this.bouncedTwo === false)) {\n this.changeBounce();\n return true;\n }\n\n // Checks corners using Pythagorean Theorem\n let dx = distX - obj.halfwidth;\n let dy = distY - obj.halfheight;\n if ((dx*dx)+(dy*dy)<=(this.radius*this.radius) && (this.bouncedTwo === false)) {\n this.changeBounce();\n return true;\n } else {\n return false;\n }\n }\n\n hitbackFlipper(obj){\n let dd = (this.dnorm.x*obj.vnorm.x + this.dnorm.y*obj.vnorm.y)*2;\n this.refl = {x: (obj.vnorm.x * dd - this.dnorm.x),\n y: (obj.vnorm.y * dd - this.dnorm.y) };\n let length = Math.sqrt(this.refl.x*this.refl.x + this.refl.y*this.refl.y);\n this.ballPosY -= 4;\n this.ballVelX = (this.refl.x/length) * this.speed;\n this.ballVelY = ((this.refl.y/length) * this.speed * 1.07);\n this.playThud();\n }\n\n playThud(){\n let x = document.getElementById('thud');\n x.currentTime = 0;\n x.play();\n }\n\n\n collidewithTopWall(){\n this.ballPosY = this.radius;\n this.ballVelY = -this.ballVelY;\n this.ballVelY *= this.elasticity;\n }\n\n collidewithRightWall(){\n this.ballPosX = 470 - this.radius;\n this.ballVelX = - this.ballVelX;\n this.ballVelX *= this.elasticity;\n }\n\n collidewithLeftWall(){\n this.ballPosX = this.radius;\n this.ballVelX = - this.ballVelX;\n this.ballVelX *= this.elasticity;\n }\n\n isCollidedWithBumpers(obj){\n\n let distance = Math.sqrt(\n Math.pow(this.ballPosX - obj.ballPosX, 2) +\n Math.pow(this.ballPosY - obj.ballPosY, 2));\n if ((distance < (this.radius + obj.radius)) && (this.bounced === false)) {\n this.bounced = true;\n obj.radius += 1;\n setTimeout(() => {\n this.bounced = false;\n obj.radius -= 1;\n }, 200 );\n return true;\n } else {\n return false;\n }\n }\n\n\n hitbackBumper(obj){\n let slope = ((this.ballPosY - obj.ballPosY)/(this.ballPosX - this.ballPosY));\n let inverseSlope = -1/(slope);\n let iPos = {x: inverseSlope, y: 1};\n let iPosMag = Math.sqrt(iPos.x*iPos.x + iPos.y*iPos.y);\n let iPosUnit = {x: iPos.x/iPosMag, y: iPos.y/iPosMag};\n let dd = (this.dnorm.x*iPosUnit.x + this.dnorm.y*iPosUnit.y)*2;\n this.refl = {x: (iPosUnit.x * dd - this.dnorm.x),\n y: (iPosUnit.y * dd - this.dnorm.y) };\n let length = Math.sqrt(this.refl.x*this.refl.x + this.refl.y*this.refl.y);\n\n // Collision Point between ball and bumper\n let cllsnpt = {x: ((this.ballPosX*obj.radius + obj.ballPosX*this.radius)/50),\n y: ((this.ballPosY*obj.radius + obj.ballPosY*this.radius)/50)};\n\n // // Collision Angle between ball and bumper\n // let angle = Math.atan((cllsnpt.y - this.ballPosY)/(cllsnpt.x - this.ballPosX));\n // if (angle < 0) {\n // angle = 2*Math.PI + angle;\n // }\n //\n // // New Position of ball\n // if (this.ballPosX < obj.ballPosX) {\n // this.ballPosX = this.ballPosX - Math.abs( (this.radius + obj.radius)*Math.cos(angle));\n // if (this.ballPosY < obj.ballPosY) {\n // this.ballPosY = this.ballPosY - Math.abs( (this.radius + obj.radius)*Math.sin(angle));\n // } else {\n // this.ballPosY = this.ballPosY + Math.abs( (this.radius + obj.radius)*Math.sin(angle));\n // }\n // } else {\n // this.ballPosX = this.ballPosX + Math.abs( (this.radius + obj.radius)*Math.cos(angle));\n // if (this.ballPosY < obj.ballPosY) {\n // this.ballPosY = this.ballPosY - Math.abs( (this.radius + obj.radius)*Math.sin(angle));\n // } else {\n // this.ballPosY = this.ballPosY + Math.abs( (this.radius + obj.radius)*Math.sin(angle));\n // }\n // }\n\n this.ballVelX = (this.refl.x/length) * this.speed * 1.01;\n this.ballVelY = (this.refl.y/length) * this.speed * 1.02;\n this.playBumpSound();\n }\n\n playBumpSound(){\n let x = document.getElementById('bell');\n x.currentTime = 0;\n x.volume = 0.3;\n x.play();\n }\n\n hitbackBump(obj){\n let dd = (this.dnorm.x*obj.vnorm.x + this.dnorm.y*obj.vnorm.y)*2;\n this.refl = {x: (obj.vnorm.x * dd - this.dnorm.x),\n y: (obj.vnorm.y * dd - this.dnorm.y) };\n let length = Math.sqrt(this.refl.x*this.refl.x + this.refl.y*this.refl.y);\n this.ballPosY -= 2;\n this.ballVelX = (this.refl.x/length) * this.speed;\n this.ballVelY = ((this.refl.y/length) * this.speed);\n this.playBumpSound();\n }\n\n hitbackTriangle(obj){\n let dd = (this.dnorm.x*obj.vnorm.x + this.dnorm.y*obj.vnorm.y)*2;\n this.refl = {x: (obj.vnorm.x * dd - this.dnorm.x),\n y: (obj.vnorm.y * dd - this.dnorm.y) };\n let length = Math.sqrt(this.refl.x*this.refl.x + this.refl.y*this.refl.y);\n this.ballPosY -= 12;\n this.ballVelX = (this.refl.x/length) * this.speed;\n this.ballVelY = (this.refl.y/length) * this.speed;\n }\n\n isCollidedwithSideBump(obj){\n // X and Y distance between the ball and the bump\n let distX = Math.abs(this.ballPosX - (obj.mid2.x));\n let distY = Math.abs(this.ballPosY - (obj.mid2.y));\n\n // Distance too far\n if (distX > (obj.halfwidthTwo + this.radius)) { return false; }\n if (distY > (obj.halfheightTwo + this.radius)) { return false; }\n\n // Distance definitely colliding\n if ((distX <= obj.halfwidthTwo) && (this.bouncedTwo === false)) {\n this.changeBounce();\n return true;\n }\n if ((distY <= obj.halfheightTwo) && (this.bouncedTwo === false)){\n this.changeBounce();\n return true;\n }\n\n // Checks corners using Pythagorean Theorem\n let dx = distX - obj.halfwidthTwo;\n let dy = distY - obj.halfheightTwo;\n if ((dx*dx)+(dy*dy)<=(this.radius*this.radius) && (this.bouncedTwo === false)) {\n this.changeBounce();\n return true;\n } else {\n return false;\n }\n }\n\n changeBounce(){\n this.bouncedTwo = true;\n setTimeout(() => {\n this.bouncedTwo = false;\n }, 200 );\n }\n\n collidewithSideBump(){\n this.ballVelX = - this.ballVelX;\n this.ballVelX *= this.elasticity;\n }\n\n}\n\n\nBall.RADIUS = 15;\nBall.COLOR = 'blue';\nconst NORMAL_FRAME_TIME_DELTA = 1000/60;\n\nmodule.exports = Ball;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ball.js","let lPressed = false;\nlet posY = 520;\n\ndocument.addEventListener(\"keydown\", leftFlipperHandler, false);\ndocument.addEventListener(\"keyup\", leftFlipperHandlerUp, false);\n\nfunction leftFlipperHandler(e) {\n if(e.keyCode === 37) {\n lPressed = true;\n }\n}\nfunction leftFlipperHandlerUp(e) {\n if(e.keyCode === 37) {\n lPressed = false;\n }\n}\n\n\nclass LeftFlipper {\n constructor() {\n this.pos1 = { x: 125, y: 480 };\n this.halfwidth = 45;\n this.halfheight = 10;\n this.posY = posY;\n this.mid = {x: 170, y: (this.posY+480)/2};\n }\n\n\n draw(ctx){\n ctx.beginPath();\n ctx.moveTo(125, 480);\n ctx.lineTo(215, this.posY);\n ctx.lineWidth = 20;\n ctx.strokeStyle = '#D74F43';\n ctx.stroke();\n ctx.closePath();\n this.posY = this.posY;\n this.pos2 = { x: 215, y: this.posY };\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n if (lPressed && this.posY > 440) {\n this.flipLeftUp(ctx);\n }\n if (lPressed === false && this.posY < 520) {\n this.flipLeftDown(ctx);\n }\n this.mid = {x: 170, y: (this.posY+480)/2};\n }\n\n flipLeftUp(ctx){\n this.posY -= 15;\n this.mid = {x: 170, y: (this.posY+480)/2};\n this.playFlip();\n }\n\n playFlip(){\n let x = document.getElementById('flip');\n x.currentTime = 0;\n x.play();\n }\n\n flipLeftDown(ctx){\n this.posY += 15;\n this.mid = {x: 170, y: (this.posY+480)/2};\n }\n}\n\nmodule.exports = LeftFlipper;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/left_flipper.js","class BumperOne {\n constructor() {\n this.radius = BumperOne.RADIUS;\n this.color = BumperOne.COLOR;\n this.ballPosX = 155;\n this.ballPosY = 220;\n }\n\n draw(ctx) {\n let img = document.getElementById('mercury');\n let merc = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.arc(this.ballPosX, this.ballPosY, this.radius, 0, Math.PI*2, false);\n ctx.fillStyle = merc;\n ctx.fill();\n ctx.closePath();\n }\n}\n\nBumperOne.RADIUS = 35;\nBumperOne.COLOR = 'lightgreen';\n\nmodule.exports = BumperOne;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/bumper1.js","class BumperTwo {\n constructor() {\n this.radius = BumperTwo.RADIUS;\n this.color = BumperTwo.COLOR;\n this.ballPosX = 325;\n this.ballPosY = 220;\n }\n\n draw(ctx) {\n let img = document.getElementById('mars');\n let mars = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.arc(this.ballPosX, this.ballPosY, this.radius, 0, Math.PI*2, false);\n ctx.fillStyle = mars;\n ctx.fill();\n ctx.closePath();\n }\n}\n\nBumperTwo.RADIUS = 35;\nBumperTwo.COLOR = 'lightgreen';\n\nmodule.exports = BumperTwo;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/bumper2.js","class BumperThree {\n constructor() {\n this.radius = BumperThree.RADIUS;\n this.color = BumperThree.COLOR;\n this.ballPosX = 240;\n this.ballPosY = 120;\n }\n\n draw(ctx) {\n let img = document.getElementById('neptune');\n let nep = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.arc(this.ballPosX, this.ballPosY, this.radius, 0, Math.PI*2, false);\n ctx.fillStyle = nep;\n ctx.fill();\n ctx.closePath();\n }\n}\n\nBumperThree.RADIUS = 35;\nBumperThree.COLOR = 'lightgreen';\n\nmodule.exports = BumperThree;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/bumper3.js","class LeftBump {\n constructor() {\n this.height = 80;\n this.pos1 = {x: 50, y: 370};\n this.pos2 = {x: 120, y: 450};\n this.mid = {x: 85, y: 410};\n this.mid2 = {x: 50, y: 410};\n this.halfwidth = 35;\n this.halfheight = 0.5;\n this.halfwidthTwo = 0.5;\n this.halfheightTwo = 40;\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n }\n\n draw(ctx){\n let img = document.getElementById('earth');\n let earth = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.fillStyle = earth;\n ctx.moveTo(50, 450);\n ctx.lineTo(120, 450);\n ctx.lineTo(50, 370);\n ctx.fill();\n }\n}\n\n\n\nmodule.exports = LeftBump;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/left_bump.js","class LeftTriangle {\n constructor() {\n this.height = 80;\n this.pos1 = {x: 60, y: 0};\n this.pos2 = {x: 0, y: 80};\n this.mid = {x: 30, y: 40};\n this.halfwidth = 40;\n this.halfheight = 0.5;\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n }\n\n draw(ctx){\n ctx.beginPath();\n ctx.fillStyle = '#D74F43';\n ctx.moveTo(0, 0);\n ctx.lineTo(60, 0);\n ctx.lineTo(0, 80);\n ctx.fill();\n ctx.beginPath();\n ctx.fillStyle = '#D74F43';\n ctx.moveTo(0, 570);\n ctx.lineTo(0, 490);\n ctx.lineTo(60, 570);\n ctx.fill();\n }\n}\n\nmodule.exports = LeftTriangle;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/left_triangle.js","class LeftBump {\n constructor() {\n this.height = 80;\n this.pos1 = {x: 420, y: 370};\n this.pos2 = {x: 350, y: 450};\n this.mid = {x: 385, y: 410};\n this.mid2 = {x: 420, y: 410};\n this.halfwidth = 35;\n this.halfheight = 0.5;\n this.halfwidthTwo = 0.5;\n this.halfheightTwo = 40;\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n }\n\n draw(ctx){\n let img = document.getElementById('earth');\n let earth = ctx.createPattern(img, 'repeat');\n ctx.beginPath();\n ctx.fillStyle = earth;\n ctx.moveTo(350, 450);\n ctx.lineTo(420, 450);\n ctx.lineTo(420, 370);\n ctx.fill();\n }\n}\n\nmodule.exports = LeftBump;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/right_bump.js","class RightTriangle {\n constructor() {\n this.height = 80;\n this.pos1 = {x: 410, y: 0};\n this.pos2 = {x: 470, y: 80};\n this.mid = {x: 440, y: 40};\n this.halfwidth = 40;\n this.halfheight = 0.5;\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n }\n\n draw(ctx){\n ctx.beginPath();\n ctx.fillStyle = '#D74F43';\n ctx.moveTo(410, 0);\n ctx.lineTo(470, 0);\n ctx.lineTo(470, 80);\n ctx.fill();\n ctx.beginPath();\n ctx.fillStyle = '#D74F43';\n ctx.moveTo(470, 570);\n ctx.lineTo(470, 490);\n ctx.lineTo(410, 570);\n ctx.fill();\n }\n}\n\nmodule.exports = RightTriangle;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/objects/right_triangle.js","const Game = require('./game');\nconst GameView = require('./game_view');\n\ndocument.addEventListener('DOMContentLoaded', function(){\n const canvasEl = document.getElementById('myCanvas');\n canvasEl.width = Game.DIM_X;\n canvasEl.height = Game.DIM_Y;\n const ctx = canvasEl.getContext('2d');\n\n const game = new Game();\n new GameView(game, ctx).start();\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/pinball_app.js","let rPressed = false;\nlet posY = 520;\n\ndocument.addEventListener(\"keydown\", rightFlipperHandler, false);\ndocument.addEventListener(\"keyup\", rightFlipperHandlerUp, false);\n\nfunction rightFlipperHandler(e) {\n if(e.keyCode === 39) {\n rPressed = true;\n }\n}\nfunction rightFlipperHandlerUp(e) {\n if(e.keyCode === 39) {\n rPressed = false;\n }\n}\n\n\nclass RightFlipper {\n constructor() {\n this.halfwidth = 45;\n this.halfheight = 10;\n this.pos1 = { x: 350, y: 480 };\n this.posY = posY;\n this.mid = {x: 305, y: (this.posY+480)/2};\n }\n\n draw(ctx){\n ctx.beginPath();\n ctx.moveTo(350, 480);\n ctx.lineTo(260, this.posY);\n ctx.lineWidth = 20;\n ctx.strokeStyle = '#D74F43';\n ctx.stroke();\n ctx.closePath();\n this.posY = this.posY;\n this.pos2 = { x: 260, y: this.posY };\n this.vec = { x: this.pos2.x - this.pos1.x, y: this.pos2.y - this.pos1.y};\n this.length = Math.sqrt(this.vec.x * this.vec.x + this.vec.y * this.vec.y);\n this.vnorm = { x: this.vec.x/this.length, y: this.vec.y/this.length};\n if (rPressed && this.posY > 440) {\n this.flipRightUp(ctx);\n }\n if (rPressed === false && this.posY < 520) {\n this.flipRightDown(ctx);\n }\n this.mid = {x: 305, y: (this.posY+480)/2};\n }\n\n flipRightUp(ctx){\n this.posY -= 15;\n this.mid = {x: 170, y: (this.posY+480)/2};\n this.playFlip();\n }\n\n playFlip(){\n let x = document.getElementById('flip');\n x.currentTime = 0;\n x.play();\n }\n\n flipRightDown(ctx){\n this.posY += 15;\n this.mid = {x: 170, y: (this.posY+480)/2};\n }\n}\n\nmodule.exports = RightFlipper;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/right_flipper.js"],"sourceRoot":""}