If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Bugs:The World's Hardest Game

From The Cutting Room Floor
Jump to navigation Jump to search

This page details bugs of The World's Hardest Game.

BZZZRRRRRRTTTT
This page or section needs more videos.
There's a whole lotta words or pictures here, but not enough videos. Please fix this.
Hmmm...
To do:
Any more glitches that have been found in the Flash or HTML5 versions?

Corner Bug

Acactussayswhat?
Please elaborate.
Having more detail is always a good thing.
Specifically: Explain the glitch more properly.

The Flash version has a glitch to where if you were to go up/down and go left/right, this will cancel out the carve functions.

The HTML5 version added code to fix the glitch:

// fix carving cancel move bug - up
		if (player.movedUp && player.carvedDown) {
			player.y -= PLAYER_SPEED;
			if (player.bouncing) {
				player.bounceY -= PLAYER_SPEED;
				player.bounceTarget -= PLAYER_SPEED;
			}
		}

		// fix carving cancel move bug - down
		else if (player.movedDown && player.carvedUp) {
			player.y += PLAYER_SPEED;
			if (player.bouncing) {
				player.bounceY += PLAYER_SPEED;
				player.bounceTarget += PLAYER_SPEED;
			}
		}

		// fix corner bug - up/right
		if ((keyRight) && (keyUp)) {
			if (walls[level][Math.floor((player.top - distance - WALL_BORDER_BOTTOM) / TILE_SIZE)][Math.floor((player.right + distance + WALL_BORDER_LEFT) / TILE_SIZE)] == 1) {
				if (player.prevX == player.x - PLAYER_SPEED && player.prevY == player.y + PLAYER_SPEED) {
					player.x -= PLAYER_SPEED;
				}
			}
		}

		// fix corner bug - up/right
		else if ((keyLeft) && (keyUp)) {
			if (walls[level][Math.floor((player.top - distance - WALL_BORDER_BOTTOM) / TILE_SIZE)][Math.floor((player.left - distance - WALL_BORDER_RIGHT) / TILE_SIZE)] == 1) {
				if (player.prevX == player.x + PLAYER_SPEED && player.prevY == player.y + PLAYER_SPEED) {
					player.x += PLAYER_SPEED;
				}
			}
		}

		// fix corner bug - down/right
		else if ((keyRight) && (keyDown)) {
			if (walls[level][Math.floor((player.bottom + distance + WALL_BORDER_TOP) / TILE_SIZE)][Math.floor((player.right + distance + WALL_BORDER_LEFT) / TILE_SIZE)] == 1) {
				if (player.prevX == player.x - PLAYER_SPEED && player.prevY == player.y - PLAYER_SPEED) {
					player.x -= PLAYER_SPEED;
				}
			}
		}

		// fix corner bug - down/right
		else if ((keyLeft) && (keyDown)) {
			if (walls[level][Math.floor((player.bottom + distance + WALL_BORDER_TOP) / TILE_SIZE)][Math.floor((player.left - distance - WALL_BORDER_RIGHT) / TILE_SIZE)] == 1) {
				if (player.prevX == player.x + PLAYER_SPEED && player.prevY == player.y - PLAYER_SPEED) {
					player.x += PLAYER_SPEED;
				}
			}
		}
	}
}

Enemy Collision Check Fail

Acactussayswhat?
Please elaborate.
Having more detail is always a good thing.
Specifically: Explain how Flash's hitbox system works properly.

In the Flash version, the game checks 9 hitbox points each frame you move: one on each corner of the player's hitbox, and five on each side of the hitbox (including the middle). If one of the points collides with a wall, they move the player in the opposite direction; if one of the points collides with an enemy's hitbox points, the player dies.

In Level 2, the player can easily pass through enemies because every enemy is just small enough to where it fails checking if the player has collided with an enemy, thus making the player invincible.

This does not occur in the HTML5 version because of how different HTML5 handles collision than Flash's hitbox system.