Fly Droppings and Pausing

Demo Planning Adding: mushroom drops to the fly creature, and pause toggling with the gamepad. Fly Droppings Added mushroom generation to the falling bugs (the flies). This was straightforward. First, I set up an interval, and added a new function to intervalCreatures: dropMushrooms. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 dropMushrooms(creature) { if (creature != 'flies' || !everyinterval(knobsAndLevers[creature].mushroomCreateInterval)) { return; }; this.flies.forEach(fly => { if (fly....

March 9, 2018

HTML5 Canvas Gamepad Movement

Planning Yesterday, I left off with the gamepad controls working, but only in a way that basically broke all of the challenge of the game. The change allowed the player to move outside the defined player boundaries, which meant they could shoot from below the canvas with impunity. Hurray! Today, I’m going to fix that. Adding a Layer of Abstraction First, directional control functions were moved from gamePiece to controls. Another layer of abstraction was added to handle getActiveDirection checking....

March 8, 2018

Canvas Gamepad Movement

Session Planning I see a potential problem in the controls if more than one controller button is needed simultaneously. The isFiring returns a boolean on the FIRST button push it detects, and would ignore any additional entries in that list. This means if I press A, it will do the action for A, but then if I keep pressing A, and also press B, the action for A+B would not get executed; only the action for A would....

March 7, 2018

Resource Quest - An Unconventional Use of the React Framework  [draft]

Building a clicker game with React It’s really easy to make a big ball of mud in JavaScript. You start with a simple loop. You want your program to do A, B, then C. Great. But then you realize you also want D, E, F, G, H, and I. Before you realize it, you have dozens of functions spanning hundreds of lines with no clear structure. So you try to create structure after the fact....

March 7, 2018

Canvas Gamepad Support

Today, I’m adding controller support to Centipede. (See the first controller commit.) Controls Code Cleanup First, the location of the controls currently doesn’t make a lot of sense, so I’m moving them to a new file, controls.js. On load, controls.addEventListeners will execute. There are no dependencies, so the script load order doesn’t matter. Previously these were on the gameArea object because that’s where the keys tracker was stored, but the keys tracker can just live in the controls object....

March 6, 2018

Adding That Falling Bug to Centipede

Session Planning Back to centipede! Adding that falling bug creature. It should be pretty much exactly like the worm, only moving vertically, and will create mushrooms in its wake. Rename the worm object to something else like simple-interval-creature (is that a horrible name?). This could be combined with spider as well, with an if statement on the type to change the shape and movement functions. Session Post Flies are in!...

March 5, 2018