Files
nand2tetris/Arkanoid/source/Rect.jack

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;
}
}