forked from Sheepolution/tetrong
-
Notifications
You must be signed in to change notification settings - Fork 0
/
smallpiece.js
169 lines (140 loc) · 3.99 KB
/
smallpiece.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Smallpiece = baa.entity.extend();
Smallpiece.init = function (x,y,i,p,row,column) {
Smallpiece.super.init(this,x,y);
Play.inst.solidObjects.add(this);
this.setImage("images/smallpiece_" + i + ".png")
this.seperatePriority = 100;
this.local = baa.point.new(x,y);
this.localRow = row;
this.localColumn = column;
this.row = 0;
this.column = 0;
this.parent = p;
// Play.inst.piecesRight.add(this);
// print(Play.inst.piecesRight.length);
this.neighbours = {
left : false,
right : false,
up : false,
down : false
}
}
Smallpiece.setGlobalPosition = function (_x, _y) {
this.last.clone(this);
this.x = this.local.x + _x;
this.y = this.local.y + _y;
}
Smallpiece.onOverlap = function (ball) {
// ball.velocity.y = baa.utils.choose([0,100,200]) * baa.utils.sign(ball.velocity.y);
// if (this.last.overlapsX(ball.last) && !this.last.overlapsY(ball.last)) {
ball.beep.play();
// if (this.parent.active) {
// if (this.parent.grid.x < 200) {
// ball.beep.play();
// if (ball.last.x > (this.parent.column * Piece.tileSize) + this.parent.width) {
// ball.velocity.x = Math.abs(ball.velocity.x);
// ball.x = (this.parent.column * Piece.tileSize) + this.parent.width;
// }
// else {
// if (ball.last.x > this.last.right() && ball.last.overlapsY(this)) {
// ball.velocity.x = Math.abs(ball.velocity.x);
// // ball.x = (this.parent.column * Piece.tileSize) + this.parent.width;
// ball.x = this.right();
// }
// else {
// if (ball.y > ball.last.y) {
// ball.velocity.y *= -1;
// ball.bottom(this.parent.row * Piece.tileSize);
// }
// else {
// ball.velocity.y *= -1;
// ball.top( (this.parent.row * Piece.tileSize) + this.parent.height);
// }
// }
// }
// }
// else {
// if (ball.last.x < (this.parent.x + this.parent.column * Piece.tileSize) ) {
// ball.velocity.x = -Math.abs(ball.velocity.x);
// ball.right(this.parent.x + this.parent.column * Piece.tileSize);
// }
// else {
// if (ball.last.right() < this.last.x && ball.last.overlapsY(this)) {
// ball.velocity.x = Math.abs(ball.velocity.x);
// // ball.x = (this.parent.column * Piece.tileSize) + this.parent.width;
// ball.x = this.left();
// }
// else {
// if (ball.velocity.y > 0) {
// ball.velocity.y *= -1;
// ball.bottom(this.parent.row * Piece.tileSize);
// }
// else {
// ball.velocity.y *= -1;
// ball.top( (this.parent.row * Piece.tileSize) + this.parent.height);
// }
// }
// }
// }
// }
// else {
// }
Smallpiece.super.onOverlap(this,ball);
if (!Play.inst.typeA && !this.parent.active) {
Play.inst.solidObjects.remove(this);
if (this.parent.grid.x < 200) {
Play.inst.gridLeft.data[this.row][this.column] = 0;
}
else {
Play.inst.gridRight.data[this.row][this.column] = 0;
}
}
}
Smallpiece.checkNeighbours = function (e) {
this.neighbours.left = false;
this.neighbours.right = false;
this.neighbours.up = false;
this.neighbours.down = false;
if (!this.overlaps(e)) {
this.x+=1;
this.neighbours.right = this.overlaps(e);
this.x-=2;
this.neighbours.left = this.overlaps(e);
this.x+=1;
this.y+=1;
this.neighbours.down = this.overlaps(e);
this.y-=2;
this.neighbours.up = this.overlaps(e);
this.y+=1;
}
if (this.neighbours.right == true) {
this.alpha = 0.5;
}
else {
this.alpha = 1;
}
}
// if (this.last.y < ball.last.y) {
// ball.velocity.y *= -1;
// }
// else {
// if (ball.x < 200) {
// ball.left(this.parent.x + this.parent.column * Piece.tileSize + this.parent.width);
// ball.velocity.x = Math.abs(ball.velocity.x);
// }
// else {
// ball.right(this.parent.x + this.parent.column * Piece.tileSize);
// ball.velocity.x = -Math.abs(ball.velocity.x);
// }
// }
// Smallpiece.onOverlap = function (e) {
// e.onOverlap(this);
// }
// Smallpiece.onOverlap = function (e) {
// if (e.is(Piece)) {
// e.onOverlap(this);
// }
// else {
// Smallpiece.super.onOverlap(this,e);
// }
// }