/* myTools KLL use extra js file here in root name: myTools.js idea is to develop it here ( master ) and download / upload to other projects. content: functions to call: logo(x,y,radius,speed); mysong( true/false ); //________________ from anywhere to start stop song //______________________________________ here as example linked into the Button press action //_________________________________ !! */ //________________________________________________________ FUNCTIONS MYSOUND let song; function preload() { song = loadSound('sound/loop5.mp3'); } function mysong( go ) { if ( go && !song.isLooping() ) song.loop(); if ( !go && song.isLooping() ) song.pause(); } function mouseVolume() {//___ test a simple mouse slider for volume if ( song.isLooping() ) { fill(200); triangle(10,height-10, width-10,height-30,width-10,height-10); let amp = map(mouseX, 0, width,0,1); fill(200,0,0); rect( amp*width,height-30,5,20); //print(amp); masterVolume(amp); } } //________________________________________________________ FUNCTION LOGO var ang = 0; function logo(x, y, r, dang) { var d1 = 2 * r; var d2 = 2 * r / sqrt(2); ang += dang; //__________________ animation push(); fill(255); //____________________ fill same all 3 shapes strokeWeight(4); stroke(200, 200, 0); //__________ here same as main background gives a nice effect ellipseMode(CENTER); rectMode(CENTER); translate(x + r, y + r); //______ CENTER thinking push(); rotate(-ang); //__________________ animate first bigger rect rect(0, 0, d1, d1); pop(); ellipse(0, 0, d1, d1); rotate(ang); //_________________ animate second smaller rect rect(0, 0, d2, d2); textAlign(CENTER, CENTER); textSize(20); text("K L L", 0, 0); pop(); } /* __________________________________ classes declared: class Button declare: var button; Button button(x, y, w, h, sel, textFalse, textTrue, id); methods: button.draw(); //_______________ from draw button.mousePressed(); //_______ local use global mymouseClicked boolean button.over(); //_______ local */ class Button { //____________________________________ begin class constructor(xi, yi, wi, hi, seli, atextisel,atextinosel, idi) { this.xb = xi; this.yb = yi; this.wb = wi; this.hb = hi; this.selb = seli; this.textbsel = atextisel; this.textbnosel = atextinosel; this.idb = idi; } draw() { this.mousePressed(); strokeWeight(3); if (this.selb) fill(0, 200, 0); else fill(0, 0, 200); if (this.over()) stroke(200, 0, 200); else stroke(0, 200, 200); rect(this.xb, this.yb, this.wb, this.hb); noStroke(); fill(200); textSize(30); if ( this.selb ) text(this.textbnosel, this.xb + 5, this.yb + this.hb - 8); else text(this.textbsel, this.xb + 5, this.yb + this.hb - 8); } over() { return (mouseX > this.xb & mouseX < this.xb + this.wb & mouseY > this.yb & mouseY < this.yb + this.hb); } mousePressed() { // if (this.over() && mouseIsPressed) { if (this.over() && mymouseClicked) { mymouseClicked = false; // reset global this.selb = ! this.selb; // toggle; mysong( this.selb ); //__________________________ start stop sound } } } //___________________________________________________ end class