From 94f405dcfe67db28faea3925e00de6683210bcdc Mon Sep 17 00:00:00 2001 From: koozy Date: Fri, 29 Sep 2017 19:38:36 +0800 Subject: [PATCH 01/55] first commit --- README2.md | 45 ++++++++++++++++++++++ assets/css/reset.css | 48 ++++++++++++++++++++++++ assets/css/stylesheet.css | 72 ++++++++++++++++++++++++++++++++++++ assets/images/flowchart.png | Bin 0 -> 268886 bytes index.html | 33 +++++++++++++++-- 5 files changed, 195 insertions(+), 3 deletions(-) create mode 100644 README2.md create mode 100644 assets/css/reset.css create mode 100644 assets/images/flowchart.png diff --git a/README2.md b/README2.md new file mode 100644 index 00000000..ae61f3d0 --- /dev/null +++ b/README2.md @@ -0,0 +1,45 @@ +# Basic Pacman + + +flowchart.png + +## Overview + +The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. + + +## Challenges + ++ Create logic for ghosts to actively chase Pac-Man instead of moving randomly ++ Create logic to implement Power Pellets that provide Pac-Man with the ability to eat the ghosts and earn bonus points + + +## Collision Logic + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. + +## Pac-Man Movement + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. + + +## Ghosts Movement + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. + + +## Resources + ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit + + +## Acknowledgements + ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit diff --git a/assets/css/reset.css b/assets/css/reset.css new file mode 100644 index 00000000..af944401 --- /dev/null +++ b/assets/css/reset.css @@ -0,0 +1,48 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index e69de29b..b83b648e 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -0,0 +1,72 @@ +.container { + border: 1px solid red; + width: 1000px; + max-width: 90vw; + height: 700px; + max-height: 90vh; + margin: 0 auto; +} + +.window { + border: 1px solid blue; + width: 900px; + max-width: 80vw; + height: 600px; + max-height: 80vh; + margin: 0 auto; +} + +.game-board { + border: 1px solid green; + width: 600px; + max-width: 70vw; + height: 450px; + max-height: 70vh; + margin: 0 auto; +} + +.character { + width: 30px; + height: 30px; + positon: absolute; +} + +#pac-man { + background-color: yellow; + border-radius: 15px; +} + +#ghost-one { + background-color: red; + border-radius: 15px; +} + +#ghost-two { + background-color: pink; + border-radius: 15px; +} + +#ghost-three { + background-color: orange; + border-radius: 15px; +} + +#ghost-four { + background-color: cyan; + border-radius: 15px; +} + +h1 { + font-size: 50px; + font-weight: 500; + text-align: center; +} + +h2 { + +} + +strong { + font-size: 30px; + font-weight: 400; +} diff --git a/assets/images/flowchart.png b/assets/images/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..b651b1f414b025728e2e40b7581986451b08a07b GIT binary patch literal 268886 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 5b002212..a5e1eae5 100644 --- a/index.html +++ b/index.html @@ -2,10 +2,37 @@ - - + Basic Pac-Man + + - +

+ + + From 02154e82769e99ecde7f605105f6661df02def8c Mon Sep 17 00:00:00 2001 From: koozy Date: Fri, 29 Sep 2017 19:39:54 +0800 Subject: [PATCH 02/55] update readme --- README.md | 97 +++++++++++++----------------------------------------- README2.md | 45 ------------------------- 2 files changed, 23 insertions(+), 119 deletions(-) delete mode 100644 README2.md diff --git a/README.md b/README.md index 317a3e58..ae61f3d0 100644 --- a/README.md +++ b/README.md @@ -1,96 +1,45 @@ -# Project Name (Start editing here) - +# Basic Pacman -# ![](https://ga-dash.s3.amazonaws.com/production/assets/logo-9f88ae6c9c3871690e33280fcf557f33.png) Project #1: The Game -### Overview +flowchart.png -Let's start out with something fun - **a game!** +## Overview -Everyone will get a chance to **be creative**, and work through some really **tough programming challenges** – since you've already gotten your feet wet with Tic Tac Toe, it's up to you to come up with a fun and interesting game to build. +The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. -**You will be working individually for this project**, but we'll be guiding you along the process and helping as you go. Show us what you've got! +## Challenges ---- ++ Create logic for ghosts to actively chase Pac-Man instead of moving randomly ++ Create logic to implement Power Pellets that provide Pac-Man with the ability to eat the ghosts and earn bonus points -### Technical Requirements -Your app must: +## Collision Logic -* **Render a game in the browser** -* **Any number of players** will be okay, switch turns will be great -* **Design logic for winning** & **visually display which player won** -* **Include separate HTML / CSS / JavaScript files** -* Stick with **KISS (Keep It Simple Stupid)** and **DRY (Don't Repeat Yourself)** principles -* Use **Javascript** for **DOM manipulation**, jQuery is not compulsory -* **Deploy your game online**, where the rest of the world can access it -* Use **semantic markup** for HTML and CSS (adhere to best practices) -* **No canvas** project will be accepted, only HTML5 + CSS3 + JS please +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. ---- +## Pac-Man Movement -### Necessary Deliverables -* A **working game, built by you**, hosted somewhere on the internet -* A **link to your hosted working game** in the URL section of your GitHub repo -* A **git repository hosted on GitHub**, with a link to your hosted game, and frequent commits dating back to the very beginning of the project -* **A ``readme.md`` file** with explanations of the technologies used, the approach taken, installation instructions, unsolved problems, etc. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. ---- -### Suggested Ways to Get Started +## Ghosts Movement -* **Break the project down into different components** (data, presentation, views, style, DOM manipulation) and brainstorm each component individually. Use whiteboards! -* **Use your Development Tools** (console.log, inspector, alert statements, etc) to debug and solve problems -* Work through the lessons in class & ask questions when you need to! Think about adding relevant code to your game each night, instead of, you know... _procrastinating_. -* **Commit early, commit often.** Don’t be afraid to break something because you can always go back in time to a previous version. -* **Consult documentation resources** (MDN, jQuery, etc.) at home to better understand what you’ll be getting into. -* **Don’t be afraid to write code that you know you will have to remove later.** Create temporary elements (buttons, links, etc) that trigger events if real data is not available. For example, if you’re trying to figure out how to change some text when the game is over but you haven’t solved the win/lose game logic, you can create a button to simulate that until then. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. ---- -### Potential Project Ideas +## Resources -##### Blackjack -Make a one player game where people down on their luck can lose all their money by guessing which card the computer will deal next! ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit -##### Self-scoring Trivia -Test your wits & knowledge with whatever-the-heck you know about (so you can actually win). Guess answers, have the computer tell you how right you are! ---- +## Acknowledgements -### Useful Resources - -* **[MDN Javascript Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript)** _(a great reference for all things Vanilla Javascript)_ -* **[jQuery Docs](http://api.jquery.com)** _(if you're using jQuery)_ -* **[GitHub Pages](https://pages.github.com)** _(for hosting your game)_ -* **[How to write readme - Markdown CheatSheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)** _(for editing this readme)_ -* **[How to write a good readme for github repo!](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)** _(to make it better)_ - ---- - -### Project Feedback + Evaluation - -* __Project Workflow__: Did you complete the user stories, wireframes, task tracking, and/or ERDs, as specified above? Did you use source control as expected for the phase of the program you’re in (detailed above)? - -* __Technical Requirements__: Did you deliver a project that met all the technical requirements? Given what the class has covered so far, did you build something that was reasonably complex? - -* __Creativity__: Did you add a personal spin or creative element into your project submission? Did you deliver something of value to the end user (not just a login button and an index page)? - -* __Code Quality__: Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming? Did you comment your code as your instructors have in class? - -* __Deployment__: Did you deploy your application to a public url using GitHub Pages? - -* __Total__: Your instructors will give you a total score on your project between: - - Score | Expectations - ----- | ------------ - **0** | _Incomplete._ - **1** | _Does not meet expectations._ - **2** | _Meets expectations, good job!_ - **3** | _Exceeds expectations, you wonderful creature, you!_ - - This will serve as a helpful overall gauge of whether you met the project goals, but __the more important scores are the individual ones__ above, which can help you identify where to focus your efforts for the next project! ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Lorem ipsum dolor sit amet, consectetur adipiscing elit diff --git a/README2.md b/README2.md deleted file mode 100644 index ae61f3d0..00000000 --- a/README2.md +++ /dev/null @@ -1,45 +0,0 @@ -# Basic Pacman - - -flowchart.png - -## Overview - -The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. - - -## Challenges - -+ Create logic for ghosts to actively chase Pac-Man instead of moving randomly -+ Create logic to implement Power Pellets that provide Pac-Man with the ability to eat the ghosts and earn bonus points - - -## Collision Logic - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. - -## Pac-Man Movement - - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. - - -## Ghosts Movement - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. - - -## Resources - -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit - - -## Acknowledgements - -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit From 70d5a4dc171248cbfdc2c9bf9d390417723bfc9d Mon Sep 17 00:00:00 2001 From: koozy Date: Fri, 29 Sep 2017 19:43:10 +0800 Subject: [PATCH 03/55] update readme2 --- README.md | 2 +- assets/images/flowchart.png | Bin 268886 -> 269291 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae61f3d0..beca281b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Basic Pacman -flowchart.png +flowchart.png ## Overview diff --git a/assets/images/flowchart.png b/assets/images/flowchart.png index b651b1f414b025728e2e40b7581986451b08a07b..eb7089cb53e562240a8cc012a612b95c816741d7 100644 GIT binary patch delta 180472 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�y3oYhJ;KtKyTPmVO`zqm8k|V9=Tw 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 E0C}G@rT_o{ delta 175976 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 z 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 From 4e2033431d32b003f9e95a42fba8eb9187a42ec6 Mon Sep 17 00:00:00 2001 From: koozy Date: Fri, 29 Sep 2017 21:17:09 +0800 Subject: [PATCH 04/55] basic arrow key movement for pacman --- README.md | 4 +++- assets/css/stylesheet.css | 42 +++++++++++++++++++++++++++++---------- assets/js/script.js | 15 ++++++++++++++ index.html | 8 ++++---- 4 files changed, 53 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index beca281b..9151bac1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Basic Pacman +# **Basic Pac-Man** flowchart.png @@ -7,6 +7,8 @@ The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. +## + ## Challenges diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index b83b648e..61513cc2 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -9,7 +9,7 @@ .window { border: 1px solid blue; - width: 900px; + width: 800px; max-width: 80vw; height: 600px; max-height: 80vh; @@ -18,42 +18,53 @@ .game-board { border: 1px solid green; - width: 600px; - max-width: 70vw; + width: 570px; height: 450px; - max-height: 70vh; margin: 0 auto; + position: relative; + /*max-width: 70vw;*/ + /*max-height: 70vh;*/ +} + +.instruction-panel { + display: none; } .character { width: 30px; height: 30px; - positon: absolute; + border-radius: 15px; + position: absolute; } #pac-man { background-color: yellow; - border-radius: 15px; + top: 330px; + left: 270px; } #ghost-one { background-color: red; - border-radius: 15px; + top: 210px; + left: 240px; } #ghost-two { background-color: pink; - border-radius: 15px; + top: 210px; + left: 270px; } #ghost-three { background-color: orange; - border-radius: 15px; + top: 210px; + left: 300px; } #ghost-four { background-color: cyan; - border-radius: 15px; + top: 180px; + left: 270px; } h1 { @@ -63,10 +74,19 @@ h1 { } h2 { - + font-size: 40px; + font-weight: 400; + text-align: center; +} + +p { + font-size: 20px; + line-height: 26px; + text-align: center; } strong { font-size: 30px; font-weight: 400; + line-height: 40px; } diff --git a/assets/js/script.js b/assets/js/script.js index e69de29b..8bb6ef6c 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -0,0 +1,15 @@ +$(function () { + // console.log('linked') + var $body = $('body') + var $pacMan = $('#pac-man') + + $body.on('keyup', (event) => { + // console.log(event.key) + var pacManPos = $pacMan.position() + + if(event.key === 'ArrowUp') $pacMan.css('top', `${pacManPos.top - 30}px`) + else if(event.key === 'ArrowDown') $pacMan.css('top', `${pacManPos.top + 30}px`) + else if(event.key === 'ArrowLeft') $pacMan.css('left', `${pacManPos.left - 30}px`) + else if(event.key === 'ArrowRight') $pacMan.css('left', `${pacManPos.left + 30}px`) + }) +}) diff --git a/index.html b/index.html index a5e1eae5..d173d347 100644 --- a/index.html +++ b/index.html @@ -16,10 +16,10 @@

Basic Pac-Man

Instructions

Controls:
- Arrow-Left '◀': Move Left
- Arrow-Right '▶': Move Right
- Arrow-Up '▲': Move Up
- Arrow-Down '▼': Move Down + Arrow-Left '◀' : Move 'Left'
+ Arrow-Right '▶' : Move 'Right'
+ Arrow-Up '▲' : Move 'Up'
+ Arrow-Down '▼' : Move 'Down'

