Fix double-tap hard drop issue when 3D effects are disabled

This commit is contained in:
cmclark00 2025-03-25 18:43:06 -04:00
parent 4cb5250465
commit 742cbb1297

View file

@ -670,6 +670,13 @@ class Piece {
// Hard drop // Hard drop
hardDrop() { hardDrop() {
// Cancel any ongoing rotations or animations
this.rotationTransition = false;
this.showCompletionEffect = false;
this.rotationAngleX = 0;
this.rotationAngleY = 0;
this.rotationAngleZ = 0;
// Clear previous position // Clear previous position
this.undraw(); this.undraw();
clearPreviousPiecePosition(); clearPreviousPiecePosition();
@ -2402,21 +2409,26 @@ function handleTouchEnd(event) {
// This is a double-tap, do hard drop // This is a double-tap, do hard drop
p.hardDrop(); p.hardDrop();
// Reset tap tracking // Reset tap tracking to prevent any further actions
lastTapTime = 0; lastTapTime = 0;
lastTapX = 0;
lastTapY = 0;
// Debug // Debug
console.log("Double tap detected - hard drop"); console.log("Double tap detected - hard drop");
return; return;
} }
// Single tap - rotates piece // Only rotate if we're not in the middle of another action
p.rotate('right'); if (!p.rotationTransition && !p.showCompletionEffect) {
// Single tap - rotates piece
// Update tracking for potential double tap p.rotate('right');
lastTapTime = touchEndTime;
lastTapX = touchX; // Update tracking for potential double tap
lastTapY = touchY; lastTapTime = touchEndTime;
lastTapX = touchX;
lastTapY = touchY;
}
} }
// Reset touch identifier // Reset touch identifier