diff --git a/gehntris/index.htm b/gehntris/index.htm
index 8ef1260..17fefc4 100644
--- a/gehntris/index.htm
+++ b/gehntris/index.htm
@@ -43,9 +43,6 @@
Level
1
-
-
-
diff --git a/gehntris/script.js b/gehntris/script.js
index cb4ee86..8fe024f 100644
--- a/gehntris/script.js
+++ b/gehntris/script.js
@@ -249,6 +249,7 @@ function addPieceToWaiting() {
}
function addPieceToBoard() {
pieceInPlay = pieceInWaiting;
+ pieceInPlay.move(3, 0);
pieceInPlay.waiting = false;
addPieceToWaiting();
okayToAddPiece = false;
@@ -404,15 +405,10 @@ function tick() {
}
function addEventListeners() {
const pauseButton = document.getElementById("pause-button");
- pauseButton.addEventListener("click", event => {
+ pauseButton.addEventListener("click", (event) => {
pauseButton.blur();
event.stopPropagation();
});
- const dropButton = document.getElementById("drop-button");
- dropButton.addEventListener("click", event => {
- dropButton.blur();
- event.stopPropagation();
- });
document.addEventListener("keydown", event => {
if (!isGameOver && pieceInPlay) {
if (event.code == "ArrowLeft" || event.code == "KeyA") {
@@ -439,44 +435,39 @@ function addEventListeners() {
let touchStartY = 0;
let touchEndX = 0;
let touchEndY = 0;
- let moving = false;
- let moveInterval;
document.addEventListener("touchstart", event => {
touchStartX = event.touches[0].clientX;
touchStartY = event.touches[0].clientY;
- moving = true;
- movePieceContinuously();
- });
- document.addEventListener("touchmove", event => {
- touchEndX = event.touches[0].clientX;
- touchEndY = event.touches[0].clientY;
});
document.addEventListener("touchend", event => {
- moving = false;
- if (moveInterval !== undefined) {
- clearInterval(moveInterval);
- moveInterval = undefined;
- }
+ touchEndX = event.changedTouches[0].clientX;
+ touchEndY = event.changedTouches[0].clientY;
+ handleTouchGesture();
});
document.addEventListener("click", event => {
if (!isGameOver && pieceInPlay) {
rotatePiece();
}
});
- function movePieceContinuously() {
- moveInterval = setInterval(() => {
- if (moving && !isGameOver && pieceInPlay) {
- const deltaX = touchEndX - touchStartX;
- if (deltaX > 50) {
- movePieceRight();
- touchStartX = touchEndX;
- }
- else if (deltaX < -50) {
- movePieceLeft();
- touchStartX = touchEndX;
- }
+ function handleTouchGesture() {
+ const deltaX = touchEndX - touchStartX;
+ const deltaY = touchEndY - touchStartY;
+ if (Math.abs(deltaX) > Math.abs(deltaY)) {
+ if (deltaX > 50) {
+ movePieceRight();
}
- }, 75);
+ else if (deltaX < -50) {
+ movePieceLeft();
+ }
+ }
+ else {
+ if (deltaY > 50) {
+ movePieceDown();
+ }
+ else if (deltaY < -50) {
+ dropPiece();
+ }
+ }
}
function movePieceLeft() {
if (pieceInPlay.canMove(-1, 0)) {
@@ -496,6 +487,12 @@ function addEventListeners() {
redrawPieceInPlay();
}
}
+ function dropPiece() {
+ if (pieceInPlay.canMove(0, 1)) {
+ pieceInPlay.drop();
+ redrawPieceInPlay();
+ }
+ }
function rotatePiece() {
for (let i = 0; i < pieceInPlay.squares.length; i++) {
pieceInPlay.squares[i].svgElement.remove();
@@ -503,17 +500,11 @@ function addEventListeners() {
pieceInPlay.rotate();
pieceInPlay.draw(0, 0);
}
-}
-function dropPiece() {
- if (pieceInPlay.canMove(0, 1)) {
- pieceInPlay.drop();
- redrawPieceInPlay();
- }
-}
-function redrawPieceInPlay() {
- for (let i = 0; i < pieceInPlay.squares.length; i++) {
- pieceInPlay.squares[i].svgElement.remove();
+ function redrawPieceInPlay() {
+ for (let i = 0; i < pieceInPlay.squares.length; i++) {
+ pieceInPlay.squares[i].svgElement.remove();
+ }
+ pieceInPlay.draw(0, 0);
}
- pieceInPlay.draw(0, 0);
}
//# sourceMappingURL=script.js.map
\ No newline at end of file
diff --git a/gehntris/script.js.map b/gehntris/script.js.map
index bed18fc..9cff5f2 100644
--- a/gehntris/script.js.map
+++ b/gehntris/script.js.map
@@ -1 +1 @@
-{"version":3,"file":"script.js","sourceRoot":"","sources":["script.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"script.js","sourceRoot":"","sources":["script.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/gehntris/script.ts b/gehntris/script.ts
index c8c40f0..688690f 100644
--- a/gehntris/script.ts
+++ b/gehntris/script.ts
@@ -313,6 +313,7 @@ function addPieceToWaiting() {
function addPieceToBoard() {
pieceInPlay = pieceInWaiting;
+ pieceInPlay.move(3, 0)
pieceInPlay.waiting = false;
addPieceToWaiting();
okayToAddPiece = false;
@@ -489,18 +490,13 @@ function tick() {
}
function addEventListeners() {
+
const pauseButton: HTMLButtonElement = document.getElementById("pause-button");
- pauseButton.addEventListener("click", event => {
+ pauseButton.addEventListener("click", (event) => {
pauseButton.blur();
event.stopPropagation();
});
- const dropButton: HTMLButtonElement = document.getElementById("drop-button");
- dropButton.addEventListener("click", event => {
- dropButton.blur();
- event.stopPropagation();
- });
-
// Event listener for keyboard input
document.addEventListener("keydown", event => {
if (!isGameOver && pieceInPlay) {
@@ -520,35 +516,23 @@ function addEventListeners() {
}
});
- // Variables to track touch position and movement
+ // Variables to track touch start position
let touchStartX = 0;
let touchStartY = 0;
let touchEndX = 0;
let touchEndY = 0;
- let moving = false;
- let moveInterval: number | undefined;
// Event listener for touch start
document.addEventListener("touchstart", event => {
touchStartX = event.touches[0].clientX;
touchStartY = event.touches[0].clientY;
- moving = true;
- movePieceContinuously();
- });
-
- // Event listener for touch move
- document.addEventListener("touchmove", event => {
- touchEndX = event.touches[0].clientX;
- touchEndY = event.touches[0].clientY;
});
// Event listener for touch end
document.addEventListener("touchend", event => {
- moving = false;
- if (moveInterval !== undefined) {
- clearInterval(moveInterval);
- moveInterval = undefined;
- }
+ touchEndX = event.changedTouches[0].clientX;
+ touchEndY = event.changedTouches[0].clientY;
+ handleTouchGesture();
});
// Event listener for clicks (taps)
@@ -558,20 +542,26 @@ function addEventListeners() {
}
});
- function movePieceContinuously() {
- moveInterval = setInterval(() => {
- if (moving && !isGameOver && pieceInPlay) {
- const deltaX = touchEndX - touchStartX;
-
- if (deltaX > 50) {
- movePieceRight();
- touchStartX = touchEndX; // Update the start position to the current position
- } else if (deltaX < -50) {
- movePieceLeft();
- touchStartX = touchEndX; // Update the start position to the current position
- }
+ function handleTouchGesture() {
+ const deltaX = touchEndX - touchStartX;
+ const deltaY = touchEndY - touchStartY;
+
+ // Determine if the swipe was primarily horizontal or vertical
+ if (Math.abs(deltaX) > Math.abs(deltaY)) {
+ // Horizontal swipe
+ if (deltaX > 50) {
+ movePieceRight();
+ } else if (deltaX < -50) {
+ movePieceLeft();
+ }
+ } else {
+ // Vertical swipe
+ if (deltaY > 50) {
+ movePieceDown();
+ } else if (deltaY < -50) {
+ dropPiece();
}
- }, 75); // Adjust the interval time to control the movement speed
+ }
}
function movePieceLeft() {
@@ -595,6 +585,13 @@ function addEventListeners() {
}
}
+ function dropPiece() {
+ if (pieceInPlay.canMove(0, 1)) {
+ pieceInPlay.drop();
+ redrawPieceInPlay();
+ }
+ }
+
function rotatePiece() {
for (let i = 0; i < pieceInPlay.squares.length; i++) {
pieceInPlay.squares[i].svgElement.remove();
@@ -602,18 +599,11 @@ function addEventListeners() {
pieceInPlay.rotate();
pieceInPlay.draw(0, 0);
}
-}
-
-function dropPiece() {
- if (pieceInPlay.canMove(0, 1)) {
- pieceInPlay.drop();
- redrawPieceInPlay();
- }
-}
-function redrawPieceInPlay() {
- for (let i = 0; i < pieceInPlay.squares.length; i++) {
- pieceInPlay.squares[i].svgElement.remove();
+ function redrawPieceInPlay() {
+ for (let i = 0; i < pieceInPlay.squares.length; i++) {
+ pieceInPlay.squares[i].svgElement.remove();
+ }
+ pieceInPlay.draw(0, 0);
}
- pieceInPlay.draw(0, 0);
}
\ No newline at end of file