From 71f197165307dbabe3f1fe95c6f38501323cddff Mon Sep 17 00:00:00 2001 From: koozy Date: Fri, 29 Sep 2017 21:22:56 +0800 Subject: [PATCH 05/55] box pac-man in game-board --- assets/js/script.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 8bb6ef6c..b5880a1f 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -7,9 +7,9 @@ $(function () { // console.log(event.key) var pacManPos = $pacMan.position() - if(event.key === 'ArrowUp') $pacMan.css('top', `${pacManPos.top - 30}px`) - else if(event.key === 'ArrowDown') $pacMan.css('top', `${pacManPos.top + 30}px`) - else if(event.key === 'ArrowLeft') $pacMan.css('left', `${pacManPos.left - 30}px`) - else if(event.key === 'ArrowRight') $pacMan.css('left', `${pacManPos.left + 30}px`) + if(event.key === 'ArrowUp' && pacManPos.top !== 0) $pacMan.css('top', `${pacManPos.top - 30}px`) + else if(event.key === 'ArrowDown' && pacManPos.top !== 420) $pacMan.css('top', `${pacManPos.top + 30}px`) + else if(event.key === 'ArrowLeft' && pacManPos.left !== 0) $pacMan.css('left', `${pacManPos.left - 30}px`) + else if(event.key === 'ArrowRight' && pacManPos.left !== 540) $pacMan.css('left', `${pacManPos.left + 30}px`) }) }) From 672f611277b5a6251372435ab70e0d75b18308a7 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 13:59:40 +0800 Subject: [PATCH 06/55] create loadAssets --- assets/css/stylesheet.css | 24 ++++++++---- assets/js/script.js | 78 ++++++++++++++++++++++++++++++++------- index.html | 6 +-- 3 files changed, 85 insertions(+), 23 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 61513cc2..c423e2ae 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -1,8 +1,15 @@ +body { + margin: 0; + height: 100%; + width: 100%; + overflow: hidden; +} + .container { border: 1px solid red; width: 1000px; max-width: 90vw; - height: 700px; + height: 720px; max-height: 90vh; margin: 0 auto; } @@ -11,19 +18,22 @@ border: 1px solid blue; width: 800px; max-width: 80vw; - height: 600px; + height: 720px; max-height: 80vh; margin: 0 auto; } .game-board { border: 1px solid green; - width: 570px; - height: 450px; + width: 600px; + height: 540px; margin: 0 auto; position: relative; - /*max-width: 70vw;*/ - /*max-height: 70vh;*/ + display: flex; + flex-wrap: wrap; + align-content: flex-start; + max-width: 70vw; + max-height: 70vh; } .instruction-panel { @@ -39,7 +49,7 @@ #pac-man { background-color: yellow; - top: 330px; + top: 390px; left: 270px; } diff --git a/assets/js/script.js b/assets/js/script.js index b5880a1f..13f6b8cd 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -1,15 +1,67 @@ +// class Block = { +// constructor() { +// width: 15 +// height: 15 +// } +// } + +var tileSet = [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +] + +// global variables +var $body = $('body') +var $pacMan = $('#pac-man') +var $gameBoard = $('.game-board') + $(function () { - // console.log('linked') - var $body = $('body') - var $pacMan = $('#pac-man') - - $body.on('keyup', (event) => { - // console.log(event.key) - var pacManPos = $pacMan.position() - - if(event.key === 'ArrowUp' && pacManPos.top !== 0) $pacMan.css('top', `${pacManPos.top - 30}px`) - else if(event.key === 'ArrowDown' && pacManPos.top !== 420) $pacMan.css('top', `${pacManPos.top + 30}px`) - else if(event.key === 'ArrowLeft' && pacManPos.left !== 0) $pacMan.css('left', `${pacManPos.left - 30}px`) - else if(event.key === 'ArrowRight' && pacManPos.left !== 540) $pacMan.css('left', `${pacManPos.left + 30}px`) - }) + // creating map + loadAssets(tileSet) + + // moving pacman + $body.on('keyup', (event) => { move(event) }) }) + +function move (event) { + var pacManPos = $pacMan.position() + + if(event.key === 'ArrowUp' && pacManPos.top !== 0) $pacMan.css('top', `${pacManPos.top - 30}px`) + else if(event.key === 'ArrowDown' && pacManPos.top !== 510) $pacMan.css('top', `${pacManPos.top + 30}px`) + else if(event.key === 'ArrowLeft' && pacManPos.left !== 0) $pacMan.css('left', `${pacManPos.left - 30}px`) + else if(event.key === 'ArrowRight' && pacManPos.left !== 570) $pacMan.css('left', `${pacManPos.left + 30}px`) +} + +function loadAssets (tileSet) { + for (var i = 0; i < tileSet.length; i++) { + // create new
+ var $tile = $('
') + // setting tile properties + if (tileSet[i] === 1) { + $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) + } else if (tileSet[i] === 0) { + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) + } else if (tileSet[i] === 2) { + $tile.css({ 'background-color': 'white', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) + } + + // append tile to .game-board + $gameBoard.append($tile) + } +} diff --git a/index.html b/index.html index d173d347..69e7b97d 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,8 @@
+

Basic Pac-Man

-

Basic Pac-Man

@@ -29,8 +29,8 @@

Instructions

-
-
+ + From ec9159d126b1b405cad7b23170aafe74672d60c2 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 17:10:29 +0800 Subject: [PATCH 07/55] added pac-dots --- assets/css/stylesheet.css | 24 +++++++++++---- assets/js/script.js | 63 +++++++++++++++++++-------------------- 2 files changed, 49 insertions(+), 38 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index c423e2ae..ca3daa9b 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -25,7 +25,7 @@ body { .game-board { border: 1px solid green; - width: 600px; + width: 570px; height: 540px; margin: 0 auto; position: relative; @@ -35,6 +35,18 @@ body { max-width: 70vw; max-height: 70vh; } +.tile { + display: flex; + justify-content: center; + align-items: center; +} + +.dots { + width: 10px; + height: 10px; + border-radius: 5px; + background-color: yellow; +} .instruction-panel { display: none; @@ -56,25 +68,25 @@ body { #ghost-one { background-color: red; top: 210px; - left: 240px; + left: 270px; } #ghost-two { background-color: pink; - top: 210px; + top: 240px; left: 270px; } #ghost-three { background-color: orange; - top: 210px; + top: 240px; left: 300px; } #ghost-four { background-color: cyan; - top: 180px; - left: 270px; + top: 240px; + left: 240px; } h1 { diff --git a/assets/js/script.js b/assets/js/script.js index 13f6b8cd..b84378b8 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -1,32 +1,26 @@ -// class Block = { -// constructor() { -// width: 15 -// height: 15 -// } -// } +// global variables var tileSet = [ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] -// global variables var $body = $('body') var $pacMan = $('#pac-man') var $gameBoard = $('.game-board') @@ -51,14 +45,19 @@ function move (event) { function loadAssets (tileSet) { for (var i = 0; i < tileSet.length; i++) { // create new
- var $tile = $('
') + var $tile = $('
') + var $dots = $('
') // setting tile properties - if (tileSet[i] === 1) { - $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) - } else if (tileSet[i] === 0) { - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) - } else if (tileSet[i] === 2) { - $tile.css({ 'background-color': 'white', 'height': '28px', 'width': '28px', 'border': '1px solid yellow', 'display': 'inline-block' }) + if (tileSet[i] === 0) { + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 0) + $tile.append($dots) + } else if (tileSet[i] === 1) { + $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 1) + } else if (tileSet[i] === 2) { + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 2) } // append tile to .game-board From 2ca4ed55b6301b226647c0490f8efec87791d489 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 21:07:07 +0800 Subject: [PATCH 08/55] create scoreboard, pacman movement, consume dots to update: score count logic --- assets/css/stylesheet.css | 17 +---- assets/js/script.js | 135 +++++++++++++++++++++++++++++++------- index.html | 18 ++--- 3 files changed, 122 insertions(+), 48 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index ca3daa9b..084dd437 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -53,40 +53,29 @@ body { } .character { - width: 30px; - height: 30px; - border-radius: 15px; - position: absolute; + width: 28px; + height: 28px; + border-radius: 14px; } #pac-man { background-color: yellow; - top: 390px; - left: 270px; } #ghost-one { background-color: red; - top: 210px; - left: 270px; } #ghost-two { background-color: pink; - top: 240px; - left: 270px; } #ghost-three { background-color: orange; - top: 240px; - left: 300px; } #ghost-four { background-color: cyan; - top: 240px; - left: 240px; } h1 { diff --git a/assets/js/script.js b/assets/js/script.js index b84378b8..1c3500bc 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -1,5 +1,4 @@ // global variables - var tileSet = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, @@ -8,13 +7,13 @@ var tileSet = [ 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 8, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 1, 7, 6, 5, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 1, 1, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 1, 1, 0, 9, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, @@ -22,24 +21,87 @@ var tileSet = [ ] var $body = $('body') -var $pacMan = $('#pac-man') var $gameBoard = $('.game-board') +// creating pac-man and ghosts +var $pacMan = $('
') +var $ghostOne = $('
') +var $ghostTwo = $('
') +var $ghostThree = $('
') +var $ghostFour = $('
') +var score = 0 + +var $pacManTile = $pacMan.parent() +var $pacManLeft = $pacManTile.prev() +var $pacManRight = $pacManTile.next() + $(function () { // creating map loadAssets(tileSet) // moving pacman - $body.on('keyup', (event) => { move(event) }) + $body.on('keydown', (event) => { move(event) }) }) function move (event) { - var pacManPos = $pacMan.position() + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManLeft = $pacManTile.prev() + var $pacManRight = $pacManTile.next() + var $pacManDown = $pacManTile.nextAll().eq(18) + var $pacManUp = $pacManTile.prevAll().eq(18) + var $score = $('#score') - if(event.key === 'ArrowUp' && pacManPos.top !== 0) $pacMan.css('top', `${pacManPos.top - 30}px`) - else if(event.key === 'ArrowDown' && pacManPos.top !== 510) $pacMan.css('top', `${pacManPos.top + 30}px`) - else if(event.key === 'ArrowLeft' && pacManPos.left !== 0) $pacMan.css('left', `${pacManPos.left - 30}px`) - else if(event.key === 'ArrowRight' && pacManPos.left !== 570) $pacMan.css('left', `${pacManPos.left + 30}px`) + switch(event.key) { + case 'ArrowUp': + // check if tile has dots + if ($pacManUp.has('.dots')) { + score++ + $score.text(`Score: ${score}`) + $pacManUp.empty() + } + // check if pac-man can move into tile + if ($pacManUp.data('attr') !== 1) { + $pacManUp.append($pacMan) + } + break + case 'ArrowRight': + // check if tile has dots + if ($pacManRight.has('.dots')) { + score++ + $score.text(`Score: ${score}`) + $pacManRight.empty() + } + // check if pac-man can move into tile + if ($pacManRight.data('attr') !== 1) { + $pacManRight.append($pacMan) + } + break + case 'ArrowDown': + // check if tile has dots + if ($pacManDown.has('.dots')) { + score++ + $score.text(`Score: ${score}`) + $pacManDown.empty() + } + // check if pac-man can move into tile + if ($pacManDown.data('attr') !== 1) { + $pacManDown.append($pacMan) + } + break + case 'ArrowLeft': + // check if tile has dots + if ($pacManLeft.has('.dots')) { + score++ + $score.text(`Score: ${score}`) + $pacManLeft.empty() + } + // check if pac-man can move into tile + if ($pacManLeft.data('attr') !== 1) { + $pacManLeft.append($pacMan) + } + break + } } function loadAssets (tileSet) { @@ -48,19 +110,46 @@ function loadAssets (tileSet) { var $tile = $('
') var $dots = $('
') // setting tile properties - if (tileSet[i] === 0) { - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) - $tile.data('attr', 0) - $tile.append($dots) - } else if (tileSet[i] === 1) { - $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) - $tile.data('attr', 1) - } else if (tileSet[i] === 2) { - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) - $tile.data('attr', 2) + switch (tileSet[i]) { + case 0: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 0) + $tile.append($dots) + break + case 1: + $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 1) + break + case 2: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 2) + break + case 9: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 9) + $tile.append($pacMan) + break + case 8: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 8) + $tile.append($ghostOne) + break + case 7: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 7) + $tile.append($ghostTwo) + break + case 6: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 6) + $tile.append($ghostThree) + break + case 5: + $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.data('attr', 5) + $tile.append($ghostFour) + break } - - // append tile to .game-board $gameBoard.append($tile) } } diff --git a/index.html b/index.html index 69e7b97d..7aeb6e22 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,6 @@

Basic Pac-Man

-

Instructions

@@ -21,16 +20,13 @@

Instructions

Arrow-Up '▲' : Move 'Up'
Arrow-Down '▼' : Move 'Down'

-
- -
-
-
-
-
-
- - +
+
+
+

Score: 0

+
+
+
From 9fd49be17e49b04686b4a71934ea37f9c4feb119 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 21:25:34 +0800 Subject: [PATCH 09/55] updated scoring logic --- assets/js/script.js | 48 ++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 1c3500bc..828a76de 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -50,60 +50,42 @@ function move (event) { var $pacManRight = $pacManTile.next() var $pacManDown = $pacManTile.nextAll().eq(18) var $pacManUp = $pacManTile.prevAll().eq(18) - var $score = $('#score') switch(event.key) { case 'ArrowUp': // check if tile has dots - if ($pacManUp.has('.dots')) { - score++ - $score.text(`Score: ${score}`) - $pacManUp.empty() - } + if ($pacManUp.children().length > 0) eatAndChangeScore($pacManUp) // check if pac-man can move into tile - if ($pacManUp.data('attr') !== 1) { - $pacManUp.append($pacMan) - } + if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) break case 'ArrowRight': // check if tile has dots - if ($pacManRight.has('.dots')) { - score++ - $score.text(`Score: ${score}`) - $pacManRight.empty() - } + if ($pacManRight.children().length > 0) eatAndChangeScore($pacManRight) // check if pac-man can move into tile - if ($pacManRight.data('attr') !== 1) { - $pacManRight.append($pacMan) - } + if ($pacManRight.data('attr') !== 1) $pacManRight.append($pacMan) break case 'ArrowDown': // check if tile has dots - if ($pacManDown.has('.dots')) { - score++ - $score.text(`Score: ${score}`) - $pacManDown.empty() - } + if ($pacManDown.children().length > 0) eatAndChangeScore($pacManDown) // check if pac-man can move into tile - if ($pacManDown.data('attr') !== 1) { - $pacManDown.append($pacMan) - } + if ($pacManDown.data('attr') !== 1) $pacManDown.append($pacMan) break case 'ArrowLeft': // check if tile has dots - if ($pacManLeft.has('.dots')) { - score++ - $score.text(`Score: ${score}`) - $pacManLeft.empty() - } + if ($pacManLeft.children().length > 0) eatAndChangeScore($pacManLeft) // check if pac-man can move into tile - if ($pacManLeft.data('attr') !== 1) { - $pacManLeft.append($pacMan) - } + if ($pacManLeft.data('attr') !== 1) $pacManLeft.append($pacMan) break } } +function eatAndChangeScore(tile) { + var $score = $('#score') + score++ + $score.text(`Score: ${score}`) + tile.empty() +} + function loadAssets (tileSet) { for (var i = 0; i < tileSet.length; i++) { // create new
From c2011fa451782d20a15ce3b6f2f627348dabec64 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 21:40:16 +0800 Subject: [PATCH 10/55] update scoring logic --- assets/js/script.js | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 828a76de..d17225df 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -1,4 +1,4 @@ -// global variables +// tileSet array (for generating map) var tileSet = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, @@ -20,20 +20,19 @@ var tileSet = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] +// jQuery objects var $body = $('body') var $gameBoard = $('.game-board') +// score variable +var score = 0 + // creating pac-man and ghosts var $pacMan = $('
') var $ghostOne = $('
') var $ghostTwo = $('
') var $ghostThree = $('
') var $ghostFour = $('
') -var score = 0 - -var $pacManTile = $pacMan.parent() -var $pacManLeft = $pacManTile.prev() -var $pacManRight = $pacManTile.next() $(function () { // creating map @@ -54,25 +53,25 @@ function move (event) { switch(event.key) { case 'ArrowUp': // check if tile has dots - if ($pacManUp.children().length > 0) eatAndChangeScore($pacManUp) + if ($pacManUp.has('.dots').length > 0) eatAndChangeScore($pacManUp) // check if pac-man can move into tile if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) break case 'ArrowRight': // check if tile has dots - if ($pacManRight.children().length > 0) eatAndChangeScore($pacManRight) + if ($pacManRight.has('.dots').length > 0) eatAndChangeScore($pacManRight) // check if pac-man can move into tile if ($pacManRight.data('attr') !== 1) $pacManRight.append($pacMan) break case 'ArrowDown': // check if tile has dots - if ($pacManDown.children().length > 0) eatAndChangeScore($pacManDown) + if ($pacManDown.has('.dots').length > 0) eatAndChangeScore($pacManDown) // check if pac-man can move into tile if ($pacManDown.data('attr') !== 1) $pacManDown.append($pacMan) break case 'ArrowLeft': // check if tile has dots - if ($pacManLeft.children().length > 0) eatAndChangeScore($pacManLeft) + if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) // check if pac-man can move into tile if ($pacManLeft.data('attr') !== 1) $pacManLeft.append($pacMan) break @@ -91,43 +90,45 @@ function loadAssets (tileSet) { // create new
var $tile = $('
') var $dots = $('
') + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } // setting tile properties switch (tileSet[i]) { case 0: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 0) $tile.append($dots) break case 1: - $tile.css({ 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blueTile) $tile.data('attr', 1) break case 2: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 2) break case 9: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 9) $tile.append($pacMan) break case 8: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 8) $tile.append($ghostOne) break case 7: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 7) $tile.append($ghostTwo) break case 6: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 6) $tile.append($ghostThree) break case 5: - $tile.css({ 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' }) + $tile.css(blackTile) $tile.data('attr', 5) $tile.append($ghostFour) break From 019a03d95035610ddb92d2e76872353055d19958 Mon Sep 17 00:00:00 2001 From: koozy Date: Mon, 2 Oct 2017 21:50:15 +0800 Subject: [PATCH 11/55] clean up code --- assets/js/script.js | 58 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index d17225df..eda4b814 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -35,11 +35,21 @@ var $ghostThree = $('
') var $ghostFour = $('
') $(function () { - // creating map + // write reset function + + // write ifGameOver function + + // write start function + + // load assets loadAssets(tileSet) + // write countdown function + // moving pacman $body.on('keydown', (event) => { move(event) }) + + // write killScreen function }) function move (event) { @@ -86,51 +96,39 @@ function eatAndChangeScore(tile) { } function loadAssets (tileSet) { + // objects to store css properties for tiles + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + for (var i = 0; i < tileSet.length; i++) { - // create new
+ // create new
for tiles and dots var $tile = $('
') var $dots = $('
') - var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } - var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } // setting tile properties switch (tileSet[i]) { case 0: - $tile.css(blackTile) - $tile.data('attr', 0) - $tile.append($dots) + $tile.css(blackTile).data('attr', 0).append($dots) break case 1: - $tile.css(blueTile) - $tile.data('attr', 1) + $tile.css(blueTile).data('attr', 1) break case 2: - $tile.css(blackTile) - $tile.data('attr', 2) + $tile.css(blackTile).data('attr', 2) break - case 9: - $tile.css(blackTile) - $tile.data('attr', 9) - $tile.append($pacMan) + case 5: + $tile.css(blackTile).data('attr', 5).append($ghostFour) break - case 8: - $tile.css(blackTile) - $tile.data('attr', 8) - $tile.append($ghostOne) + case 6: + $tile.css(blackTile).data('attr', 6).append($ghostThree) break case 7: - $tile.css(blackTile) - $tile.data('attr', 7) - $tile.append($ghostTwo) + $tile.css(blackTile).data('attr', 7).append($ghostTwo) break - case 6: - $tile.css(blackTile) - $tile.data('attr', 6) - $tile.append($ghostThree) + case 8: + $tile.css(blackTile).data('attr', 8).append($ghostOne) break - case 5: - $tile.css(blackTile) - $tile.data('attr', 5) - $tile.append($ghostFour) + case 9: + $tile.css(blackTile).data('attr', 9).append($pacMan) break } $gameBoard.append($tile) From b5e2eca6cc49603a0fc709ff5a660ba1e9ba9cdb Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 11:39:49 +0800 Subject: [PATCH 12/55] modularize move functions, make pac-man move on it's own --- assets/js/script.js | 110 +++++++++++++++++++++++++++++++------------- 1 file changed, 79 insertions(+), 31 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index eda4b814..67d4536a 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -23,16 +23,11 @@ var tileSet = [ // jQuery objects var $body = $('body') var $gameBoard = $('.game-board') +var direction = 'left' // score variable var score = 0 -// creating pac-man and ghosts -var $pacMan = $('
') -var $ghostOne = $('
') -var $ghostTwo = $('
') -var $ghostThree = $('
') -var $ghostFour = $('
') $(function () { // write reset function @@ -47,59 +42,112 @@ $(function () { // write countdown function // moving pacman + setInterval(function () { + switch (direction) { + case 'left': + moveLeft() + break + case 'right': + moveRight() + break + case 'up': + moveUp() + break + case 'down': + moveDown() + break + } + }, 700) + // switching directions $body.on('keydown', (event) => { move(event) }) // write killScreen function }) function move (event) { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManLeft = $pacManTile.prev() - var $pacManRight = $pacManTile.next() - var $pacManDown = $pacManTile.nextAll().eq(18) - var $pacManUp = $pacManTile.prevAll().eq(18) - - switch(event.key) { + switch (event.key) { case 'ArrowUp': - // check if tile has dots - if ($pacManUp.has('.dots').length > 0) eatAndChangeScore($pacManUp) - // check if pac-man can move into tile - if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) + direction = 'up' break case 'ArrowRight': - // check if tile has dots - if ($pacManRight.has('.dots').length > 0) eatAndChangeScore($pacManRight) - // check if pac-man can move into tile - if ($pacManRight.data('attr') !== 1) $pacManRight.append($pacMan) + direction = 'right' break case 'ArrowDown': - // check if tile has dots - if ($pacManDown.has('.dots').length > 0) eatAndChangeScore($pacManDown) - // check if pac-man can move into tile - if ($pacManDown.data('attr') !== 1) $pacManDown.append($pacMan) + direction = 'down' break case 'ArrowLeft': - // check if tile has dots - if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) - // check if pac-man can move into tile - if ($pacManLeft.data('attr') !== 1) $pacManLeft.append($pacMan) + direction = 'left' break } } -function eatAndChangeScore(tile) { +function eatAndChangeScore (tile) { var $score = $('#score') score++ $score.text(`Score: ${score}`) tile.empty() } +function moveLeft () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManLeft = $pacManTile.prev() + // check if tile has dots + if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) + // check if pac-man can move into tile + if ($pacManLeft.data('attr') !== 1) $pacManLeft.append($pacMan) +} + +function moveDown () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManDown = $pacManTile.nextAll().eq(18) + // check if tile has dots + if ($pacManDown.has('.dots').length > 0) eatAndChangeScore($pacManDown) + // check if pac-man can move into tile + if ($pacManDown.data('attr') !== 1) $pacManDown.append($pacMan) +} + +function moveRight () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManRight = $pacManTile.next() + // check if tile has dots + if ($pacManRight.has('.dots').length > 0) eatAndChangeScore($pacManRight) + // check if pac-man can move into tile + if ($pacManRight.data('attr') !== 1) $pacManRight.append($pacMan) +} + +function moveUp () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManUp = $pacManTile.prevAll().eq(18) + // check if tile has dots + if ($pacManUp.has('.dots').length > 0) eatAndChangeScore($pacManUp) + // check if pac-man can move into tile + if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) +} + +function clearAllIntervals(left, right, up, down) { + clearInterval(left) + clearInterval(right) + clearInterval(up) + clearInterval(down) +} + function loadAssets (tileSet) { + // creating pac-man and ghosts + var $pacMan = $('
') + var $ghostOne = $('
') + var $ghostTwo = $('
') + var $ghostThree = $('
') + var $ghostFour = $('
') + // objects to store css properties for tiles var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + // loop through tileSet array and generate map as well as load characters for (var i = 0; i < tileSet.length; i++) { // create new
for tiles and dots var $tile = $('
') From a2188e4d9f8440084920fa908d8d2577b9841de9 Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 11:47:22 +0800 Subject: [PATCH 13/55] refactor code --- assets/js/script.js | 78 +++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 49 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 67d4536a..53f1f760 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -24,6 +24,7 @@ var tileSet = [ var $body = $('body') var $gameBoard = $('.game-board') var direction = 'left' +var pacManSpeed = 700 // score variable var score = 0 @@ -42,41 +43,35 @@ $(function () { // write countdown function // moving pacman - setInterval(function () { - switch (direction) { - case 'left': - moveLeft() - break - case 'right': - moveRight() - break - case 'up': - moveUp() - break - case 'down': - moveDown() - break - } - }, 700) + setInterval(function () { movePacMan() }, pacManSpeed) // switching directions - $body.on('keydown', (event) => { move(event) }) + $body.on('keydown', (event) => { changeDirection(event) }) // write killScreen function }) -function move (event) { +function movePacMan () { + switch (direction) { + case 'left': moveLeft() + break + case 'right': moveRight() + break + case 'up': moveUp() + break + case 'down': moveDown() + break + } +} + +function changeDirection (event) { switch (event.key) { - case 'ArrowUp': - direction = 'up' + case 'ArrowUp': direction = 'up' break - case 'ArrowRight': - direction = 'right' + case 'ArrowRight': direction = 'right' break - case 'ArrowDown': - direction = 'down' + case 'ArrowDown': direction = 'down' break - case 'ArrowLeft': - direction = 'left' + case 'ArrowLeft': direction = 'left' break } } @@ -128,13 +123,6 @@ function moveUp () { if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) } -function clearAllIntervals(left, right, up, down) { - clearInterval(left) - clearInterval(right) - clearInterval(up) - clearInterval(down) -} - function loadAssets (tileSet) { // creating pac-man and ghosts var $pacMan = $('
') @@ -154,29 +142,21 @@ function loadAssets (tileSet) { var $dots = $('
') // setting tile properties switch (tileSet[i]) { - case 0: - $tile.css(blackTile).data('attr', 0).append($dots) + case 0: $tile.css(blackTile).data('attr', 0).append($dots) break - case 1: - $tile.css(blueTile).data('attr', 1) + case 1: $tile.css(blueTile).data('attr', 1) break - case 2: - $tile.css(blackTile).data('attr', 2) + case 2: $tile.css(blackTile).data('attr', 2) break - case 5: - $tile.css(blackTile).data('attr', 5).append($ghostFour) + case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) break - case 6: - $tile.css(blackTile).data('attr', 6).append($ghostThree) + case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) break - case 7: - $tile.css(blackTile).data('attr', 7).append($ghostTwo) + case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) break - case 8: - $tile.css(blackTile).data('attr', 8).append($ghostOne) + case 8: $tile.css(blackTile).data('attr', 8).append($ghostOne) break - case 9: - $tile.css(blackTile).data('attr', 9).append($pacMan) + case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) break } $gameBoard.append($tile) From fedae76adaefa48bdaea149450dfdeac2c7b9d58 Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 13:43:17 +0800 Subject: [PATCH 14/55] show instructions and add event handler to start game upon user input --- assets/css/stylesheet.css | 16 +++++++++++++++- assets/js/script.js | 34 +++++++++++++++++++--------------- index.html | 1 + 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 084dd437..826b97a6 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -49,7 +49,10 @@ body { } .instruction-panel { - display: none; + display: flex; + justify-content: center; + flex-direction: column; + margin: 0 auto; } .character { @@ -88,12 +91,15 @@ h2 { font-size: 40px; font-weight: 400; text-align: center; + margin: 20px; + text-transform: uppercase; } p { font-size: 20px; line-height: 26px; text-align: center; + margin: 20px; } strong { @@ -101,3 +107,11 @@ strong { font-weight: 400; line-height: 40px; } + +.hit-enter { + font-size: 30px; + font-weight: 400; + line-height: 40px; + color: green; + text-transform: uppercase; +} diff --git a/assets/js/script.js b/assets/js/script.js index 53f1f760..ba44f99f 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -23,10 +23,11 @@ var tileSet = [ // jQuery objects var $body = $('body') var $gameBoard = $('.game-board') +var $instructionPanel = $('.instruction-panel') + +// game variables var direction = 'left' var pacManSpeed = 700 - -// score variable var score = 0 @@ -35,19 +36,22 @@ $(function () { // write ifGameOver function - // write start function - - // load assets - loadAssets(tileSet) - - // write countdown function - - // moving pacman - setInterval(function () { movePacMan() }, pacManSpeed) - // switching directions - $body.on('keydown', (event) => { changeDirection(event) }) - - // write killScreen function + // hit enter to start + $body.on('keydown', (event) => { + if(event.key === "Enter") { + // hide instructions + $instructionPanel.css('display', 'none') + // load assets + loadAssets(tileSet) + // write countdown function + + // moving pacman + setInterval(function () { movePacMan() }, pacManSpeed) + // switching directions + $body.on('keydown', (event) => { changeDirection(event) }) + // write killScreen function + } + }) }) function movePacMan () { diff --git a/index.html b/index.html index 7aeb6e22..259ed293 100644 --- a/index.html +++ b/index.html @@ -20,6 +20,7 @@

Instructions

Arrow-Up '▲' : Move 'Up'
Arrow-Down '▼' : Move 'Down'

+

< Hit Enter to begin >

From 6b67e95406afdbeff0a9b7427d34c98688f932ef Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 16:37:36 +0800 Subject: [PATCH 15/55] create moveGhost function, rename other functions for clarity --- assets/css/stylesheet.css | 48 +++++++++--- assets/js/script.js | 159 +++++++++++++++++++++++++------------- index.html | 4 +- 3 files changed, 146 insertions(+), 65 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 826b97a6..6163a53b 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -12,15 +12,21 @@ body { height: 720px; max-height: 90vh; margin: 0 auto; + display: flex; + flex-direction: column; + justify-content: center; } .window { border: 1px solid blue; width: 800px; max-width: 80vw; - height: 720px; + height: 600px; max-height: 80vh; margin: 0 auto; + display: flex; + flex-direction: column; + justify-content: center; } .game-board { @@ -35,6 +41,23 @@ body { max-width: 70vw; max-height: 70vh; } + +.instruction-panel { + border: 1px solid purple; + display: flex; + justify-content: center; + flex-direction: column; + margin: 0 auto; +} + +.score-board { + border: 1px solid cyan; + margin: 0px; + padding: 0px; + height: 50px; + visibility: hidden; +} + .tile { display: flex; justify-content: center; @@ -48,13 +71,6 @@ body { background-color: yellow; } -.instruction-panel { - display: flex; - justify-content: center; - flex-direction: column; - margin: 0 auto; -} - .character { width: 28px; height: 28px; @@ -67,18 +83,22 @@ body { #ghost-one { background-color: red; + position: absolute; } #ghost-two { background-color: pink; + position: absolute; } #ghost-three { background-color: orange; + position: absolute; } #ghost-four { background-color: cyan; + position: absolute; } h1 { @@ -91,10 +111,17 @@ h2 { font-size: 40px; font-weight: 400; text-align: center; - margin: 20px; text-transform: uppercase; } +h3 { + font-size: 40px; + font-weight: 400; + text-align: center; + text-transform: uppercase; + margin: 5px; +} + p { font-size: 20px; line-height: 26px; @@ -105,7 +132,8 @@ p { strong { font-size: 30px; font-weight: 400; - line-height: 40px; + line-height: 50px; + text-transform: uppercase; } .hit-enter { diff --git a/assets/js/script.js b/assets/js/script.js index ba44f99f..902f33d6 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -8,7 +8,7 @@ var tileSet = [ 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 8, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 1, 7, 6, 5, 1, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 1, 7, 6, 5, 1, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, @@ -24,12 +24,23 @@ var tileSet = [ var $body = $('body') var $gameBoard = $('.game-board') var $instructionPanel = $('.instruction-panel') +var $scoreBoard = $('.score-board') // game variables -var direction = 'left' -var pacManSpeed = 700 var score = 0 +// pacman variables +var direction = 'left' +var pacManSpeed = 600 +// ghost variables +var ghostMovementMode = 'scatter' +var ghostSpeed = 600 +// ghost-one variables +var ghostOneTarget +// ghost-two variables + +// ghost-three variables +// ghost-four variables $(function () { // write reset function @@ -37,10 +48,11 @@ $(function () { // write ifGameOver function // hit enter to start - $body.on('keydown', (event) => { - if(event.key === "Enter") { + $body.on('keyup', (event) => { + if (event.key === 'Enter') { // hide instructions $instructionPanel.css('display', 'none') + $scoreBoard.css('visibility', 'visible') // load assets loadAssets(tileSet) // write countdown function @@ -49,20 +61,73 @@ $(function () { setInterval(function () { movePacMan() }, pacManSpeed) // switching directions $body.on('keydown', (event) => { changeDirection(event) }) + // moving ghost-one + setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) + + // moving ghost-two + + // moving ghost-three + + // moving ghost-four + // write killScreen function } }) }) +function loadAssets (tileSet) { + // creating pac-man and ghosts + var $pacMan = $('
') + var $ghostOne = $('
') + var $ghostTwo = $('
') + var $ghostThree = $('
') + var $ghostFour = $('
') + + // objects to store css properties for tiles + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var yellowTile = { 'background-color': 'yellow', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + + // loop through tileSet array and generate map as well as load characters + for (var i = 0; i < tileSet.length; i++) { + // create new
for tiles and dots + var $tile = $('
') + var $dots = $('
') + + // setting tile properties and adding characters + switch (tileSet[i]) { + case 0: $tile.css(blackTile).data('attr', 0).append($dots) + break + case 1: $tile.css(blueTile).data('attr', 1) + break + case 2: $tile.css(blackTile).data('attr', 2) + break + case 3: $tile.css(blackTile).data('attr', 3) + break + case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) + break + case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) + break + case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) + break + case 8: $tile.css(yellowTile).data('attr', 8).append($ghostOne) + break + case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) + break + } + $gameBoard.append($tile) + } +} + function movePacMan () { switch (direction) { - case 'left': moveLeft() + case 'left': movePacLeft() break - case 'right': moveRight() + case 'right': movePacRight() break - case 'up': moveUp() + case 'up': movePacUp() break - case 'down': moveDown() + case 'down': movePacDown() break } } @@ -87,82 +152,70 @@ function eatAndChangeScore (tile) { tile.empty() } -function moveLeft () { +function movePacLeft () { var $pacMan = $('#pac-man') var $pacManTile = $pacMan.parent() var $pacManLeft = $pacManTile.prev() // check if tile has dots if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) // check if pac-man can move into tile - if ($pacManLeft.data('attr') !== 1) $pacManLeft.append($pacMan) + if ($pacManLeft.data('attr') !== 1 && $pacManLeft.data('attr') !== 8) $pacManLeft.append($pacMan) } -function moveDown () { +function movePacDown () { var $pacMan = $('#pac-man') var $pacManTile = $pacMan.parent() var $pacManDown = $pacManTile.nextAll().eq(18) // check if tile has dots if ($pacManDown.has('.dots').length > 0) eatAndChangeScore($pacManDown) // check if pac-man can move into tile - if ($pacManDown.data('attr') !== 1) $pacManDown.append($pacMan) + if ($pacManDown.data('attr') !== 1 && $pacManDown.data('attr') !== 8) $pacManDown.append($pacMan) } -function moveRight () { +function movePacRight () { var $pacMan = $('#pac-man') var $pacManTile = $pacMan.parent() var $pacManRight = $pacManTile.next() // check if tile has dots if ($pacManRight.has('.dots').length > 0) eatAndChangeScore($pacManRight) // check if pac-man can move into tile - if ($pacManRight.data('attr') !== 1) $pacManRight.append($pacMan) + if ($pacManRight.data('attr') !== 1 && $pacManRight.data('attr') !== 8) $pacManRight.append($pacMan) } -function moveUp () { +function movePacUp () { var $pacMan = $('#pac-man') var $pacManTile = $pacMan.parent() var $pacManUp = $pacManTile.prevAll().eq(18) // check if tile has dots if ($pacManUp.has('.dots').length > 0) eatAndChangeScore($pacManUp) // check if pac-man can move into tile - if ($pacManUp.data('attr') !== 1) $pacManUp.append($pacMan) + if ($pacManUp.data('attr') !== 1 && $pacManUp.data('attr') !== 8) $pacManUp.append($pacMan) } -function loadAssets (tileSet) { - // creating pac-man and ghosts - var $pacMan = $('
') - var $ghostOne = $('
') - var $ghostTwo = $('
') - var $ghostThree = $('
') - var $ghostFour = $('
') +function moveGhost ($ghost) { + var $ghostOne = $('#ghost-one') + var $ghostTwo = $('#ghost-two') + var $ghostThree = $('#ghost-three') + var $ghostFour = $('#ghost-four') + console.log('moving ghost') + switch (true) { + case ($ghost.is($ghostOne)): + console.log('go left') + moveTopLeft($ghost) + } - // objects to store css properties for tiles - var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } - var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } - // loop through tileSet array and generate map as well as load characters - for (var i = 0; i < tileSet.length; i++) { - // create new
for tiles and dots - var $tile = $('
') - var $dots = $('
') - // setting tile properties - switch (tileSet[i]) { - case 0: $tile.css(blackTile).data('attr', 0).append($dots) - break - case 1: $tile.css(blueTile).data('attr', 1) - break - case 2: $tile.css(blackTile).data('attr', 2) - break - case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) - break - case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) - break - case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) - break - case 8: $tile.css(blackTile).data('attr', 8).append($ghostOne) - break - case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) - break - } - $gameBoard.append($tile) - } +} + +function moveTopLeft ($ghost) { + var $ghostTile = $ghost.parent() + var $ghostUp = $ghostTile.prevAll().eq(18) + var $ghostLeft = $ghostTile.prev() + var $ghostRight = $ghostTile.next() + var $ghostDown = $ghostTile.nextAll().eq(18) + + if ($ghostUp.data('attr') !== 1) $ghostUp.append($ghost) + else if ($ghostLeft.data('attr') !== 1) $ghostLeft.append($ghost) + else if ($ghostRight.data('attr') !== 1) $ghostRight.append($ghost) + else if ($ghostDown.data('attr') !== 1) $ghostRight.append($ghost) } diff --git a/index.html b/index.html index 259ed293..99d70957 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@

Basic Pac-Man

Instructions

- Controls:
+ Controls
Arrow-Left '◀' : Move 'Left'
Arrow-Right '▶' : Move 'Right'
Arrow-Up '▲' : Move 'Up'
@@ -24,7 +24,7 @@

Instructions

-

Score: 0

+

Score: 0

From 1e1ff594a0fc7bb2dab83b42c93b0e86ce16d143 Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 18:24:16 +0800 Subject: [PATCH 16/55] adding win condition and ghost patrol functions --- assets/js/script.js | 136 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 122 insertions(+), 14 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 902f33d6..d249a77f 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -34,8 +34,12 @@ var pacManSpeed = 600 // ghost variables var ghostMovementMode = 'scatter' var ghostSpeed = 600 +var prevDirOne = [] +var prevDirTwo = [] +var prevDirThree = [] +var prevDirFour = [] // ghost-one variables -var ghostOneTarget +// var ghostOneTarget // ghost-two variables // ghost-three variables @@ -63,14 +67,31 @@ $(function () { $body.on('keydown', (event) => { changeDirection(event) }) // moving ghost-one setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) - // moving ghost-two - + setTimeout(function () { + setInterval(function () { + moveGhost($('#ghost-two')) + }, ghostSpeed) + }, 3000) // moving ghost-three - + setTimeout(function () { + setInterval(function () { + moveGhost($('#ghost-three')) + }, ghostSpeed) + }, 6000) // moving ghost-four - + setTimeout(function () { + setInterval(function () { + moveGhost($('#ghost-four')) + }, ghostSpeed) + }, 9000) // write killScreen function + setInterval(function () { + if (score === 119) { + var $score = $('#score') + $score.text(`You've Won!`) + } + }, 300) } }) }) @@ -193,29 +214,116 @@ function movePacUp () { } function moveGhost ($ghost) { + // jQuery ghost objects var $ghostOne = $('#ghost-one') var $ghostTwo = $('#ghost-two') var $ghostThree = $('#ghost-three') var $ghostFour = $('#ghost-four') - console.log('moving ghost') + switch (true) { - case ($ghost.is($ghostOne)): - console.log('go left') - moveTopLeft($ghost) + case ($ghost.is($ghostOne)): patrolTopLeft($ghost) + break + case ($ghost.is($ghostTwo)): patrolTopRight($ghost) + break + case ($ghost.is($ghostThree)): patrolBottomRight($ghost) + break + case ($ghost.is($ghostFour)): patrolBottomLeft($ghost) + break } +} +function patrolTopLeft ($ghost) { + var $ghostTile = $ghost.parent() + var $ghostUp = $ghostTile.prevAll().eq(18) + var $ghostLeft = $ghostTile.prev() + var $ghostRight = $ghostTile.next() + var $ghostDown = $ghostTile.nextAll().eq(18) + if ($ghostUp.data('attr') !== 1 && prevDirOne[0] !== 'down' && prevDirOne[1] !== 'down') { + prevDirOne.push('up') + $ghostUp.append($ghost) + } else if ($ghostLeft.data('attr') !== 1 && prevDirOne[0] !== 'right' && prevDirOne[1] !== 'right') { + prevDirOne.push('left') + $ghostLeft.append($ghost) + } else if ($ghostRight.data('attr') !== 1 && prevDirOne[0] !== 'left' && prevDirOne[1] !== 'left') { + $ghostRight.append($ghost) + prevDirOne.push('right') + } else if ($ghostDown.data('attr') !== 1 && prevDirOne[0] !== 'up' && prevDirOne[1] !== 'up') { + prevDirOne.push('down') + $ghostDown.append($ghost) + } + // shift entire array left by one element (keeps array 2 elements long) + if (prevDirOne.length > 2) prevDirOne.shift() } -function moveTopLeft ($ghost) { +function patrolTopRight ($ghost) { var $ghostTile = $ghost.parent() var $ghostUp = $ghostTile.prevAll().eq(18) var $ghostLeft = $ghostTile.prev() var $ghostRight = $ghostTile.next() var $ghostDown = $ghostTile.nextAll().eq(18) - if ($ghostUp.data('attr') !== 1) $ghostUp.append($ghost) - else if ($ghostLeft.data('attr') !== 1) $ghostLeft.append($ghost) - else if ($ghostRight.data('attr') !== 1) $ghostRight.append($ghost) - else if ($ghostDown.data('attr') !== 1) $ghostRight.append($ghost) + if ($ghostUp.data('attr') !== 1 && prevDirTwo[0] !== 'down' && prevDirTwo[1] !== 'down') { + prevDirTwo.push('up') + $ghostUp.append($ghost) + } else if ($ghostRight.data('attr') !== 1 && prevDirTwo[0] !== 'left' && prevDirTwo[1] !== 'left') { + $ghostRight.append($ghost) + prevDirTwo.push('right') + } else if ($ghostLeft.data('attr') !== 1 && prevDirTwo[0] !== 'right' && prevDirTwo[1] !== 'right') { + prevDirTwo.push('left') + $ghostLeft.append($ghost) + } else if ($ghostDown.data('attr') !== 1 && prevDirTwo[0] !== 'up' && prevDirTwo[1] !== 'up') { + prevDirTwo.push('down') + $ghostDown.append($ghost) + } + // shift entire array left by one element (keeps array 2 elements long) + if (prevDirTwo.length > 2) prevDirTwo.shift() +} + +function patrolBottomRight ($ghost) { + var $ghostTile = $ghost.parent() + var $ghostUp = $ghostTile.prevAll().eq(18) + var $ghostLeft = $ghostTile.prev() + var $ghostRight = $ghostTile.next() + var $ghostDown = $ghostTile.nextAll().eq(18) + + if ($ghostDown.data('attr') !== 1 && prevDirThree[0] !== 'up' && prevDirThree[1] !== 'up') { + prevDirThree.push('down') + $ghostDown.append($ghost) + } else if ($ghostUp.data('attr') !== 1 && prevDirThree[0] !== 'down' && prevDirThree[1] !== 'down') { + prevDirThree.push('up') + $ghostUp.append($ghost) + } else if ($ghostRight.data('attr') !== 1 && prevDirThree[0] !== 'left' && prevDirThree[1] !== 'left') { + $ghostRight.append($ghost) + prevDirThree.push('right') + } else if ($ghostLeft.data('attr') !== 1 && prevDirThree[0] !== 'right' && prevDirThree[1] !== 'right') { + prevDirThree.push('left') + $ghostLeft.append($ghost) + } + // shift entire array left by one element (keeps array 2 elements long) + if (prevDirThree.length > 2) prevDirThree.shift() +} + +function patrolBottomLeft ($ghost) { + var $ghostTile = $ghost.parent() + var $ghostUp = $ghostTile.prevAll().eq(18) + var $ghostLeft = $ghostTile.prev() + var $ghostRight = $ghostTile.next() + var $ghostDown = $ghostTile.nextAll().eq(18) + + if ($ghostDown.data('attr') !== 1 && prevDirFour[0] !== 'up' && prevDirFour[1] !== 'up') { + prevDirFour.push('down') + $ghostDown.append($ghost) + } else if ($ghostUp.data('attr') !== 1 && prevDirFour[0] !== 'down' && prevDirFour[1] !== 'down') { + prevDirFour.push('up') + $ghostUp.append($ghost) + } else if ($ghostLeft.data('attr') !== 1 && prevDirFour[0] !== 'right' && prevDirFour[1] !== 'right') { + prevDirFour.push('left') + $ghostLeft.append($ghost) + } else if ($ghostRight.data('attr') !== 1 && prevDirFour[0] !== 'left' && prevDirFour[1] !== 'left') { + $ghostRight.append($ghost) + prevDirFour.push('right') + } + // shift entire array left by one element (keeps array 2 elements long) + if (prevDirFour.length > 2) prevDirFour.shift() } From e316a223473884e2cfd2524f3b37efd6f2674123 Mon Sep 17 00:00:00 2001 From: koozy Date: Tue, 3 Oct 2017 20:33:35 +0800 Subject: [PATCH 17/55] fix for bug causing pac-man to consume ghosts unintentionally --- assets/js/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/script.js b/assets/js/script.js index d249a77f..b4f629e7 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -170,7 +170,7 @@ function eatAndChangeScore (tile) { var $score = $('#score') score++ $score.text(`Score: ${score}`) - tile.empty() + tile.find('div:first').remove() } function movePacLeft () { From a50b2d7e84791fa1769a7a8914ec8e29482183a4 Mon Sep 17 00:00:00 2001 From: koozy Date: Wed, 4 Oct 2017 11:57:13 +0800 Subject: [PATCH 18/55] updating win and loss conditions and readme file --- README.md | 2 +- assets/css/stylesheet.css | 1 + assets/js/script.js | 55 +++++++++++++++++++++++++++++++-------- index.html | 4 +-- 4 files changed, 48 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9151bac1..a12d1f66 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molest ## Acknowledgements -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Get dynamically added element by data attribute using jQuery [https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery] + Lorem ipsum dolor sit amet, consectetur adipiscing elit + Lorem ipsum dolor sit amet, consectetur adipiscing elit + Lorem ipsum dolor sit amet, consectetur adipiscing elit diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 6163a53b..cf4af497 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -62,6 +62,7 @@ body { display: flex; justify-content: center; align-items: center; + color: white; } .dots { diff --git a/assets/js/script.js b/assets/js/script.js index b4f629e7..2d52baed 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -31,20 +31,19 @@ var score = 0 // pacman variables var direction = 'left' var pacManSpeed = 600 +var pacManMeetGhost = false +var pacManLives = 3 // ghost variables -var ghostMovementMode = 'scatter' -var ghostSpeed = 600 -var prevDirOne = [] -var prevDirTwo = [] -var prevDirThree = [] -var prevDirFour = [] +var ghostSpeed = 400 +// var ghostMovementMode = 'scatter' // ghost-one variables -// var ghostOneTarget +var prevDirOne = [] // ghost-two variables - +var prevDirTwo = [] // ghost-three variables - +var prevDirThree = [] // ghost-four variables +var prevDirFour = [] $(function () { // write reset function @@ -85,7 +84,27 @@ $(function () { moveGhost($('#ghost-four')) }, ghostSpeed) }, 9000) - // write killScreen function + // lose condiition + setInterval(function () { + // jQuery object variables + var $pacMan = $('#pac-man') + var $score = $('#score') + var $tile = $('.tile') + // targeting pac-man starting tile + var $pacManStart = $tile.filter(function () { return $(this).data('attr') === 9 }) + // checking if pac-man and ghosts occupy the same tile + pacManMeetGhost = checkCollision() + if (pacManMeetGhost) { + // move pacman back to starting + $pacManStart.append($pacMan) + // decrease and updates scoreboard + pacManLives-- + $score.text(`Score: ${score} Lives: ${pacManLives}`) + } + // update loss + if (pacManLives <= 0) $score.text(`You've Lost!`) + }, 400) + // win condition setInterval(function () { if (score === 119) { var $score = $('#score') @@ -169,7 +188,7 @@ function changeDirection (event) { function eatAndChangeScore (tile) { var $score = $('#score') score++ - $score.text(`Score: ${score}`) + $score.text(`Score: ${score} Lives: ${pacManLives}`) tile.find('div:first').remove() } @@ -327,3 +346,17 @@ function patrolBottomLeft ($ghost) { // shift entire array left by one element (keeps array 2 elements long) if (prevDirFour.length > 2) prevDirFour.shift() } + +function checkCollision () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + + // return true if pacman's parent tile contains any of the ghosts + switch (true) { + case ($pacManTile.has('#ghost-one').length > 0): + case ($pacManTile.has('#ghost-two').length > 0): + case ($pacManTile.has('#ghost-three').length > 0): + case ($pacManTile.has('#ghost-four').length > 0): + return true + } +} diff --git a/index.html b/index.html index 99d70957..507d655d 100644 --- a/index.html +++ b/index.html @@ -22,13 +22,13 @@

Instructions

< Hit Enter to begin >

+
-

Score: 0

+

Score: 0 Lives: 3

- From 25b6182e069ea89762a3b3156d28ad1b146dcdf9 Mon Sep 17 00:00:00 2001 From: koozy Date: Wed, 4 Oct 2017 12:07:23 +0800 Subject: [PATCH 19/55] fixing bug causing ghost to skip over pacman --- assets/js/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/js/script.js b/assets/js/script.js index 2d52baed..06f7a6d5 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -99,11 +99,12 @@ $(function () { $pacManStart.append($pacMan) // decrease and updates scoreboard pacManLives-- + pacManMeetGhost = false $score.text(`Score: ${score} Lives: ${pacManLives}`) } // update loss if (pacManLives <= 0) $score.text(`You've Lost!`) - }, 400) + }, 100) // win condition setInterval(function () { if (score === 119) { From 509ba056f79cfa282e58c82accd9dace6a80dddf Mon Sep 17 00:00:00 2001 From: koozy Date: Wed, 4 Oct 2017 14:41:50 +0800 Subject: [PATCH 20/55] adding ghost images, updating readme --- README.md | 4 ++-- assets/css/stylesheet.css | 48 +++++++++++++++++++++++++------------- assets/images/ghosts.jpg | Bin 0 -> 16770 bytes assets/js/script.js | 4 ++-- index.html | 1 + 5 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 assets/images/ghosts.jpg diff --git a/README.md b/README.md index a12d1f66..ac5fcb31 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molest ## Acknowledgements -+ Get dynamically added element by data attribute using jQuery [https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery] -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ Font https://fonts.googleapis.com/css?family=Bungee ++ Get dynamically added element by data attribute using jQuery https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery + Lorem ipsum dolor sit amet, consectetur adipiscing elit + Lorem ipsum dolor sit amet, consectetur adipiscing elit diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index cf4af497..e50e4d66 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -3,10 +3,12 @@ body { height: 100%; width: 100%; overflow: hidden; + font-family: "Bungee", cursive; } .container { - border: 1px solid red; + /*border: 1px solid red;*/ + background-color: red; width: 1000px; max-width: 90vw; height: 720px; @@ -18,7 +20,8 @@ body { } .window { - border: 1px solid blue; + /*border: 1px solid blue;*/ + background-color: black; width: 800px; max-width: 80vw; height: 600px; @@ -30,7 +33,8 @@ body { } .game-board { - border: 1px solid green; + /*border: 1px solid green;*/ + background-color: #000066; width: 570px; height: 540px; margin: 0 auto; @@ -43,7 +47,8 @@ body { } .instruction-panel { - border: 1px solid purple; + /*border: 1px solid purple;*/ + background-color: #404040; display: flex; justify-content: center; flex-direction: column; @@ -51,11 +56,12 @@ body { } .score-board { - border: 1px solid cyan; + /*border: 1px solid cyan;*/ + background-color: cyan; margin: 0px; padding: 0px; height: 50px; - visibility: hidden; + /*visibility: hidden;*/ } .tile { @@ -66,39 +72,48 @@ body { } .dots { - width: 10px; - height: 10px; - border-radius: 5px; - background-color: yellow; + width: 8px; + height: 8px; + border-radius: 4px; + background-color: #FFCC00; } .character { width: 28px; height: 28px; - border-radius: 14px; } #pac-man { background-color: yellow; + border-radius: 14px; } #ghost-one { - background-color: red; + background: url("/assets/images/ghosts.jpg"); + background-position: -33px -35px; + background-size: 230%; position: absolute; } #ghost-two { - background-color: pink; + background: url("/assets/images/ghosts.jpg"); + background-position: -3px -35px; + background-size: 230%; position: absolute; } #ghost-three { - background-color: orange; + background: url("/assets/images/ghosts.jpg"); + background-position: -3px -7px; + background-size: 230%; position: absolute; } #ghost-four { - background-color: cyan; + /*background-color: cyan;*/ + background: url("/assets/images/ghosts.jpg"); + background-position: -33px -7px; + background-size: 230%; position: absolute; } @@ -113,6 +128,7 @@ h2 { font-weight: 400; text-align: center; text-transform: uppercase; + color: #FFCC00; } h3 { @@ -141,6 +157,6 @@ strong { font-size: 30px; font-weight: 400; line-height: 40px; - color: green; + color: #FFCC00; text-transform: uppercase; } diff --git a/assets/images/ghosts.jpg b/assets/images/ghosts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8cb2b0eb39a6044097d78bfd513d0ecb871e3f5d GIT binary patch literal 16770 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 literal 0 HcmV?d00001 diff --git a/assets/js/script.js b/assets/js/script.js index 06f7a6d5..6e0cf712 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -125,8 +125,8 @@ function loadAssets (tileSet) { var $ghostFour = $('
') // objects to store css properties for tiles - var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } - var blueTile = { 'background-color': 'blue', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } + var blueTile = { 'background-color': '#000066', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } var yellowTile = { 'background-color': 'yellow', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } // loop through tileSet array and generate map as well as load characters diff --git a/index.html b/index.html index 507d655d..acc6892e 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,7 @@ Basic Pac-Man +
From 1628c10f9e955e038fb22a34ee6b15f1e8fa4646 Mon Sep 17 00:00:00 2001 From: koozy Date: Wed, 4 Oct 2017 18:12:12 +0800 Subject: [PATCH 21/55] add css styling, create win and lose panel --- assets/css/stylesheet.css | 110 ++++++++++++++++++++++++++++++++------ assets/images/pacman.png | Bin 0 -> 14740 bytes assets/js/script.js | 17 +++--- index.html | 33 +++++++++--- 4 files changed, 128 insertions(+), 32 deletions(-) create mode 100644 assets/images/pacman.png diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index e50e4d66..2b28d9e3 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -1,14 +1,19 @@ body { margin: 0; - height: 100%; - width: 100%; + height: 100vh; + width: 100vw; overflow: hidden; font-family: "Bungee", cursive; + background-color: black; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } .container { /*border: 1px solid red;*/ - background-color: red; + /*background-color: red;*/ width: 1000px; max-width: 90vw; height: 720px; @@ -16,7 +21,7 @@ body { margin: 0 auto; display: flex; flex-direction: column; - justify-content: center; + justify-content: space-around; } .window { @@ -24,44 +29,80 @@ body { background-color: black; width: 800px; max-width: 80vw; - height: 600px; + height: 700px; max-height: 80vh; margin: 0 auto; display: flex; flex-direction: column; - justify-content: center; + justify-content: space-around; } .game-board { /*border: 1px solid green;*/ - background-color: #000066; + background-color: black; width: 570px; height: 540px; + max-width: 70vw; + max-height: 70vh; margin: 0 auto; - position: relative; display: flex; flex-wrap: wrap; align-content: flex-start; - max-width: 70vw; - max-height: 70vh; + position: relative; } .instruction-panel { /*border: 1px solid purple;*/ background-color: #404040; + width: 570px; + height: 540px; + max-width: 70vw; + max-height: 70vh; + margin: 0 auto; display: flex; justify-content: center; flex-direction: column; - margin: 0 auto; + /*display: none;*/ } .score-board { /*border: 1px solid cyan;*/ - background-color: cyan; + background-color: #2D47DD; margin: 0px; padding: 0px; height: 50px; - /*visibility: hidden;*/ + display: flex; + justify-content: space-between; + align-items: center; + visibility: hidden; +} + +.win-panel { + background-color: #404040; + width: 570px; + height: 540px; + max-width: 70vw; + max-height: 70vh; + margin: 0 auto; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + display: none; +} + +.lose-panel { + background-color: #404040; + width: 570px; + height: 540px; + max-width: 70vw; + max-height: 70vh; + margin: 0 auto; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + display: none; } .tile { @@ -75,7 +116,7 @@ body { width: 8px; height: 8px; border-radius: 4px; - background-color: #FFCC00; + background-color: #F8C6AB; } .character { @@ -121,6 +162,7 @@ h1 { font-size: 50px; font-weight: 500; text-align: center; + color: #FFCC00; } h2 { @@ -133,24 +175,49 @@ h2 { h3 { font-size: 40px; - font-weight: 400; + font-weight: 400;' text-align: center; text-transform: uppercase; + color: #99ccff; margin: 5px; } p { - font-size: 20px; - line-height: 26px; + font-size: 16px; + line-height: 30px; text-align: center; + color: #99ccff; margin: 20px; } +span { + font-size: 26px; + line-height: 40px; +} + strong { font-size: 30px; font-weight: 400; line-height: 50px; text-transform: uppercase; + color: #FFCC00; +} + +.lives-container { + width: 300px; + height: 40px; + display: flex; + align-items: center; + justify-content: flex-start; +} + +.lives { + width: 40px; + height: 40px; + margin-right: 5px; + background-image: url("/assets/images/pacman.png"); + background-size: 100% 100%; + transform: scaleX(-1); } .hit-enter { @@ -159,4 +226,13 @@ strong { line-height: 40px; color: #FFCC00; text-transform: uppercase; + /*animation-name: blink; + animation-duration: 1s; + animation-iteration-count: infinite;*/ + animation: blink 0.6s ease-in infinite; +} + +@keyframes blink { + 0% { color: black; } + 100% { color: #FFCC00; } } diff --git a/assets/images/pacman.png b/assets/images/pacman.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b69482e49fe77fe8e2f370009884e5e4939406 GIT binary patch literal 14740 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 X4{~mo2mJxpEMaIPE5k?UJ>&lmX$y@y literal 0 HcmV?d00001 diff --git a/assets/js/script.js b/assets/js/script.js index 6e0cf712..d52d7746 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -25,6 +25,7 @@ var $body = $('body') var $gameBoard = $('.game-board') var $instructionPanel = $('.instruction-panel') var $scoreBoard = $('.score-board') +var $livesContainer = $('.lives-container') // game variables var score = 0 @@ -88,7 +89,7 @@ $(function () { setInterval(function () { // jQuery object variables var $pacMan = $('#pac-man') - var $score = $('#score') + var $score = $('.score') var $tile = $('.tile') // targeting pac-man starting tile var $pacManStart = $tile.filter(function () { return $(this).data('attr') === 9 }) @@ -100,7 +101,7 @@ $(function () { // decrease and updates scoreboard pacManLives-- pacManMeetGhost = false - $score.text(`Score: ${score} Lives: ${pacManLives}`) + $livesContainer.children().last().remove() } // update loss if (pacManLives <= 0) $score.text(`You've Lost!`) @@ -108,7 +109,7 @@ $(function () { // win condition setInterval(function () { if (score === 119) { - var $score = $('#score') + var $score = $('.score') $score.text(`You've Won!`) } }, 300) @@ -125,9 +126,9 @@ function loadAssets (tileSet) { var $ghostFour = $('
') // objects to store css properties for tiles - var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } - var blueTile = { 'background-color': '#000066', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } - var yellowTile = { 'background-color': 'yellow', 'height': '28px', 'width': '28px', 'border': '1px solid yellow' } + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } + var blueTile = { 'background-color': '#2D47DD', 'height': '28px', 'width': '28px', 'border': '1px solid #3366FF' } + var yellowTile = { 'background-color': '#FFCC00', 'height': '5px', 'width': '30px' } // loop through tileSet array and generate map as well as load characters for (var i = 0; i < tileSet.length; i++) { @@ -187,9 +188,9 @@ function changeDirection (event) { } function eatAndChangeScore (tile) { - var $score = $('#score') + var $score = $('.score') score++ - $score.text(`Score: ${score} Lives: ${pacManLives}`) + $score.text(`Score: ${score}`) tile.find('div:first').remove() } diff --git a/index.html b/index.html index acc6892e..0ee1923e 100644 --- a/index.html +++ b/index.html @@ -15,18 +15,37 @@

Basic Pac-Man

Instructions

- Controls
- Arrow-Left '◀' : Move 'Left'
- Arrow-Right '▶' : Move 'Right'
- Arrow-Up '▲' : Move 'Up'
- Arrow-Down '▼' : Move 'Down' + Navigate Pac-Man through a maze of Pac-Dots.
+ The goal of the game is to consume all the Pac-Dots.
+ If any of the ghosts touch Pac-Man, he loses a life.
+ when all lives have been lost, the game ends.
+ Change Directions
+ + Arrow-Left '◀' : Move 'Left'
+ Arrow-Right '▶' : Move 'Right'
+ Arrow-Up '▲' : Move 'Up'
+ Arrow-Down '▼' : Move 'Down' +

< Hit Enter to begin >

- +
+

You Win!

+

Score: 0

+
+
+

You Lose!

+

< Hit enter to try again >

+
-

Score: 0 Lives: 3

+

Score: 0

+
+

Lives:

+
+
+
+
From 44820479695de713e0ae8a5d14a57da28778b81d Mon Sep 17 00:00:00 2001 From: koozy Date: Wed, 4 Oct 2017 19:33:38 +0800 Subject: [PATCH 22/55] added win-lose logic, styling --- assets/css/stylesheet.css | 8 +++++--- assets/js/script.js | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 2b28d9e3..db05be55 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -49,6 +49,7 @@ body { flex-wrap: wrap; align-content: flex-start; position: relative; + /*display: none;*/ } .instruction-panel { @@ -62,7 +63,6 @@ body { display: flex; justify-content: center; flex-direction: column; - /*display: none;*/ } .score-board { @@ -88,7 +88,8 @@ body { justify-content: center; align-items: center; flex-direction: column; - display: none; + position: absolute; + z-index: 1; } .lose-panel { @@ -102,7 +103,8 @@ body { justify-content: center; align-items: center; flex-direction: column; - display: none; + position: absolute; + z-index: 1; } .tile { diff --git a/assets/js/script.js b/assets/js/script.js index d52d7746..a7a28889 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -24,6 +24,8 @@ var tileSet = [ var $body = $('body') var $gameBoard = $('.game-board') var $instructionPanel = $('.instruction-panel') +var $winPanel = $('.win-panel') +var $losePanel = $('.lose-panel') var $scoreBoard = $('.score-board') var $livesContainer = $('.lives-container') @@ -47,6 +49,8 @@ var prevDirThree = [] var prevDirFour = [] $(function () { + $winPanel.hide() + $losePanel.hide() // write reset function // write ifGameOver function @@ -55,7 +59,9 @@ $(function () { $body.on('keyup', (event) => { if (event.key === 'Enter') { // hide instructions - $instructionPanel.css('display', 'none') + $instructionPanel.hide() + + // show score-board $scoreBoard.css('visibility', 'visible') // load assets loadAssets(tileSet) @@ -104,13 +110,18 @@ $(function () { $livesContainer.children().last().remove() } // update loss - if (pacManLives <= 0) $score.text(`You've Lost!`) + if (pacManLives <= 0) { + $scoreBoard.css('visibility', 'hidden') + $winPanel.hide() + $losePanel.show() + } }, 100) // win condition setInterval(function () { if (score === 119) { - var $score = $('.score') - $score.text(`You've Won!`) + $scoreBoard.css('visibility', 'hidden') + $losePanel.hide() + $winPanel.show() } }, 300) } From 80ec2d3d84b3f71c4b4d33b134913536c6ab00ff Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 11:01:24 +0800 Subject: [PATCH 23/55] updating readme, editing index.html --- README.md | 177 ++++++++++++++++++++++++++++++++++++++++++++++------- index.html | 3 +- 2 files changed, 157 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index ac5fcb31..8b6fcc35 100644 --- a/README.md +++ b/README.md @@ -3,45 +3,178 @@ flowchart.png + ## Overview The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. -## - -## Challenges +## Considerations -+ Create logic for ghosts to actively chase Pac-Man instead of moving randomly -+ Create logic to implement Power Pellets that provide Pac-Man with the ability to eat the ghosts and earn bonus points ++ Grid-style layout VS open game board while actively checking for collision at set intervals. ++ Since game board is reasonably small, a grid-style layout is used to reduce the amount of resources consumed by the game ++ Constantly checking for collision against all elements VS checking if the target tile is valid at the point of movement. ++ Also makes generating the game assets easier. -## Collision Logic +## Loading Game Assets -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. +A 19x18 array containing numbers between 0 - 9 is used to generate the game board. Each number denotes which assets to generate as well as mark out the location of the Pac-Dots, Pac Man and the four Ghosts. A loop is used to go through the array and generate the game assets. -## Pac-Man Movement +## Collision Logic -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. +Basic Pac Man is created with a grid-style layout. No collision algorithms are used. Each individual tile has it's own data attribute, denoting whether it is a tile which the 5 characters can enter. Checking whether Pac Man touches any of the four Ghosts or the Pac-Dots is a simple check for whether any of other elements inhabit the same tile as Pac Man. + +Below is a code snippet: + +``` javascript +function checkCollision () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + + // return true if pacman's parent tile contains any of the ghosts + switch (true) { + case ($pacManTile.has('#ghost-one').length > 0): + case ($pacManTile.has('#ghost-two').length > 0): + case ($pacManTile.has('#ghost-three').length > 0): + case ($pacManTile.has('#ghost-four').length > 0): + return true + } +} +``` + + +## Moving Pac-Man + +To move Pac Man through the grid, the game first gets the tile which Pac-Man is inhabiting. Depending on which tile Pac Man is trying to move into, the game then gets the target tile and checks it's data attribute to determine if the tile selected is a valid tile. Event handlers are used to change Pac Man's direction depending on which ArrowKey is hit. + +Below are some code snippet: + +``` javascript +// Moving Pac Man +setInterval(function () { movePacMan() }, pacManSpeed) + +// Moving Pac Man +function movePacMan () { + switch (direction) { + case 'left': movePacLeft() + break + case 'right': movePacRight() + break + case 'up': movePacUp() + break + case 'down': movePacDown() + break + } +} + +// Move Left +function movePacLeft () { + var $pacMan = $('#pac-man') + var $pacManTile = $pacMan.parent() + var $pacManLeft = $pacManTile.prev() + // check if tile has dots + if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) + // check if pac-man can move into tile + if ($pacManLeft.data('attr') !== 1 && $pacManLeft.data('attr') !== 8) $pacManLeft.append($pacMan) +} + +// Switching Directions +$body.on('keydown', (event) => { changeDirection(event) }) + +// Switching Directions +function changeDirection (event) { + switch (event.key) { + case 'ArrowUp': direction = 'up' + break + case 'ArrowRight': direction = 'right' + break + case 'ArrowDown': direction = 'down' + break + case 'ArrowLeft': direction = 'left' + break + } +} +``` ## Ghosts Movement -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt molestie risus, ac ultricies mi consectetur ac. Maecenas risus massa, placerat vitae magna vel, imperdiet lacinia augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce a lacinia turpis. Donec dolor quam, hendrerit at auctor id, hendrerit in purus. Etiam dui dolor, finibus eu dolor et, pretium tristique orci. +Ghosts movement use the same logic as Pac Man. Initial parent tile of the ghost is captured, then the target tile is evaluated if it is a viable tile. + +However, ghosts movement has to be automated. Four separate patrol functions were created and assigned to each of the four ghosts. + +Below are some code snippets: + +``` javascript +// Ghost Variables +var ghostSpeed = 400 + +// Moving Ghost One +setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) + +// Assigning Patrol Function +function moveGhost ($ghost) { + // jQuery ghost objects + var $ghostOne = $('#ghost-one') + var $ghostTwo = $('#ghost-two') + var $ghostThree = $('#ghost-three') + var $ghostFour = $('#ghost-four') + + switch (true) { + case ($ghost.is($ghostOne)): patrolTopLeft($ghost) + break + case ($ghost.is($ghostTwo)): patrolTopRight($ghost) + break + case ($ghost.is($ghostThree)): patrolBottomRight($ghost) + break + case ($ghost.is($ghostFour)): patrolBottomLeft($ghost) + break + } +} + +// ghost-one variables +var prevDirOne = [] + +// Patrol Top Left Corner Function Assigned to Ghost One +function patrolTopLeft ($ghost) { + var $ghostTile = $ghost.parent() + var $ghostUp = $ghostTile.prevAll().eq(18) + var $ghostLeft = $ghostTile.prev() + var $ghostRight = $ghostTile.next() + var $ghostDown = $ghostTile.nextAll().eq(18) + + if ($ghostUp.data('attr') !== 1 && prevDirOne[0] !== 'down' && prevDirOne[1] !== 'down') { + prevDirOne.push('up') + $ghostUp.append($ghost) + } else if ($ghostLeft.data('attr') !== 1 && prevDirOne[0] !== 'right' && prevDirOne[1] !== 'right') { + prevDirOne.push('left') + $ghostLeft.append($ghost) + } else if ($ghostRight.data('attr') !== 1 && prevDirOne[0] !== 'left' && prevDirOne[1] !== 'left') { + $ghostRight.append($ghost) + prevDirOne.push('right') + } else if ($ghostDown.data('attr') !== 1 && prevDirOne[0] !== 'up' && prevDirOne[1] !== 'up') { + prevDirOne.push('down') + $ghostDown.append($ghost) + } + // shift entire array left by one element (keeps array 2 elements long) + if (prevDirOne.length > 2) prevDirOne.shift() +} +``` + +## Reflections + ++ Creating a character class which stores the position of the character's parent tile as well as a method to get and store the 4 adjacent tiles will reduce the amount of code repetition. ++ Refactor the function to change Pac Man's directions and move Pac Man into one function. ++ Instead of having four separate functions to move Pac Man (one for each direction), refactor into one function which takes a direction argument. ++ Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). ++ Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. ++ Plan further ahead. Some features were not implemented due to time constraints (Countdown timer before starting, Restart, Ghosts Chase mode, Power Pellets). ## Resources -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit - - -## Acknowledgements - -+ Font https://fonts.googleapis.com/css?family=Bungee -+ Get dynamically added element by data attribute using jQuery https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit -+ Lorem ipsum dolor sit amet, consectetur adipiscing elit ++ [Get dynamically added element by data attribute using jQuery](https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery) ++ [Ghost Behaviour](http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior) ++ [Font](https://fonts.googleapis.com/css?family=Bungee) diff --git a/index.html b/index.html index 0ee1923e..16b36fc3 100644 --- a/index.html +++ b/index.html @@ -32,10 +32,11 @@

Instructions

You Win!

Score: 0

+

< Refresh to play again >

You Lose!

-

< Hit enter to try again >

+

< Refresh to try again >

From 13d7a9016a953b9e5d3d1817dbd40f36f32a99ff Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 11:02:17 +0800 Subject: [PATCH 24/55] update readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b6fcc35..630df25f 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ ## Overview +This is a simplified version of Pac Man. + The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. From d130b7aa0ab11a28fc11fd469c2ebc307015bf30 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 11:06:34 +0800 Subject: [PATCH 25/55] updating loadAssets function to avoid creating unnecessary .dot elements --- assets/js/script.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index a7a28889..5f61876b 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -145,11 +145,12 @@ function loadAssets (tileSet) { for (var i = 0; i < tileSet.length; i++) { // create new
for tiles and dots var $tile = $('
') - var $dots = $('
') // setting tile properties and adding characters switch (tileSet[i]) { - case 0: $tile.css(blackTile).data('attr', 0).append($dots) + case 0: + var $dots = $('
') // only create dots if tile can contain one + $tile.css(blackTile).data('attr', 0).append($dots) break case 1: $tile.css(blueTile).data('attr', 1) break From eccb95e906cbee76fe94065af943fb6a276ce8e3 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 11:07:40 +0800 Subject: [PATCH 26/55] update readme --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/README.md b/README.md index 630df25f..aae5a5da 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,55 @@ The player controls Pac-Man through a maze of various dots, as well as four mult A 19x18 array containing numbers between 0 - 9 is used to generate the game board. Each number denotes which assets to generate as well as mark out the location of the Pac-Dots, Pac Man and the four Ghosts. A loop is used to go through the array and generate the game assets. +Below is a code snippet: + +``` javascript +function loadAssets (tileSet) { + // creating pac-man and ghosts + var $pacMan = $('
') + var $ghostOne = $('
') + var $ghostTwo = $('
') + var $ghostThree = $('
') + var $ghostFour = $('
') + + // objects to store css properties for tiles + var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } + var blueTile = { 'background-color': '#2D47DD', 'height': '28px', 'width': '28px', 'border': '1px solid #3366FF' } + var yellowTile = { 'background-color': '#FFCC00', 'height': '5px', 'width': '30px' } + + // loop through tileSet array and generate map as well as load characters + for (var i = 0; i < tileSet.length; i++) { + // create new
for tiles and dots + var $tile = $('
') + + // setting tile properties and adding characters + switch (tileSet[i]) { + case 0: + var $dots = $('
') // only create dots if tile can contain one + $tile.css(blackTile).data('attr', 0).append($dots) + break + case 1: $tile.css(blueTile).data('attr', 1) + break + case 2: $tile.css(blackTile).data('attr', 2) + break + case 3: $tile.css(blackTile).data('attr', 3) + break + case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) + break + case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) + break + case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) + break + case 8: $tile.css(yellowTile).data('attr', 8).append($ghostOne) + break + case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) + break + } + $gameBoard.append($tile) + } +} +``` + ## Collision Logic From b502f00770f9ba5b37be3fc836a67f1cd927ee16 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 11:43:16 +0800 Subject: [PATCH 27/55] fixing bug causing additional game assets to load upon game start --- assets/js/script.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 5f61876b..2e95dae6 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -28,9 +28,11 @@ var $winPanel = $('.win-panel') var $losePanel = $('.lose-panel') var $scoreBoard = $('.score-board') var $livesContainer = $('.lives-container') +var $tiles = $('.tile') // game variables var score = 0 +var isGameOver = false // pacman variables var direction = 'left' var pacManSpeed = 600 @@ -51,22 +53,18 @@ var prevDirFour = [] $(function () { $winPanel.hide() $losePanel.hide() - // write reset function - - // write ifGameOver function // hit enter to start $body.on('keyup', (event) => { if (event.key === 'Enter') { + $body.off() + isGameOver = false // hide instructions $instructionPanel.hide() - // show score-board $scoreBoard.css('visibility', 'visible') // load assets loadAssets(tileSet) - // write countdown function - // moving pacman setInterval(function () { movePacMan() }, pacManSpeed) // switching directions @@ -95,7 +93,6 @@ $(function () { setInterval(function () { // jQuery object variables var $pacMan = $('#pac-man') - var $score = $('.score') var $tile = $('.tile') // targeting pac-man starting tile var $pacManStart = $tile.filter(function () { return $(this).data('attr') === 9 }) @@ -114,6 +111,7 @@ $(function () { $scoreBoard.css('visibility', 'hidden') $winPanel.hide() $losePanel.show() + isGameOver = true } }, 100) // win condition @@ -122,8 +120,13 @@ $(function () { $scoreBoard.css('visibility', 'hidden') $losePanel.hide() $winPanel.show() + isGameOver = true } }, 300) + // clearing game board + if (isGameOver) { + $tiles.remove() + } } }) }) From 5b31df74d7887c584a1e5e8419b600de0a837dca Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 12:16:48 +0800 Subject: [PATCH 28/55] updating readme, adding countdown timer to game start --- README.md | 2 +- assets/css/stylesheet.css | 19 +++++++++++++++++ assets/js/script.js | 44 +++++++++++++++++++++++++++++++-------- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index aae5a5da..b0b544cc 100644 --- a/README.md +++ b/README.md @@ -221,7 +221,7 @@ function patrolTopLeft ($ghost) { + Instead of having four separate functions to move Pac Man (one for each direction), refactor into one function which takes a direction argument. + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. -+ Plan further ahead. Some features were not implemented due to time constraints (Countdown timer before starting, Restart, Ghosts Chase mode, Power Pellets). ++ Plan further ahead. Some features were not implemented due to time constraints (Restart, Ghosts Chase mode, Power Pellets). ## Resources diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index db05be55..08b3634f 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -107,6 +107,25 @@ body { z-index: 1; } +.timer { + height: 60px; + width: 60px; + top: 300px; + left: 250px; + display: flex; + justify-content: center; + align-items: center; + position: absolute; + z-index: 2; +} + +#time { + font-size: 60px; + color: #FFCC00; + position: absolute; + z-index: 3; +} + .tile { display: flex; justify-content: center; diff --git a/assets/js/script.js b/assets/js/script.js index 2e95dae6..c6fb839c 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -65,30 +65,36 @@ $(function () { $scoreBoard.css('visibility', 'visible') // load assets loadAssets(tileSet) + // countdown to game start + countDown() // moving pacman - setInterval(function () { movePacMan() }, pacManSpeed) + setTimeout(function () { + setInterval(function () { movePacMan() }, pacManSpeed) + }, 3000) // switching directions - $body.on('keydown', (event) => { changeDirection(event) }) + setTimeout(function () { + $body.on('keydown', (event) => { changeDirection(event) }) + }, 3000) // moving ghost-one - setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) - // moving ghost-two setTimeout(function () { - setInterval(function () { - moveGhost($('#ghost-two')) - }, ghostSpeed) + setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) + // moving ghost-two + setTimeout(function () { + setInterval(function () { moveGhost($('#ghost-two')) }, ghostSpeed) + }, 6000) // moving ghost-three setTimeout(function () { setInterval(function () { moveGhost($('#ghost-three')) }, ghostSpeed) - }, 6000) + }, 9000) // moving ghost-four setTimeout(function () { setInterval(function () { moveGhost($('#ghost-four')) }, ghostSpeed) - }, 9000) + }, 12000) // lose condiition setInterval(function () { // jQuery object variables @@ -176,6 +182,26 @@ function loadAssets (tileSet) { } } +function countDown () { + var $timer = $('
') + var $time = $('

') + var time = 3 + $time.text(time) + $timer.append($time) + $gameBoard.append($timer) + console.log('timer called') + + var countdown = setInterval(function () { + console.log(time) + time-- + $time.text(time) + if (time === 0) { + $timer.remove() + clearInterval(countdown) + } + }, 1000) +} + function movePacMan () { switch (direction) { case 'left': movePacLeft() From 86d2692bb0536b6e676cd68f567b51fb084b5b77 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 12:21:59 +0800 Subject: [PATCH 29/55] updating readme --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0b544cc..5844f0c6 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,9 @@ Below are some code snippet: ``` javascript // Moving Pac Man -setInterval(function () { movePacMan() }, pacManSpeed) +setTimeout(function () { + setInterval(function () { movePacMan() }, pacManSpeed) +}, 3000) // Moving Pac Man function movePacMan () { @@ -163,7 +165,9 @@ Below are some code snippets: var ghostSpeed = 400 // Moving Ghost One -setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) +setTimeout(function () { + setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) +}, 3000) // Assigning Patrol Function function moveGhost ($ghost) { From 8a48457ad5e3c793ec4cb0ef7fbdc0d7ca58759d Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 12:33:29 +0800 Subject: [PATCH 30/55] refactoring script.js (combine setIntervals), updating readme --- README.md | 15 ++++++++++----- assets/js/script.js | 10 +++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5844f0c6..b4ff17bb 100644 --- a/README.md +++ b/README.md @@ -103,9 +103,13 @@ To move Pac Man through the grid, the game first gets the tile which Pac-Man is Below are some code snippet: ``` javascript -// Moving Pac Man setTimeout(function () { + // Moving Pac Man setInterval(function () { movePacMan() }, pacManSpeed) + // switching directions + $body.on('keydown', (event) => { changeDirection(event) }) + // moving ghost-one + setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) // Moving Pac Man @@ -133,9 +137,6 @@ function movePacLeft () { if ($pacManLeft.data('attr') !== 1 && $pacManLeft.data('attr') !== 8) $pacManLeft.append($pacMan) } -// Switching Directions -$body.on('keydown', (event) => { changeDirection(event) }) - // Switching Directions function changeDirection (event) { switch (event.key) { @@ -164,8 +165,12 @@ Below are some code snippets: // Ghost Variables var ghostSpeed = 400 -// Moving Ghost One setTimeout(function () { + // Moving Pac Man + setInterval(function () { movePacMan() }, pacManSpeed) + // Switching Directions + $body.on('keydown', (event) => { changeDirection(event) }) + // Moving Ghost One setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) diff --git a/assets/js/script.js b/assets/js/script.js index c6fb839c..43a9c6a3 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -67,16 +67,12 @@ $(function () { loadAssets(tileSet) // countdown to game start countDown() - // moving pacman setTimeout(function () { + // moving pacman setInterval(function () { movePacMan() }, pacManSpeed) - }, 3000) - // switching directions - setTimeout(function () { + // switching directions $body.on('keydown', (event) => { changeDirection(event) }) - }, 3000) - // moving ghost-one - setTimeout(function () { + // moving ghost-one setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) // moving ghost-two From 59358f0e4449d5196502409733d647d4fb646c6f Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 12:57:41 +0800 Subject: [PATCH 31/55] fixing bug causing tiles to not be cleared upon gameover --- assets/js/script.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 43a9c6a3..5d9e59ab 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -37,7 +37,7 @@ var isGameOver = false var direction = 'left' var pacManSpeed = 600 var pacManMeetGhost = false -var pacManLives = 3 +var pacManLives = 1 // ghost variables var ghostSpeed = 400 // var ghostMovementMode = 'scatter' @@ -126,9 +126,12 @@ $(function () { } }, 300) // clearing game board - if (isGameOver) { - $tiles.remove() - } + var clear = setInterval(function () { + if (isGameOver) { + $tiles.remove() + clearInterval(clear) + } + }, 300) } }) }) @@ -185,10 +188,8 @@ function countDown () { $time.text(time) $timer.append($time) $gameBoard.append($timer) - console.log('timer called') var countdown = setInterval(function () { - console.log(time) time-- $time.text(time) if (time === 0) { From ef02ca95c49aab26dd8a6533fd1ced4b685f84a3 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 13:10:23 +0800 Subject: [PATCH 32/55] updating readme, adding refresh feature (need to create proper restart) --- README.md | 2 +- assets/js/script.js | 4 +++- index.html | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b4ff17bb..abc047b4 100644 --- a/README.md +++ b/README.md @@ -230,7 +230,7 @@ function patrolTopLeft ($ghost) { + Instead of having four separate functions to move Pac Man (one for each direction), refactor into one function which takes a direction argument. + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. -+ Plan further ahead. Some features were not implemented due to time constraints (Restart, Ghosts Chase mode, Power Pellets). ++ Plan further ahead. Some features were not implemented due to time constraints (Proper restart function, Ghosts Chase mode, Power Pellets). ## Resources diff --git a/assets/js/script.js b/assets/js/script.js index 5d9e59ab..d9031b56 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -37,7 +37,7 @@ var isGameOver = false var direction = 'left' var pacManSpeed = 600 var pacManMeetGhost = false -var pacManLives = 1 +var pacManLives = 3 // ghost variables var ghostSpeed = 400 // var ghostMovementMode = 'scatter' @@ -132,6 +132,8 @@ $(function () { clearInterval(clear) } }, 300) + // reloads window to restart game + $body.on('keydown', (event) => { if (isGameOver && event.key === ' ') this.location.reload() }) } }) }) diff --git a/index.html b/index.html index 16b36fc3..589002d6 100644 --- a/index.html +++ b/index.html @@ -32,11 +32,11 @@

Instructions

You Win!

Score: 0

-

< Refresh to play again >

+

< Hit Spacebar to play again >

You Lose!

-

< Refresh to try again >

+

< Hit Spacebar to try again >

From c3a412c01b4493f65cc1ab32fcce80c40f191c8d Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 13:42:33 +0800 Subject: [PATCH 33/55] update links --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 589002d6..e95e0342 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,8 @@ Basic Pac-Man - - + + @@ -51,6 +51,6 @@

Lives:

- + From 6213ef822ae0f4db1763f3e092cb140fb938b1e4 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 13:43:27 +0800 Subject: [PATCH 34/55] update links --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index e95e0342..6490e70f 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,8 @@ Basic Pac-Man - - + + @@ -51,6 +51,6 @@

Lives:

- + From ed033ff2366d2b847a6fdb6446ce8c86331859c1 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 14:05:55 +0800 Subject: [PATCH 35/55] update css --- assets/css/stylesheet.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 08b3634f..eca9690d 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -151,21 +151,21 @@ body { } #ghost-one { - background: url("/assets/images/ghosts.jpg"); + background: url("./assets/images/ghosts.jpg"); background-position: -33px -35px; background-size: 230%; position: absolute; } #ghost-two { - background: url("/assets/images/ghosts.jpg"); + background: url("./assets/images/ghosts.jpg"); background-position: -3px -35px; background-size: 230%; position: absolute; } #ghost-three { - background: url("/assets/images/ghosts.jpg"); + background: url("./assets/images/ghosts.jpg"); background-position: -3px -7px; background-size: 230%; position: absolute; @@ -173,7 +173,7 @@ body { #ghost-four { /*background-color: cyan;*/ - background: url("/assets/images/ghosts.jpg"); + background: url("./assets/images/ghosts.jpg"); background-position: -33px -7px; background-size: 230%; position: absolute; @@ -236,7 +236,7 @@ strong { width: 40px; height: 40px; margin-right: 5px; - background-image: url("/assets/images/pacman.png"); + background-image: url("./assets/images/pacman.png"); background-size: 100% 100%; transform: scaleX(-1); } From 174dee411c9ef682fd53d6d0759596291ec7a5f8 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 14:07:02 +0800 Subject: [PATCH 36/55] update css --- assets/css/stylesheet.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index eca9690d..8f792fed 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -151,21 +151,21 @@ body { } #ghost-one { - background: url("./assets/images/ghosts.jpg"); + background: url("../assets/images/ghosts.jpg"); background-position: -33px -35px; background-size: 230%; position: absolute; } #ghost-two { - background: url("./assets/images/ghosts.jpg"); + background: url("../assets/images/ghosts.jpg"); background-position: -3px -35px; background-size: 230%; position: absolute; } #ghost-three { - background: url("./assets/images/ghosts.jpg"); + background: url("../assets/images/ghosts.jpg"); background-position: -3px -7px; background-size: 230%; position: absolute; @@ -173,7 +173,7 @@ body { #ghost-four { /*background-color: cyan;*/ - background: url("./assets/images/ghosts.jpg"); + background: url("../assets/images/ghosts.jpg"); background-position: -33px -7px; background-size: 230%; position: absolute; @@ -236,7 +236,7 @@ strong { width: 40px; height: 40px; margin-right: 5px; - background-image: url("./assets/images/pacman.png"); + background-image: url("../assets/images/pacman.png"); background-size: 100% 100%; transform: scaleX(-1); } From aaf745f515f8243b361194c8f8e7e6159471533d Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 14:10:35 +0800 Subject: [PATCH 37/55] updating image links --- assets/css/stylesheet.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 8f792fed..a7082e3d 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -151,21 +151,21 @@ body { } #ghost-one { - background: url("../assets/images/ghosts.jpg"); + background: url("../images/ghosts.jpg"); background-position: -33px -35px; background-size: 230%; position: absolute; } #ghost-two { - background: url("../assets/images/ghosts.jpg"); + background: url("../images/ghosts.jpg"); background-position: -3px -35px; background-size: 230%; position: absolute; } #ghost-three { - background: url("../assets/images/ghosts.jpg"); + background: url("../images/ghosts.jpg"); background-position: -3px -7px; background-size: 230%; position: absolute; @@ -173,7 +173,7 @@ body { #ghost-four { /*background-color: cyan;*/ - background: url("../assets/images/ghosts.jpg"); + background: url("../images/ghosts.jpg"); background-position: -33px -7px; background-size: 230%; position: absolute; @@ -236,7 +236,7 @@ strong { width: 40px; height: 40px; margin-right: 5px; - background-image: url("../assets/images/pacman.png"); + background-image: url("../images/pacman.png"); background-size: 100% 100%; transform: scaleX(-1); } From 0656ba51fac3d7f1890f173203156d9e372cdeed Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 14:54:23 +0800 Subject: [PATCH 38/55] updating readme --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index abc047b4..e82b898a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,17 @@ This is a simplified version of Pac Man. The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. +## Instructions + +*To Change Directions* + ++ Arrow-Left '◀' : Move 'Left' ++ Arrow-Right '▶' : Move 'Right' ++ Arrow-Up '▲' : Move 'Up' ++ Arrow-Down '▼' : Move 'Down' + +**[Play Game](https://koozy0.github.io/project-1/)** + ## Considerations From 5bef9abcc1aaa6f65c9f0a73cd97459da7479f3f Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 14:59:42 +0800 Subject: [PATCH 39/55] updating js --- assets/js/script.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index d9031b56..2ecaef96 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -81,15 +81,11 @@ $(function () { }, 6000) // moving ghost-three setTimeout(function () { - setInterval(function () { - moveGhost($('#ghost-three')) - }, ghostSpeed) + setInterval(function () { moveGhost($('#ghost-three')) }, ghostSpeed) }, 9000) // moving ghost-four setTimeout(function () { - setInterval(function () { - moveGhost($('#ghost-four')) - }, ghostSpeed) + setInterval(function () { moveGhost($('#ghost-four')) }, ghostSpeed) }, 12000) // lose condiition setInterval(function () { From 244a35f75ba1dd5da713f9a360425456483ca6f5 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 15:06:57 +0800 Subject: [PATCH 40/55] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e82b898a..5877d93c 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,7 @@ function checkCollision () { To move Pac Man through the grid, the game first gets the tile which Pac-Man is inhabiting. Depending on which tile Pac Man is trying to move into, the game then gets the target tile and checks it's data attribute to determine if the tile selected is a valid tile. Event handlers are used to change Pac Man's direction depending on which ArrowKey is hit. -Below are some code snippet: +Below are some code snippets: ``` javascript setTimeout(function () { From 7928ddad23493aee29053753b21fe1dca34c653c Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 15:17:15 +0800 Subject: [PATCH 41/55] updating readme --- README.md | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 5877d93c..a69fa250 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is a simplified version of Pac Man. The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. - +___ ## Instructions *To Change Directions* @@ -19,17 +19,15 @@ The player controls Pac-Man through a maze of various dots, as well as four mult + Arrow-Up '▲' : Move 'Up' + Arrow-Down '▼' : Move 'Down' -**[Play Game](https://koozy0.github.io/project-1/)** - - +## [▶ Click Here to Play Game ◀](https://koozy0.github.io/project-1/) +___ ## Considerations + Grid-style layout VS open game board while actively checking for collision at set intervals. + Since game board is reasonably small, a grid-style layout is used to reduce the amount of resources consumed by the game + Constantly checking for collision against all elements VS checking if the target tile is valid at the point of movement. + Also makes generating the game assets easier. - - +___ ## Loading Game Assets A 19x18 array containing numbers between 0 - 9 is used to generate the game board. Each number denotes which assets to generate as well as mark out the location of the Pac-Dots, Pac Man and the four Ghosts. A loop is used to go through the array and generate the game assets. @@ -82,8 +80,7 @@ function loadAssets (tileSet) { } } ``` - - +___ ## Collision Logic Basic Pac Man is created with a grid-style layout. No collision algorithms are used. Each individual tile has it's own data attribute, denoting whether it is a tile which the 5 characters can enter. Checking whether Pac Man touches any of the four Ghosts or the Pac-Dots is a simple check for whether any of other elements inhabit the same tile as Pac Man. @@ -105,8 +102,7 @@ function checkCollision () { } } ``` - - +___ ## Moving Pac-Man To move Pac Man through the grid, the game first gets the tile which Pac-Man is inhabiting. Depending on which tile Pac Man is trying to move into, the game then gets the target tile and checks it's data attribute to determine if the tile selected is a valid tile. Event handlers are used to change Pac Man's direction depending on which ArrowKey is hit. @@ -162,8 +158,7 @@ function changeDirection (event) { } } ``` - - +___ ## Ghosts Movement Ghosts movement use the same logic as Pac Man. Initial parent tile of the ghost is captured, then the target tile is evaluated if it is a viable tile. @@ -233,7 +228,7 @@ function patrolTopLeft ($ghost) { if (prevDirOne.length > 2) prevDirOne.shift() } ``` - +___ ## Reflections + Creating a character class which stores the position of the character's parent tile as well as a method to get and store the 4 adjacent tiles will reduce the amount of code repetition. @@ -242,8 +237,7 @@ function patrolTopLeft ($ghost) { + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. + Plan further ahead. Some features were not implemented due to time constraints (Proper restart function, Ghosts Chase mode, Power Pellets). - - +___ ## Resources + [Get dynamically added element by data attribute using jQuery](https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery) From 28266dc2ac93ae1c24f684856a97ba9cd1a10e00 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 15:21:54 +0800 Subject: [PATCH 42/55] update readme --- README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a69fa250..d0e5af6e 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,14 @@ # **Basic Pac-Man** - flowchart.png - ## Overview This is a simplified version of Pac Man. The player controls Pac-Man through a maze of various dots, as well as four multi-coloured ghosts. The goal of the game is to consume all the dots. The four ghosts roam the maze, trying to kill Pac-Man. If any of the ghosts touch Pac-Man, he loses a life; when all lives have been lost, the game ends. -___ -## Instructions -*To Change Directions* +## Instructions + Arrow-Left '◀' : Move 'Left' + Arrow-Right '▶' : Move 'Right' @@ -20,14 +16,14 @@ ___ + Arrow-Down '▼' : Move 'Down' ## [▶ Click Here to Play Game ◀](https://koozy0.github.io/project-1/) -___ + ## Considerations + Grid-style layout VS open game board while actively checking for collision at set intervals. + Since game board is reasonably small, a grid-style layout is used to reduce the amount of resources consumed by the game + Constantly checking for collision against all elements VS checking if the target tile is valid at the point of movement. + Also makes generating the game assets easier. -___ + ## Loading Game Assets A 19x18 array containing numbers between 0 - 9 is used to generate the game board. Each number denotes which assets to generate as well as mark out the location of the Pac-Dots, Pac Man and the four Ghosts. A loop is used to go through the array and generate the game assets. @@ -80,7 +76,7 @@ function loadAssets (tileSet) { } } ``` -___ + ## Collision Logic Basic Pac Man is created with a grid-style layout. No collision algorithms are used. Each individual tile has it's own data attribute, denoting whether it is a tile which the 5 characters can enter. Checking whether Pac Man touches any of the four Ghosts or the Pac-Dots is a simple check for whether any of other elements inhabit the same tile as Pac Man. @@ -102,7 +98,7 @@ function checkCollision () { } } ``` -___ + ## Moving Pac-Man To move Pac Man through the grid, the game first gets the tile which Pac-Man is inhabiting. Depending on which tile Pac Man is trying to move into, the game then gets the target tile and checks it's data attribute to determine if the tile selected is a valid tile. Event handlers are used to change Pac Man's direction depending on which ArrowKey is hit. @@ -158,7 +154,7 @@ function changeDirection (event) { } } ``` -___ + ## Ghosts Movement Ghosts movement use the same logic as Pac Man. Initial parent tile of the ghost is captured, then the target tile is evaluated if it is a viable tile. @@ -228,7 +224,7 @@ function patrolTopLeft ($ghost) { if (prevDirOne.length > 2) prevDirOne.shift() } ``` -___ + ## Reflections + Creating a character class which stores the position of the character's parent tile as well as a method to get and store the 4 adjacent tiles will reduce the amount of code repetition. @@ -237,7 +233,7 @@ ___ + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. + Plan further ahead. Some features were not implemented due to time constraints (Proper restart function, Ghosts Chase mode, Power Pellets). -___ + ## Resources + [Get dynamically added element by data attribute using jQuery](https://stackoverflow.com/questions/31402103/how-to-find-dynamically-added-element-by-data-attribute-using-jquery) From 950b6c74b52c88261970162b8f1682dd15d0da24 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 15:31:21 +0800 Subject: [PATCH 43/55] increase ghost speed --- assets/js/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/script.js b/assets/js/script.js index 2ecaef96..04820adb 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -39,7 +39,7 @@ var pacManSpeed = 600 var pacManMeetGhost = false var pacManLives = 3 // ghost variables -var ghostSpeed = 400 +var ghostSpeed = 300 // var ghostMovementMode = 'scatter' // ghost-one variables var prevDirOne = [] From fc90190847cfaee878bc39cde24eb940cd1016e7 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 15:36:33 +0800 Subject: [PATCH 44/55] updating readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0e5af6e..4ea7d3c5 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ function patrolTopLeft ($ghost) { ## Reflections -+ Creating a character class which stores the position of the character's parent tile as well as a method to get and store the 4 adjacent tiles will reduce the amount of code repetition. ++ Creating a character class which stores the position of the character's parent tile, a method to get and store the four adjacent tiles and an array variable to store the ghosts' last two moves will reduce the amount of code repetition and global variables. + Refactor the function to change Pac Man's directions and move Pac Man into one function. + Instead of having four separate functions to move Pac Man (one for each direction), refactor into one function which takes a direction argument. + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). From 8e26b4d685368f52fb799293916300d6208febad Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 17:11:53 +0800 Subject: [PATCH 45/55] refactoring script.js --- assets/js/script.js | 67 +++++++++++++++++++++++---------------------- index.html | 6 ++-- 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 04820adb..b979d6de 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -27,7 +27,6 @@ var $instructionPanel = $('.instruction-panel') var $winPanel = $('.win-panel') var $losePanel = $('.lose-panel') var $scoreBoard = $('.score-board') -var $livesContainer = $('.lives-container') var $tiles = $('.tile') // game variables @@ -39,8 +38,7 @@ var pacManSpeed = 600 var pacManMeetGhost = false var pacManLives = 3 // ghost variables -var ghostSpeed = 300 -// var ghostMovementMode = 'scatter' +var ghostSpeed = 350 // ghost-one variables var prevDirOne = [] // ghost-two variables @@ -89,38 +87,18 @@ $(function () { }, 12000) // lose condiition setInterval(function () { - // jQuery object variables - var $pacMan = $('#pac-man') - var $tile = $('.tile') - // targeting pac-man starting tile - var $pacManStart = $tile.filter(function () { return $(this).data('attr') === 9 }) // checking if pac-man and ghosts occupy the same tile pacManMeetGhost = checkCollision() if (pacManMeetGhost) { - // move pacman back to starting - $pacManStart.append($pacMan) - // decrease and updates scoreboard - pacManLives-- + movePacToStart() + updateLives() pacManMeetGhost = false - $livesContainer.children().last().remove() } // update loss - if (pacManLives <= 0) { - $scoreBoard.css('visibility', 'hidden') - $winPanel.hide() - $losePanel.show() - isGameOver = true - } + if (pacManLives <= 0) showWinLossPanel('loss') }, 100) // win condition - setInterval(function () { - if (score === 119) { - $scoreBoard.css('visibility', 'hidden') - $losePanel.hide() - $winPanel.show() - isGameOver = true - } - }, 300) + setInterval(function () { if (score === 119) showWinLossPanel('win') }, 300) // clearing game board var clear = setInterval(function () { if (isGameOver) { @@ -224,10 +202,9 @@ function changeDirection (event) { } function eatAndChangeScore (tile) { - var $score = $('.score') score++ - $score.text(`Score: ${score}`) - tile.find('div:first').remove() + $('.score').text(`Score: ${score}`) + tile.find('div:first').remove() // find first element (dots) and remove } function movePacLeft () { @@ -386,9 +363,7 @@ function patrolBottomLeft ($ghost) { } function checkCollision () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - + var $pacManTile = $('#pac-man').parent() // return true if pacman's parent tile contains any of the ghosts switch (true) { case ($pacManTile.has('#ghost-one').length > 0): @@ -398,3 +373,29 @@ function checkCollision () { return true } } + +function movePacToStart () { + // targeting pac-man starting tile + var $pacManStart = $('.tile').filter(function () { return $(this).data('attr') === 9 }) + // append pac-man to starting tile + $pacManStart.append($('#pac-man')) +} + +function updateLives () { + pacManLives-- + $('.lives-container').children().last().remove() +} + +function showWinLossPanel (winLoss) { + if (winLoss === 'win') { + $scoreBoard.css('visibility', 'hidden') + $losePanel.hide() + $winPanel.show() + isGameOver = true + } else { + $scoreBoard.css('visibility', 'hidden') + $winPanel.hide() + $losePanel.show() + isGameOver = true + } +} diff --git a/index.html b/index.html index 6490e70f..5b65eccd 100644 --- a/index.html +++ b/index.html @@ -27,16 +27,16 @@

Instructions

Arrow-Down '▼' : Move 'Down'

-

< Hit Enter to begin >

+

Hit < Enter > to begin

You Win!

Score: 0

-

< Hit Spacebar to play again >

+

Hit < Space > to play again

You Lose!

-

< Hit Spacebar to try again >

+

Hit < Space > to try again

From c14eca1111715edd5b996a09e4aaba5e190bca32 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 17:42:10 +0800 Subject: [PATCH 46/55] refactor script.js --- assets/js/script.js | 53 ++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index b979d6de..0275975c 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -38,7 +38,7 @@ var pacManSpeed = 600 var pacManMeetGhost = false var pacManLives = 3 // ghost variables -var ghostSpeed = 350 +var ghostSpeed = 250 // ghost-one variables var prevDirOne = [] // ghost-two variables @@ -49,22 +49,17 @@ var prevDirThree = [] var prevDirFour = [] $(function () { - $winPanel.hide() - $losePanel.hide() - + togglePanels('hide') // hit enter to start $body.on('keyup', (event) => { if (event.key === 'Enter') { $body.off() isGameOver = false - // hide instructions - $instructionPanel.hide() - // show score-board - $scoreBoard.css('visibility', 'visible') - // load assets + togglePanels('starting') loadAssets(tileSet) - // countdown to game start countDown() + + // start game after 3 seconds setTimeout(function () { // moving pacman setInterval(function () { movePacMan() }, pacManSpeed) @@ -73,32 +68,24 @@ $(function () { // moving ghost-one setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) - // moving ghost-two - setTimeout(function () { - setInterval(function () { moveGhost($('#ghost-two')) }, ghostSpeed) - }, 6000) - // moving ghost-three - setTimeout(function () { - setInterval(function () { moveGhost($('#ghost-three')) }, ghostSpeed) - }, 9000) - // moving ghost-four - setTimeout(function () { - setInterval(function () { moveGhost($('#ghost-four')) }, ghostSpeed) - }, 12000) - // lose condiition + // moving ghost-two after 6 seconds + setTimeout(function () { setInterval(function () { moveGhost($('#ghost-two')) }, ghostSpeed) }, 6000) + // moving ghost-three after 9 seconds + setTimeout(function () { setInterval(function () { moveGhost($('#ghost-three')) }, ghostSpeed) }, 9000) + // moving ghost-four after 12 seconds + setTimeout(function () { setInterval(function () { moveGhost($('#ghost-four')) }, ghostSpeed) }, 12000) + // lose condition setInterval(function () { - // checking if pac-man and ghosts occupy the same tile pacManMeetGhost = checkCollision() if (pacManMeetGhost) { movePacToStart() updateLives() pacManMeetGhost = false } - // update loss - if (pacManLives <= 0) showWinLossPanel('loss') + if (pacManLives <= 0) togglePanels('loss') }, 100) // win condition - setInterval(function () { if (score === 119) showWinLossPanel('win') }, 300) + setInterval(function () { if (score === 119) togglePanels('win') }, 300) // clearing game board var clear = setInterval(function () { if (isGameOver) { @@ -386,16 +373,22 @@ function updateLives () { $('.lives-container').children().last().remove() } -function showWinLossPanel (winLoss) { - if (winLoss === 'win') { +function togglePanels (panel) { + if (panel === 'win') { $scoreBoard.css('visibility', 'hidden') $losePanel.hide() $winPanel.show() isGameOver = true - } else { + } else if (panel === 'loss') { $scoreBoard.css('visibility', 'hidden') $winPanel.hide() $losePanel.show() isGameOver = true + } else if (panel === 'starting') { + $instructionPanel.hide() + $scoreBoard.css('visibility', 'visible') + } else { + $winPanel.hide() + $losePanel.hide() } } From 521566f20c719c0f0ec7c9ff32f98d6e5d818f6e Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:19:28 +0800 Subject: [PATCH 47/55] refactoring move Pac-Man functions --- assets/js/script.js | 103 ++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 75 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 0275975c..c3b7aed5 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -34,11 +34,11 @@ var score = 0 var isGameOver = false // pacman variables var direction = 'left' -var pacManSpeed = 600 +var pacManSpeed = 500 var pacManMeetGhost = false var pacManLives = 3 // ghost variables -var ghostSpeed = 250 +var ghostSpeed = 300 // ghost-one variables var prevDirOne = [] // ghost-two variables @@ -62,9 +62,9 @@ $(function () { // start game after 3 seconds setTimeout(function () { // moving pacman - setInterval(function () { movePacMan() }, pacManSpeed) + setInterval(function () { movePac() }, pacManSpeed) // switching directions - $body.on('keydown', (event) => { changeDirection(event) }) + $body.on('keydown', (event) => { direction = changeDirection(event) }) // moving ghost-one setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) }, 3000) @@ -92,7 +92,7 @@ $(function () { $tiles.remove() clearInterval(clear) } - }, 300) + }, 100) // reloads window to restart game $body.on('keydown', (event) => { if (isGameOver && event.key === ' ') this.location.reload() }) } @@ -100,13 +100,6 @@ $(function () { }) function loadAssets (tileSet) { - // creating pac-man and ghosts - var $pacMan = $('
') - var $ghostOne = $('
') - var $ghostTwo = $('
') - var $ghostThree = $('
') - var $ghostFour = $('
') - // objects to store css properties for tiles var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } var blueTile = { 'background-color': '#2D47DD', 'height': '28px', 'width': '28px', 'border': '1px solid #3366FF' } @@ -116,12 +109,9 @@ function loadAssets (tileSet) { for (var i = 0; i < tileSet.length; i++) { // create new
for tiles and dots var $tile = $('
') - // setting tile properties and adding characters switch (tileSet[i]) { - case 0: - var $dots = $('
') // only create dots if tile can contain one - $tile.css(blackTile).data('attr', 0).append($dots) + case 0: $tile.css(blackTile).data('attr', 0).append($('
')) break case 1: $tile.css(blueTile).data('attr', 1) break @@ -129,15 +119,15 @@ function loadAssets (tileSet) { break case 3: $tile.css(blackTile).data('attr', 3) break - case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) + case 5: $tile.css(blackTile).data('attr', 5).append($('
')) break - case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) + case 6: $tile.css(blackTile).data('attr', 6).append($('
')) break - case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) + case 7: $tile.css(blackTile).data('attr', 7).append($('
')) break - case 8: $tile.css(yellowTile).data('attr', 8).append($ghostOne) + case 8: $tile.css(yellowTile).data('attr', 8).append($('
')) break - case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) + case 9: $tile.css(blackTile).data('attr', 9).append($('
')) break } $gameBoard.append($tile) @@ -162,29 +152,12 @@ function countDown () { }, 1000) } -function movePacMan () { - switch (direction) { - case 'left': movePacLeft() - break - case 'right': movePacRight() - break - case 'up': movePacUp() - break - case 'down': movePacDown() - break - } -} - function changeDirection (event) { switch (event.key) { - case 'ArrowUp': direction = 'up' - break - case 'ArrowRight': direction = 'right' - break - case 'ArrowDown': direction = 'down' - break - case 'ArrowLeft': direction = 'left' - break + case 'ArrowUp': return 'up' + case 'ArrowRight': return 'right' + case 'ArrowDown': return 'down' + case 'ArrowLeft': return 'left' } } @@ -194,44 +167,24 @@ function eatAndChangeScore (tile) { tile.find('div:first').remove() // find first element (dots) and remove } -function movePacLeft () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManLeft = $pacManTile.prev() - // check if tile has dots - if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) - // check if pac-man can move into tile - if ($pacManLeft.data('attr') !== 1 && $pacManLeft.data('attr') !== 8) $pacManLeft.append($pacMan) -} - -function movePacDown () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManDown = $pacManTile.nextAll().eq(18) - // check if tile has dots - if ($pacManDown.has('.dots').length > 0) eatAndChangeScore($pacManDown) - // check if pac-man can move into tile - if ($pacManDown.data('attr') !== 1 && $pacManDown.data('attr') !== 8) $pacManDown.append($pacMan) -} +function pacTarget (direction) { + // using direction, target tile, then move pacman into target tile if its a valid tile + var $pacManTile = $('#pac-man').parent() -function movePacRight () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManRight = $pacManTile.next() - // check if tile has dots - if ($pacManRight.has('.dots').length > 0) eatAndChangeScore($pacManRight) - // check if pac-man can move into tile - if ($pacManRight.data('attr') !== 1 && $pacManRight.data('attr') !== 8) $pacManRight.append($pacMan) + switch (direction) { + case 'left': return $pacManTile.prev() + case 'right': return $pacManTile.next() + case 'up': return $pacManTile.prevAll().eq(18) + case 'down': return $pacManTile.nextAll().eq(18) + } } -function movePacUp () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManUp = $pacManTile.prevAll().eq(18) +function movePac () { + var targetTile = pacTarget(direction) // check if tile has dots - if ($pacManUp.has('.dots').length > 0) eatAndChangeScore($pacManUp) + if ($(targetTile).has('.dots').length > 0) eatAndChangeScore($(targetTile)) // check if pac-man can move into tile - if ($pacManUp.data('attr') !== 1 && $pacManUp.data('attr') !== 8) $pacManUp.append($pacMan) + if ($(targetTile).data('attr') !== 1 && $(targetTile).data('attr') !== 8) $(targetTile).append($('#pac-man')) } function moveGhost ($ghost) { From c887b1e80c65333ad76f4e56549518507813440a Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:21:07 +0800 Subject: [PATCH 48/55] updating readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 4ea7d3c5..d17ccfe0 100644 --- a/README.md +++ b/README.md @@ -228,8 +228,6 @@ function patrolTopLeft ($ghost) { ## Reflections + Creating a character class which stores the position of the character's parent tile, a method to get and store the four adjacent tiles and an array variable to store the ghosts' last two moves will reduce the amount of code repetition and global variables. -+ Refactor the function to change Pac Man's directions and move Pac Man into one function. -+ Instead of having four separate functions to move Pac Man (one for each direction), refactor into one function which takes a direction argument. + Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. + Plan further ahead. Some features were not implemented due to time constraints (Proper restart function, Ghosts Chase mode, Power Pellets). From f35fcdef1b4d567a2685efec6e0cc6f81be518d8 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:28:32 +0800 Subject: [PATCH 49/55] refactoring ghosts movement function --- assets/js/script.js | 40 +++++++++------------------------------- 1 file changed, 9 insertions(+), 31 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index c3b7aed5..2ae7cf5d 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -39,20 +39,17 @@ var pacManMeetGhost = false var pacManLives = 3 // ghost variables var ghostSpeed = 300 -// ghost-one variables -var prevDirOne = [] -// ghost-two variables -var prevDirTwo = [] -// ghost-three variables -var prevDirThree = [] -// ghost-four variables -var prevDirFour = [] +var prevDirOne = [] // ghost-one variables +var prevDirTwo = [] // ghost-two variables +var prevDirThree = [] // ghost-three variables +var prevDirFour = [] // ghost-four variables $(function () { togglePanels('hide') // hit enter to start $body.on('keyup', (event) => { if (event.key === 'Enter') { + // preparing game board and countdown to start $body.off() isGameOver = false togglePanels('starting') @@ -66,14 +63,14 @@ $(function () { // switching directions $body.on('keydown', (event) => { direction = changeDirection(event) }) // moving ghost-one - setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) + setInterval(function () { patrolTopLeft($('#ghost-one')) }, ghostSpeed) }, 3000) // moving ghost-two after 6 seconds - setTimeout(function () { setInterval(function () { moveGhost($('#ghost-two')) }, ghostSpeed) }, 6000) + setTimeout(function () { setInterval(function () { patrolTopRight($('#ghost-two')) }, ghostSpeed) }, 6000) // moving ghost-three after 9 seconds - setTimeout(function () { setInterval(function () { moveGhost($('#ghost-three')) }, ghostSpeed) }, 9000) + setTimeout(function () { setInterval(function () { patrolBottomRight($('#ghost-three')) }, ghostSpeed) }, 9000) // moving ghost-four after 12 seconds - setTimeout(function () { setInterval(function () { moveGhost($('#ghost-four')) }, ghostSpeed) }, 12000) + setTimeout(function () { setInterval(function () { patrolBottomLeft($('#ghost-four')) }, ghostSpeed) }, 12000) // lose condition setInterval(function () { pacManMeetGhost = checkCollision() @@ -187,25 +184,6 @@ function movePac () { if ($(targetTile).data('attr') !== 1 && $(targetTile).data('attr') !== 8) $(targetTile).append($('#pac-man')) } -function moveGhost ($ghost) { - // jQuery ghost objects - var $ghostOne = $('#ghost-one') - var $ghostTwo = $('#ghost-two') - var $ghostThree = $('#ghost-three') - var $ghostFour = $('#ghost-four') - - switch (true) { - case ($ghost.is($ghostOne)): patrolTopLeft($ghost) - break - case ($ghost.is($ghostTwo)): patrolTopRight($ghost) - break - case ($ghost.is($ghostThree)): patrolBottomRight($ghost) - break - case ($ghost.is($ghostFour)): patrolBottomLeft($ghost) - break - } -} - function patrolTopLeft ($ghost) { var $ghostTile = $ghost.parent() var $ghostUp = $ghostTile.prevAll().eq(18) From e0d44f26cab65f0cae5e7c8703c1bf2edcda87ae Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:30:00 +0800 Subject: [PATCH 50/55] updating readme --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d17ccfe0..565fc9ca 100644 --- a/README.md +++ b/README.md @@ -228,7 +228,6 @@ function patrolTopLeft ($ghost) { ## Reflections + Creating a character class which stores the position of the character's parent tile, a method to get and store the four adjacent tiles and an array variable to store the ghosts' last two moves will reduce the amount of code repetition and global variables. -+ Instead of having four separate patrol functions for the ghosts (one for each ghost), refactor into one function (if possible). + Ghosts movement is overly simple. Two movement modes were originally planned: Scatter and Chase. Scatter is the current patrol mode, while chase will cause the ghosts to actively track and chase Pac Man. The Ghosts were to switch between the two modes at every fixed interval. + Plan further ahead. Some features were not implemented due to time constraints (Proper restart function, Ghosts Chase mode, Power Pellets). From 6a37ca641ad3f4cb6462f326f02d17eddff2be0c Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:53:19 +0800 Subject: [PATCH 51/55] updating readme --- README.md | 77 ++++++++++++++++++++----------------------------------- 1 file changed, 28 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 565fc9ca..b34bafc0 100644 --- a/README.md +++ b/README.md @@ -32,13 +32,6 @@ Below is a code snippet: ``` javascript function loadAssets (tileSet) { - // creating pac-man and ghosts - var $pacMan = $('
') - var $ghostOne = $('
') - var $ghostTwo = $('
') - var $ghostThree = $('
') - var $ghostFour = $('
') - // objects to store css properties for tiles var blackTile = { 'background-color': 'black', 'height': '28px', 'width': '28px', 'border': '1px solid #303030' } var blueTile = { 'background-color': '#2D47DD', 'height': '28px', 'width': '28px', 'border': '1px solid #3366FF' } @@ -48,12 +41,9 @@ function loadAssets (tileSet) { for (var i = 0; i < tileSet.length; i++) { // create new
for tiles and dots var $tile = $('
') - // setting tile properties and adding characters switch (tileSet[i]) { - case 0: - var $dots = $('
') // only create dots if tile can contain one - $tile.css(blackTile).data('attr', 0).append($dots) + case 0: $tile.css(blackTile).data('attr', 0).append($('
')) break case 1: $tile.css(blueTile).data('attr', 1) break @@ -61,15 +51,15 @@ function loadAssets (tileSet) { break case 3: $tile.css(blackTile).data('attr', 3) break - case 5: $tile.css(blackTile).data('attr', 5).append($ghostFour) + case 5: $tile.css(blackTile).data('attr', 5).append($('
')) break - case 6: $tile.css(blackTile).data('attr', 6).append($ghostThree) + case 6: $tile.css(blackTile).data('attr', 6).append($('
')) break - case 7: $tile.css(blackTile).data('attr', 7).append($ghostTwo) + case 7: $tile.css(blackTile).data('attr', 7).append($('
')) break - case 8: $tile.css(yellowTile).data('attr', 8).append($ghostOne) + case 8: $tile.css(yellowTile).data('attr', 8).append($('
')) break - case 9: $tile.css(blackTile).data('attr', 9).append($pacMan) + case 9: $tile.css(blackTile).data('attr', 9).append($('
')) break } $gameBoard.append($tile) @@ -85,9 +75,7 @@ Below is a code snippet: ``` javascript function checkCollision () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - + var $pacManTile = $('#pac-man').parent() // return true if pacman's parent tile contains any of the ghosts switch (true) { case ($pacManTile.has('#ghost-one').length > 0): @@ -106,51 +94,42 @@ To move Pac Man through the grid, the game first gets the tile which Pac-Man is Below are some code snippets: ``` javascript +// start game after 3 seconds setTimeout(function () { - // Moving Pac Man - setInterval(function () { movePacMan() }, pacManSpeed) + // moving pacman + setInterval(function () { movePac() }, pacManSpeed) // switching directions - $body.on('keydown', (event) => { changeDirection(event) }) + $body.on('keydown', (event) => { direction = changeDirection(event) }) // moving ghost-one - setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) + setInterval(function () { patrolTopLeft($('#ghost-one')) }, ghostSpeed) }, 3000) -// Moving Pac Man -function movePacMan () { +function pacTarget (direction) { + // using direction, target tile + var $pacManTile = $('#pac-man').parent() + switch (direction) { - case 'left': movePacLeft() - break - case 'right': movePacRight() - break - case 'up': movePacUp() - break - case 'down': movePacDown() - break + case 'left': return $pacManTile.prev() + case 'right': return $pacManTile.next() + case 'up': return $pacManTile.prevAll().eq(18) + case 'down': return $pacManTile.nextAll().eq(18) } } -// Move Left -function movePacLeft () { - var $pacMan = $('#pac-man') - var $pacManTile = $pacMan.parent() - var $pacManLeft = $pacManTile.prev() +function movePac () { + var targetTile = pacTarget(direction) // check if tile has dots - if ($pacManLeft.has('.dots').length > 0) eatAndChangeScore($pacManLeft) + if ($(targetTile).has('.dots').length > 0) eatAndChangeScore($(targetTile)) // check if pac-man can move into tile - if ($pacManLeft.data('attr') !== 1 && $pacManLeft.data('attr') !== 8) $pacManLeft.append($pacMan) + if ($(targetTile).data('attr') !== 1 && $(targetTile).data('attr') !== 8) $(targetTile).append($('#pac-man')) } -// Switching Directions function changeDirection (event) { switch (event.key) { - case 'ArrowUp': direction = 'up' - break - case 'ArrowRight': direction = 'right' - break - case 'ArrowDown': direction = 'down' - break - case 'ArrowLeft': direction = 'left' - break + case 'ArrowUp': return 'up' + case 'ArrowRight': return 'right' + case 'ArrowDown': return 'down' + case 'ArrowLeft': return 'left' } } ``` From 98ae0a6b2b2f1e5bf5920e960bf4a9509f5a1740 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 18:57:16 +0800 Subject: [PATCH 52/55] updating loadAssets function and readme --- README.md | 2 -- assets/js/script.js | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index b34bafc0..2f801a61 100644 --- a/README.md +++ b/README.md @@ -49,8 +49,6 @@ function loadAssets (tileSet) { break case 2: $tile.css(blackTile).data('attr', 2) break - case 3: $tile.css(blackTile).data('attr', 3) - break case 5: $tile.css(blackTile).data('attr', 5).append($('
')) break case 6: $tile.css(blackTile).data('attr', 6).append($('
')) diff --git a/assets/js/script.js b/assets/js/script.js index 2ae7cf5d..a3b132fe 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -8,7 +8,7 @@ var tileSet = [ 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 8, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 3, 2, 2, 2, 2, 2, 2, 1, 7, 6, 5, 1, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 1, 7, 6, 5, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, @@ -114,8 +114,6 @@ function loadAssets (tileSet) { break case 2: $tile.css(blackTile).data('attr', 2) break - case 3: $tile.css(blackTile).data('attr', 3) - break case 5: $tile.css(blackTile).data('attr', 5).append($('
')) break case 6: $tile.css(blackTile).data('attr', 6).append($('
')) From d60a4013c60caca4a11fc7a299c7884c715d3559 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 19:13:00 +0800 Subject: [PATCH 53/55] fixing collision bug, updating readme, show score on loss panel --- README.md | 9 +++++++-- assets/js/script.js | 8 ++++++-- index.html | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2f801a61..71a9bbd4 100644 --- a/README.md +++ b/README.md @@ -67,19 +67,24 @@ function loadAssets (tileSet) { ## Collision Logic -Basic Pac Man is created with a grid-style layout. No collision algorithms are used. Each individual tile has it's own data attribute, denoting whether it is a tile which the 5 characters can enter. Checking whether Pac Man touches any of the four Ghosts or the Pac-Dots is a simple check for whether any of other elements inhabit the same tile as Pac Man. +Basic Pac Man is created with a grid-style layout. No collision algorithms are used. Each individual tile has it's own data attribute, denoting whether it is a tile which the 5 characters can enter. Checking whether Pac Man touches any of the four Ghosts is a simple check for whether any of other elements inhabit the same tile as Pac Man or his target tile. Checking whether Pac Man touches any of the Pac-Dots is a check for whether Pac Man inhabits the same tile as the Pac-Dots. Below is a code snippet: ``` javascript function checkCollision () { var $pacManTile = $('#pac-man').parent() - // return true if pacman's parent tile contains any of the ghosts + var targetTile = pacTarget(direction) + // return true if pacman's parent tile or pacman's target tile contains any of the ghosts switch (true) { case ($pacManTile.has('#ghost-one').length > 0): case ($pacManTile.has('#ghost-two').length > 0): case ($pacManTile.has('#ghost-three').length > 0): case ($pacManTile.has('#ghost-four').length > 0): + case ($(targetTile).has('#ghost-one').length > 0): + case ($(targetTile).has('#ghost-two').length > 0): + case ($(targetTile).has('#ghost-three').length > 0): + case ($(targetTile).has('#ghost-four').length > 0): return true } } diff --git a/assets/js/script.js b/assets/js/script.js index a3b132fe..476a8046 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -165,7 +165,6 @@ function eatAndChangeScore (tile) { function pacTarget (direction) { // using direction, target tile, then move pacman into target tile if its a valid tile var $pacManTile = $('#pac-man').parent() - switch (direction) { case 'left': return $pacManTile.prev() case 'right': return $pacManTile.next() @@ -280,12 +279,17 @@ function patrolBottomLeft ($ghost) { function checkCollision () { var $pacManTile = $('#pac-man').parent() - // return true if pacman's parent tile contains any of the ghosts + var targetTile = pacTarget(direction) + // return true if pacman's parent tile or pacman's target tile contains any of the ghosts switch (true) { case ($pacManTile.has('#ghost-one').length > 0): case ($pacManTile.has('#ghost-two').length > 0): case ($pacManTile.has('#ghost-three').length > 0): case ($pacManTile.has('#ghost-four').length > 0): + case ($(targetTile).has('#ghost-one').length > 0): + case ($(targetTile).has('#ghost-two').length > 0): + case ($(targetTile).has('#ghost-three').length > 0): + case ($(targetTile).has('#ghost-four').length > 0): return true } } diff --git a/index.html b/index.html index 5b65eccd..64539a59 100644 --- a/index.html +++ b/index.html @@ -36,6 +36,7 @@

Score: 0

You Lose!

+

Score: 0

Hit < Space > to try again

From 0b09391a5ef9548a571781e88d7ed4f73826dc56 Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 19:16:59 +0800 Subject: [PATCH 54/55] updating readme --- README.md | 57 +++++++++++++++---------------------------------------- 1 file changed, 15 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 71a9bbd4..b23a4387 100644 --- a/README.md +++ b/README.md @@ -149,61 +149,34 @@ Below are some code snippets: // Ghost Variables var ghostSpeed = 400 -setTimeout(function () { - // Moving Pac Man - setInterval(function () { movePacMan() }, pacManSpeed) - // Switching Directions - $body.on('keydown', (event) => { changeDirection(event) }) - // Moving Ghost One - setInterval(function () { moveGhost($('#ghost-one')) }, ghostSpeed) -}, 3000) +// moving ghost-two after 6 seconds +setTimeout(function () { setInterval(function () { patrolTopRight($('#ghost-two')) }, ghostSpeed) }, 6000) -// Assigning Patrol Function -function moveGhost ($ghost) { - // jQuery ghost objects - var $ghostOne = $('#ghost-one') - var $ghostTwo = $('#ghost-two') - var $ghostThree = $('#ghost-three') - var $ghostFour = $('#ghost-four') +// ghost-two variables +var prevDirTwo = [] - switch (true) { - case ($ghost.is($ghostOne)): patrolTopLeft($ghost) - break - case ($ghost.is($ghostTwo)): patrolTopRight($ghost) - break - case ($ghost.is($ghostThree)): patrolBottomRight($ghost) - break - case ($ghost.is($ghostFour)): patrolBottomLeft($ghost) - break - } -} - -// ghost-one variables -var prevDirOne = [] - -// Patrol Top Left Corner Function Assigned to Ghost One -function patrolTopLeft ($ghost) { +function patrolTopRight ($ghost) { var $ghostTile = $ghost.parent() var $ghostUp = $ghostTile.prevAll().eq(18) var $ghostLeft = $ghostTile.prev() var $ghostRight = $ghostTile.next() var $ghostDown = $ghostTile.nextAll().eq(18) - if ($ghostUp.data('attr') !== 1 && prevDirOne[0] !== 'down' && prevDirOne[1] !== 'down') { - prevDirOne.push('up') + if ($ghostUp.data('attr') !== 1 && prevDirTwo[0] !== 'down' && prevDirTwo[1] !== 'down') { + prevDirTwo.push('up') $ghostUp.append($ghost) - } else if ($ghostLeft.data('attr') !== 1 && prevDirOne[0] !== 'right' && prevDirOne[1] !== 'right') { - prevDirOne.push('left') - $ghostLeft.append($ghost) - } else if ($ghostRight.data('attr') !== 1 && prevDirOne[0] !== 'left' && prevDirOne[1] !== 'left') { + } else if ($ghostRight.data('attr') !== 1 && prevDirTwo[0] !== 'left' && prevDirTwo[1] !== 'left') { $ghostRight.append($ghost) - prevDirOne.push('right') - } else if ($ghostDown.data('attr') !== 1 && prevDirOne[0] !== 'up' && prevDirOne[1] !== 'up') { - prevDirOne.push('down') + prevDirTwo.push('right') + } else if ($ghostLeft.data('attr') !== 1 && prevDirTwo[0] !== 'right' && prevDirTwo[1] !== 'right') { + prevDirTwo.push('left') + $ghostLeft.append($ghost) + } else if ($ghostDown.data('attr') !== 1 && prevDirTwo[0] !== 'up' && prevDirTwo[1] !== 'up') { + prevDirTwo.push('down') $ghostDown.append($ghost) } // shift entire array left by one element (keeps array 2 elements long) - if (prevDirOne.length > 2) prevDirOne.shift() + if (prevDirTwo.length > 2) prevDirTwo.shift() } ``` From 50bb710d4b49da4ec5168b56e020ebf06b0f1d0d Mon Sep 17 00:00:00 2001 From: koozy Date: Thu, 5 Oct 2017 19:55:42 +0800 Subject: [PATCH 55/55] refactoring checkCollision function, updating readme --- README.md | 10 ++-------- assets/js/script.js | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index b23a4387..3aef9ebe 100644 --- a/README.md +++ b/README.md @@ -77,14 +77,8 @@ function checkCollision () { var targetTile = pacTarget(direction) // return true if pacman's parent tile or pacman's target tile contains any of the ghosts switch (true) { - case ($pacManTile.has('#ghost-one').length > 0): - case ($pacManTile.has('#ghost-two').length > 0): - case ($pacManTile.has('#ghost-three').length > 0): - case ($pacManTile.has('#ghost-four').length > 0): - case ($(targetTile).has('#ghost-one').length > 0): - case ($(targetTile).has('#ghost-two').length > 0): - case ($(targetTile).has('#ghost-three').length > 0): - case ($(targetTile).has('#ghost-four').length > 0): + case ($pacManTile.has('#ghost-one, #ghost-two, #ghost-three, #ghost-four').length > 0): + case ($(targetTile).has('#ghost-one, #ghost-two, #ghost-three, #ghost-four').length > 0): return true } } diff --git a/assets/js/script.js b/assets/js/script.js index 476a8046..e92849e5 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -282,14 +282,8 @@ function checkCollision () { var targetTile = pacTarget(direction) // return true if pacman's parent tile or pacman's target tile contains any of the ghosts switch (true) { - case ($pacManTile.has('#ghost-one').length > 0): - case ($pacManTile.has('#ghost-two').length > 0): - case ($pacManTile.has('#ghost-three').length > 0): - case ($pacManTile.has('#ghost-four').length > 0): - case ($(targetTile).has('#ghost-one').length > 0): - case ($(targetTile).has('#ghost-two').length > 0): - case ($(targetTile).has('#ghost-three').length > 0): - case ($(targetTile).has('#ghost-four').length > 0): + case ($pacManTile.has('#ghost-one, #ghost-two, #ghost-three, #ghost-four').length > 0): + case ($(targetTile).has('#ghost-one, #ghost-two, #ghost-three, #ghost-four').length > 0): return true } }