mirror of
https://github.com/usatiuk/nand2tetris.git
synced 2025-10-28 16:17:48 +01:00
90 lines
1.6 KiB
Plaintext
90 lines
1.6 KiB
Plaintext
class Rect {
|
|
field int x, y, width, height, hidden;
|
|
|
|
constructor Rect new(int xl, int yl, int widthl, int heightl) {
|
|
let x = xl;
|
|
let y = yl;
|
|
let width = widthl;
|
|
let height = heightl;
|
|
let hidden = 0;
|
|
|
|
return this;
|
|
}
|
|
|
|
method void setPos(int lx, int ly) {
|
|
do erase();
|
|
let x = lx;
|
|
let y = ly;
|
|
|
|
return;
|
|
}
|
|
|
|
method void draw() {
|
|
if (hidden = 1) {
|
|
do erase();
|
|
return;
|
|
}
|
|
do Screen.setColor(true);
|
|
do Screen.drawRectangle(x,y,x+width,y+height);
|
|
return;
|
|
}
|
|
|
|
method void erase() {
|
|
do Screen.setColor(false);
|
|
do Screen.drawRectangle(x,y,x+width,y+height);
|
|
return;
|
|
}
|
|
|
|
method void moveLeft(int dist) {
|
|
do erase();
|
|
let x = x - dist;
|
|
do draw();
|
|
return;
|
|
}
|
|
|
|
method void moveRight(int dist) {
|
|
do erase();
|
|
let x = x + dist;
|
|
do draw();
|
|
return;
|
|
}
|
|
|
|
method void moveUp(int dist) {
|
|
do erase();
|
|
let y = y - dist;
|
|
do draw();
|
|
return;
|
|
}
|
|
|
|
method void moveDown(int dist) {
|
|
do erase();
|
|
let y = y + dist;
|
|
do draw();
|
|
return;
|
|
}
|
|
|
|
method int getLeft() {
|
|
return x;
|
|
}
|
|
|
|
method int getRight() {
|
|
return x + width;
|
|
}
|
|
|
|
method int getTop() {
|
|
return y;
|
|
}
|
|
|
|
method int getBottom() {
|
|
return y + height;
|
|
}
|
|
|
|
method int getHidden() {
|
|
return hidden;
|
|
}
|
|
|
|
method void setHidden(int lhidden) {
|
|
let hidden = lhidden;
|
|
return;
|
|
}
|
|
} |