nand2/07_Operating_System/12_Tetris/Menu.jack
Michael Schröder 971b323822 added v2.0
2023-01-11 23:04:57 +01:00

71 lines
1.2 KiB
Plaintext

class Menu{
field Array button;
field int last;
field boolean pressed;
constructor void new(String t0, String t1, String t2, String t3){
let button = Array.new(4);
let button[0] = Button.new(0,t0);
let button[1] = Button.new(1,t1);
let button[2] = Button.new(2,t2);
let button[3] = Button.new(3,t3);
let last = 0;
let pressed = false;
return this;
}
method void dispose(){
var Button b;
var int i;
let i=0;
while (i<4){
let b=button[i];
do b.dispose();
let i=i+1;
}
do button.dispose();
do Memory.deAlloc(this);
return;
}
method void draw(){
var Button b;
var int i;
let i=0;
while (i<4){
let b=button[i];
do b.draw(false);
let i=i+1;
}
return;
}
method int getButton(){
var boolean t;
var Button b;
let t = Touch.getEvent();
if (~t){
return -1;
}
if (pressed){
if (Touch.getPen()=0) {
let pressed = false;
let b=button[last];
do b.draw(false);
}
} else {
if ((Touch.getPen()=1) & (Touch.getY()<1024)){
let pressed = true;
let b = button[last];
do b.draw(false);
let last = Touch.getX()/1024;
let b = button[last];
do b.draw(true);
return last;
}
return -1;
}
return -1;
}
}