xxxxxxxxxx
295
///////////////////FONT STUFFS/////////////////
var myFont, fontReady = false;
function fontRead(){
fontReady = true;
}
function preload() {
myFont = loadFont("overmch.ttf", fontRead);
}
//////////////////////STACK//////////////////////
class Stack {
constructor()
{
this.items = [];
}
enq(element){
this.items.push(element);
}
deq(){
if (this.items.length == 0) return "LOSER";
return this.items.shift();
}
printStack(){
str = "";
for (i = 0; i < this.items.length; i++) str += this.items[i] + " ";
print(str);
}
}
/////////////////////CEREAL BITZ////////////////
class Bit{
constructor(x,y,c,l){
this.x = x;
this.y = y;
this.c = c;
this.l = l;
this.isDragged = false;
this.isWet = false;
}
clicked(mX,mY, bD){
let d1 = dist(mX,mY,this.x,this.y);
if(d1 < 20){
this.isDragged = !this.isDragged;
if(!this.isDragged){
let d2 = dist(bD[0],bD[1],this.x,this.y);
if(d2 < bD[2] - 10) this.isWet = true;
else this.isWet = false;
}
else this.isWet = false;
}
}
show(){
fill(this.c);
textAlign(CENTER);
textFont(myFont);
textSize(50);
text(this.l, this.x, this.y+10);
}
update(mX,mY){
this.show();
if(this.isDragged){
this.x = mX;
this.y = mY;
}
}
sink(bD){
let d = dist(bD[0],bD[1],this.x,this.y);
if(d < bD[2] - 10)print(this.l);
}
getIsWet(){
return this.isWet;
}
}
///////////////////////bowl/////////////////////
class Bowl{
constructor(){
this.bitz = [];
this.temp = [];
}
add(bit){
print("yooo")
this.bitz.push(bit);
}
update(){
for(var i = 0; i < this.bitz.length; i++){
bit = this.bitz[i];
if(bit != 0 && !this.bitz[i].getIsWet()){
this.bitz[i] = 0;
print("GEt OUTTA HERE");
}
}
this.cleanse();
}
cleanse(){
this.temp = [];
for(var i = 0; i < this.bitz.length; i++){
bit = this.bitz[i];
if(bit != 0) this.temp.push(bit);
}
this.bitz = this.temp;
}
getBitz(){
return this.bitz;
}
isIn(bit){
for(var i = 0; i < this.bitz.length; i++){
if(bit == this.bitz[i]) return true;
}
return false;
}
}
///////////////////////setup n draw///////////////////
function setup() {
createCanvas(1280, 720);
img = loadImage('tableplease.jpg');
bD = [860,370,230];
buttonData = [50,70,350,100];
spdata = [1210,245,50];
sd = [25,415,550,270];
timer = 5;
color = [200,100,0];
bit = new Bit(100,200,color,"g");
chars = [
"a","a","a","a","a","a","a","a","a","a","a","a",
"e","e","e","e","e","e","e","e","e","e","e","e",
"i","i","i","i","i","i","i","i","i","i","i","i",
"o","o","o","o","o","o","o","o","o","o","o","o",
"u","u","u","u",
"b","c","d","f","g","h","j","k","l","m",
"n","p","q","r","s","t","v","w","x","y","z",
"s","s","s",
"t","t","t",
"m","m","m",
"n","n","n",
"r", "r", "r",
"c", "c", "c",
"d", "d", "d",
"f", "f", "f",
"p", "p", "p",
"b", "b", "b",
"h", "h", "h",
"l", "l", "l",
"f", "f", "f"
];
colors = [
[255,148,148],
[112,234,222],
[255,160,74],
[255, 189, 230],
[255, 215, 112],
[149, 156, 239],
[255, 247, 146],
[163, 239, 185],
[211, 148, 207],
[184, 255, 251],
[178, 160, 216]
]
bitz = [];
generateBitz();
bowl = new Bowl;
isFirstTime = true;
bowls = new Stack;
}
function draw(){
image(img, 0, 0, img.width, img.height);
for(var i = 0; i < bitz.length; i++){
if(bitz[i] != 0) bitz[i].update(mouseX,mouseY);
}
if (frameCount % 60 == 0 && timer > 0) {
timer --;
}
if(timer == 0){
timer = 5;
knife();
cycleBowl();
}
}
/////////////////////MISC////////////////
function mousePressed(){
timer = 5;
for(var i = 0; i < bitz.length; i++){
bit = bitz[i];
bit.clicked(mouseX,mouseY,bD);
if(bit.getIsWet() && !bowl.isIn(bit)){
bowl.add(bit);
}
}
bowl.update();
let d = dist(buttonData[0],buttonData[1],mouseX,mouseY);
if(d < buttonData[2])bPussy();
let d2 = dist(spdata[0],spdata[1],mouseX,mouseY);
if(d2 < spdata[2]){
knife();
bowl = bowls.deq();
newBitz = bowl.getBitz();
for(var i = 0; i < newBitz.length; i++){
bitz.push(newBitz[i]);
}
}
}
function knife(){
for(var i = 0; i < bitz.length; i++){
bit = bitz[i];
if(bowl.isIn(bit)){
bitz[i] = 0;
}
}
cleany();
}
function cleany(){
temp = [];
for(var i = 0; i < bitz.length; i++){
bit = bitz[i];
if(bit != 0) temp.push(bit);
}
bitz = temp;
}
function cycleBowl(){
if(isFirstTime){
bowls.enq(bowl);
bowl = new Bowl;
isFirstTime = false;
}
else{
bowls.enq(bowl);
bowl = bowls.deq();
newBitz = bowl.getBitz();
for(var i = 0; i < newBitz.length; i++){
bitz.push(newBitz[i]);
}
}
}
function bPussy(){
bowls.enq(bowl);
bowl = new Bowl;
bitz = [];
generateBitz();
}
function generateBitz(){
for(var i = 0; i < 30; i++){
bitz[i] = new Bit(random(sd[0],sd[0] + sd[2]),random(sd[1],sd[1] + sd[3]),random(colors),random(chars));
}
}