fixed ccw rotation bug
This commit is contained in:
parent
dcbb9a1a39
commit
7df645c131
115
dist/tetrion.js
vendored
115
dist/tetrion.js
vendored
@ -1461,6 +1461,45 @@ var OpenerGenerator = {
|
|||||||
shapes.getShape(3),
|
shapes.getShape(3),
|
||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(3));
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// Mr TSpins STD reversed
|
||||||
|
this.shapeQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// Hachispin
|
||||||
|
this.shapeQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1564,7 +1603,7 @@ var OpenerGenerator = {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
//Pokemino's STD // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3
|
//Pokemino's STD
|
||||||
this.hintQueue = new Array(
|
this.hintQueue = new Array(
|
||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(6),
|
shapes.getShape(6),
|
||||||
@ -1584,7 +1623,65 @@ var OpenerGenerator = {
|
|||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(3));
|
shapes.getShape(3));
|
||||||
|
|
||||||
var hintDataList = [0,17,1, 0,16,0, 4,18,0, 4,17,-1, 3,15,1, 8,17,-1, 2,17,2, 0,17,0, 0,15,-1, 1,15,0, 8,16,-2, 6,15,0, 3,14,1, 6,12,-1, 6,16,1, 2,16,-1, 7,17,2 ];
|
var hintDataList = [0,17,1, 0,16,0, 4,18,0, 4,17,-1, 3,15,1, 8,17,-1, 2,17,2, 0,17,0, 0,15,-1,
|
||||||
|
1,15,0, 8,16,-2, 6,15,0, 3,14,1, 6,12,-1, 6,16,1, 2,16,-1, 7,17,2 ];
|
||||||
|
|
||||||
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
|
this.hintQueue[i].y = hintDataList[i * 3 + 1];
|
||||||
|
this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// Mr TSpins STD reversed
|
||||||
|
this.hintQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(3));
|
||||||
|
|
||||||
|
var hintDataList = [4,18,0, 0,18,0, 7,17,1, 0,15,1, 4,17,-1, 6,14,0, 2,17,2, 1,17,0, 0,16,0, 2,15,-1,
|
||||||
|
0,14,0, 3,15,1, 8,16,-1, 5,13,2, 6,16,1, 7,17,2 ];
|
||||||
|
|
||||||
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
|
this.hintQueue[i].y = hintDataList[i * 3 + 1];
|
||||||
|
this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// Hachispin // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3
|
||||||
|
this.hintQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3));
|
||||||
|
|
||||||
|
var hintDataList = [1,18,0, 0,18,0, 9,16,0, 2,15,1, 6,17,2, 5,16,2, 1,16,2, 0,16,0, -1,16,0, 5,16,0, 0,14,0, 3,15,0, 8,14,-1, 0,0,0];
|
||||||
|
|
||||||
for(var i = 0; i < this.hintQueue.length; i++) {
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
this.hintQueue[i].x = hintDataList[i * 3];
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
@ -1966,6 +2063,11 @@ function ShapeT() {
|
|||||||
1, 1, -1, 1,
|
1, 1, -1, 1,
|
||||||
NaN, NaN, NaN, NaN,
|
NaN, NaN, NaN, NaN,
|
||||||
1, -2, -1, -2
|
1, -2, -1, -2
|
||||||
|
// 0, 0, 0, 0,
|
||||||
|
// -1, 0, 1, 0,
|
||||||
|
// -1, 1, 1, 1,
|
||||||
|
// NaN, NaN, NaN, NaN,
|
||||||
|
// -1, -2, 1, -2
|
||||||
];
|
];
|
||||||
var state2RotationPointsOffset = [
|
var state2RotationPointsOffset = [
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
@ -2318,18 +2420,17 @@ ShapeZR.prototype = {
|
|||||||
if(this.state == j) {
|
if(this.state == j) {
|
||||||
clone.state = this.nextState(rotationDirection);
|
clone.state = this.nextState(rotationDirection);
|
||||||
var i = 0;
|
var i = 0;
|
||||||
if(rotationDirection == -1)
|
if(rotationDirection == 1)
|
||||||
i = 2;
|
i = 4;
|
||||||
for(; i < this.rotationPoints[j].length; i+=2)
|
for(; i < 5*4; i+=4)
|
||||||
{
|
{
|
||||||
var shiftX = this.rotationPoints[j][i];
|
var shiftX = this.rotationPoints[j][i];
|
||||||
var shiftY = this.rotationPoints[j][i+1];
|
var shiftY = this.rotationPoints[j][i+1];
|
||||||
if(!isNaN(shiftY) && !isNaN(shiftX)) {
|
if(!isNaN(shiftY) && !isNaN(shiftX)) {
|
||||||
//console.log("shiftxy: " + shiftX + " " + shiftY);
|
|
||||||
clone.x = this.x + shiftX;
|
clone.x = this.x + shiftX;
|
||||||
clone.y = this.y - shiftY;
|
clone.y = this.y - shiftY;
|
||||||
if(this.canMoveTo(clone, matrix) == true) {
|
if(this.canMoveTo(clone, matrix) == true) {
|
||||||
this.state = clone.state;// = Object.assign(Object.create(Object.getPrototypeOf(clone)), clone);
|
this.state = clone.state;
|
||||||
this.x = clone.x;
|
this.x = clone.x;
|
||||||
this.y = clone.y;
|
this.y = clone.y;
|
||||||
return;
|
return;
|
||||||
|
@ -154,6 +154,8 @@ document.getElementById("divbg").removeAttribute("tabIndex");
|
|||||||
document.getElementById("setDTCannonVar").addEventListener("click", function() { tetrion.setCurrentOpener(2); } );
|
document.getElementById("setDTCannonVar").addEventListener("click", function() { tetrion.setCurrentOpener(2); } );
|
||||||
document.getElementById("setMKOStackingVar").addEventListener("click", function() { tetrion.setCurrentOpener(3); } );
|
document.getElementById("setMKOStackingVar").addEventListener("click", function() { tetrion.setCurrentOpener(3); } );
|
||||||
document.getElementById("setPokeminosSTDVar").addEventListener("click", function() { tetrion.setCurrentOpener(4); } );
|
document.getElementById("setPokeminosSTDVar").addEventListener("click", function() { tetrion.setCurrentOpener(4); } );
|
||||||
|
document.getElementById("setMrTSpinsSTDreversedVar").addEventListener("click", function() { tetrion.setCurrentOpener(5); } );
|
||||||
|
//document.getElementById("setHachispinVar").addEventListener("click", function() { tetrion.setCurrentOpener(6); } );
|
||||||
|
|
||||||
document.getElementById("test").addEventListener("click", function() { tetrion.setDoTest(); } );
|
document.getElementById("test").addEventListener("click", function() { tetrion.setDoTest(); } );
|
||||||
document.getElementById("settings").addEventListener("change", function() { tetrion.updateSettingTextBox(); } );
|
document.getElementById("settings").addEventListener("change", function() { tetrion.updateSettingTextBox(); } );
|
||||||
|
101
src/openers.js
101
src/openers.js
@ -83,6 +83,45 @@ var OpenerGenerator = {
|
|||||||
shapes.getShape(3),
|
shapes.getShape(3),
|
||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(3));
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// Mr TSpins STD reversed
|
||||||
|
this.shapeQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// Hachispin
|
||||||
|
this.shapeQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -186,7 +225,7 @@ var OpenerGenerator = {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
//Pokemino's STD // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3
|
//Pokemino's STD
|
||||||
this.hintQueue = new Array(
|
this.hintQueue = new Array(
|
||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(6),
|
shapes.getShape(6),
|
||||||
@ -206,7 +245,65 @@ var OpenerGenerator = {
|
|||||||
shapes.getShape(0),
|
shapes.getShape(0),
|
||||||
shapes.getShape(3));
|
shapes.getShape(3));
|
||||||
|
|
||||||
var hintDataList = [0,17,1, 0,16,0, 4,18,0, 4,17,-1, 3,15,1, 8,17,-1, 2,17,2, 0,17,0, 0,15,-1, 1,15,0, 8,16,-2, 6,15,0, 3,14,1, 6,12,-1, 6,16,1, 2,16,-1, 7,17,2 ];
|
var hintDataList = [0,17,1, 0,16,0, 4,18,0, 4,17,-1, 3,15,1, 8,17,-1, 2,17,2, 0,17,0, 0,15,-1,
|
||||||
|
1,15,0, 8,16,-2, 6,15,0, 3,14,1, 6,12,-1, 6,16,1, 2,16,-1, 7,17,2 ];
|
||||||
|
|
||||||
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
|
this.hintQueue[i].y = hintDataList[i * 3 + 1];
|
||||||
|
this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// Mr TSpins STD reversed
|
||||||
|
this.hintQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
shapes.getShape(3));
|
||||||
|
|
||||||
|
var hintDataList = [4,18,0, 0,18,0, 7,17,1, 0,15,1, 4,17,-1, 6,14,0, 2,17,2, 1,17,0, 0,16,0, 2,15,-1,
|
||||||
|
0,14,0, 3,15,1, 8,16,-1, 5,13,2, 6,16,1, 7,17,2 ];
|
||||||
|
|
||||||
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
|
this.hintQueue[i].y = hintDataList[i * 3 + 1];
|
||||||
|
this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// Hachispin // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3
|
||||||
|
this.hintQueue = new Array(
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3),
|
||||||
|
|
||||||
|
shapes.getShape(6),
|
||||||
|
shapes.getShape(1),
|
||||||
|
shapes.getShape(5),
|
||||||
|
shapes.getShape(4),
|
||||||
|
shapes.getShape(2),
|
||||||
|
shapes.getShape(0),
|
||||||
|
shapes.getShape(3));
|
||||||
|
|
||||||
|
var hintDataList = [1,18,0, 0,18,0, 9,16,0, 2,15,1, 6,17,2, 5,16,2, 1,16,2, 0,16,0, -1,16,0, 5,16,0, 0,14,0, 3,15,0, 8,14,-1, 0,0,0];
|
||||||
|
|
||||||
for(var i = 0; i < this.hintQueue.length; i++) {
|
for(var i = 0; i < this.hintQueue.length; i++) {
|
||||||
this.hintQueue[i].x = hintDataList[i * 3];
|
this.hintQueue[i].x = hintDataList[i * 3];
|
||||||
|
@ -309,6 +309,11 @@ function ShapeT() {
|
|||||||
1, 1, -1, 1,
|
1, 1, -1, 1,
|
||||||
NaN, NaN, NaN, NaN,
|
NaN, NaN, NaN, NaN,
|
||||||
1, -2, -1, -2
|
1, -2, -1, -2
|
||||||
|
// 0, 0, 0, 0,
|
||||||
|
// -1, 0, 1, 0,
|
||||||
|
// -1, 1, 1, 1,
|
||||||
|
// NaN, NaN, NaN, NaN,
|
||||||
|
// -1, -2, 1, -2
|
||||||
];
|
];
|
||||||
var state2RotationPointsOffset = [
|
var state2RotationPointsOffset = [
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
@ -661,18 +666,17 @@ ShapeZR.prototype = {
|
|||||||
if(this.state == j) {
|
if(this.state == j) {
|
||||||
clone.state = this.nextState(rotationDirection);
|
clone.state = this.nextState(rotationDirection);
|
||||||
var i = 0;
|
var i = 0;
|
||||||
if(rotationDirection == -1)
|
if(rotationDirection == 1)
|
||||||
i = 2;
|
i = 4;
|
||||||
for(; i < this.rotationPoints[j].length; i+=2)
|
for(; i < 5*4; i+=4)
|
||||||
{
|
{
|
||||||
var shiftX = this.rotationPoints[j][i];
|
var shiftX = this.rotationPoints[j][i];
|
||||||
var shiftY = this.rotationPoints[j][i+1];
|
var shiftY = this.rotationPoints[j][i+1];
|
||||||
if(!isNaN(shiftY) && !isNaN(shiftX)) {
|
if(!isNaN(shiftY) && !isNaN(shiftX)) {
|
||||||
//console.log("shiftxy: " + shiftX + " " + shiftY);
|
|
||||||
clone.x = this.x + shiftX;
|
clone.x = this.x + shiftX;
|
||||||
clone.y = this.y - shiftY;
|
clone.y = this.y - shiftY;
|
||||||
if(this.canMoveTo(clone, matrix) == true) {
|
if(this.canMoveTo(clone, matrix) == true) {
|
||||||
this.state = clone.state;// = Object.assign(Object.create(Object.getPrototypeOf(clone)), clone);
|
this.state = clone.state;
|
||||||
this.x = clone.x;
|
this.x = clone.x;
|
||||||
this.y = clone.y;
|
this.y = clone.y;
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user