Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import processing.serial.*;
- Serial myport;
- int numValues = 9;
- float[] values = new float[numValues];
- int ps_timer2;
- int ps_xdir;
- int ps_ydir;
- int ps_rresource=50;
- int ps_bresource=50;
- int ps_redwhealth=750;
- int ps_bluewhealth=750;
- int ps_redhp=10000;
- int ps_bluehp=10000;
- int ps_win=0;
- int ps_currentps_redworker;
- ArrayList<ps_redworker> ps_redworkers = new ArrayList<ps_redworker>();
- int ps_redworkersetDensity=5;
- int ps_currentps_redsoldier;
- ArrayList<ps_redsoldier> ps_redsoldiers = new ArrayList<ps_redsoldier>();
- int ps_redsoldiersetDensity=0;
- int ps_currentps_redarcher;
- ArrayList<ps_redarcher> ps_redarchers = new ArrayList<ps_redarcher>();
- int ps_redarchersetDensity=0;
- int ps_currentps_redwall;
- ArrayList<ps_redwall> ps_redwalls = new ArrayList<ps_redwall>();
- int ps_redwallsetDensity=0;
- int ps_currentps_blueworker;
- ArrayList<ps_blueworker> ps_blueworkers = new ArrayList<ps_blueworker>();
- int ps_blueworkerSetDensity=5;
- int ps_currentps_bluesoldier;
- ArrayList<ps_bluesoldier> ps_bluesoldiers = new ArrayList<ps_bluesoldier>();
- int ps_bluesoldiersetDensity=0;
- int ps_currentps_bluearcher;
- ArrayList<ps_bluearcher> ps_bluearchers = new ArrayList<ps_bluearcher>();
- int ps_bluearchersetDensity=0;
- int ps_currentps_bluewall;
- ArrayList<ps_bluewall> ps_bluewalls = new ArrayList<ps_bluewall>();
- int ps_bluewallSetDensity=0;
- ArrayList<ps_trees> ps_trees = new ArrayList<ps_trees>();
- int ps_treesSetDensity=400;
- int ps_xOff=240;
- void setup()
- {
- fullScreen(2);
- background(#1E7C13);
- String portName = Serial.list()[0];
- myport = new Serial(this, portName, 9600);
- }
- void draw()
- {
- scale(1.75, 1.75);
- translate(ps_xOff,0);
- if(ps_timer2>100)
- {
- println(values[0] +" , "+ values[1] + " , "+values[2] + " , "+values[3] + " , "+values[4] + " , "+values[5] + " , "+values[6] + " , "+values[7] + " , "+values[8]);
- if ( myport.available() > 0) {
- String inString = myport.readStringUntil('\n');
- if (inString != null) {
- inString = trim(inString);
- values = float(splitTokens(inString, ", \t"));
- if (values.length >= numValues) {
- for (int i=0; i< numValues ; i++) {
- }
- }
- }
- }
- if(ps_redhp<=0)
- {
- ps_win=1;
- }
- if(ps_bluehp<=0)
- {
- ps_win=2;
- }
- if(ps_win==1)
- {
- background(#1E7C13);
- fill(#1A03FF);
- textSize(50);
- text("BLUE WINS!",50,50);
- if(values[4]==0)
- {
- exit();
- }
- }
- if(ps_win==2)
- {
- background(#1E7C13);
- fill(#E82610);
- textSize(50);
- text("RED WINS!",50,50);
- if(values[4]==0)
- {
- exit();
- }
- }
- if(ps_win==0)
- {
- if(values[5]<400)
- {
- ps_xdir=0;
- }
- if(values[5]>600)
- {
- ps_xdir=1;
- }
- if(values[5]<600 && values[5]>400)
- {
- ps_xdir=-1;
- }
- if(values[6]<400)
- {
- ps_ydir=0;
- }
- if(values[6]>600)
- {
- ps_ydir=1;
- }
- if(values[6]<600 && values[6]>400)
- {
- ps_ydir=-1;
- }
- background(#1E7C13);
- noFill(); //hp gauge
- stroke(#FAFF03);
- strokeWeight(4);
- rect(59,379,101,11);
- rect(439,379,101,11);
- noStroke();
- fill(#E82610);
- rect(60,380,ps_redhp/100,10);
- fill(#1A03FF);
- rect(440,380,ps_bluehp/100,10);
- fill(#11BBED); //mineral zone
- ellipse(0,260+40,50,80);
- ellipse(570+30,260+40,50,80);
- noStroke();
- fill(#FFEE55); //road
- rect(170,285,260,30);
- stroke(0); //courtyards
- fill(#A0572A);
- rect(49,239,121,121);
- rect(429,239,121,121);
- rect(79,269,61,61);
- rect(459,269,61,61);
- noStroke();
- fill(0);
- textSize(15);
- text(ps_rresource,100,375);
- text(ps_bresource,485,375);
- if (ps_redworkers.size() < ps_redworkersetDensity) {
- ps_redworkers.add(new ps_redworker());
- }
- for (int i=0; i < ps_redworkers.size(); i++) {
- ps_currentps_redworker=i;
- ps_redworker x = ps_redworkers.get(i);
- x.update();
- }
- if (ps_blueworkers.size() < ps_blueworkerSetDensity) {
- ps_blueworkers.add(new ps_blueworker());
- }
- for (int i=0; i < ps_blueworkers.size(); i++) {
- ps_currentps_blueworker=i;
- ps_blueworker x = ps_blueworkers.get(i);
- x.update();
- }
- if (ps_redsoldiers.size() < ps_redsoldiersetDensity) {
- ps_redsoldiers.add(new ps_redsoldier());
- }
- for (int i=0; i < ps_redsoldiers.size(); i++) {
- ps_currentps_redsoldier=i;
- ps_redsoldier x = ps_redsoldiers.get(i);
- x.update();
- }
- if (ps_bluesoldiers.size() < ps_bluesoldiersetDensity) {
- ps_bluesoldiers.add(new ps_bluesoldier());
- }
- for (int i=0; i < ps_bluesoldiers.size(); i++) {
- ps_currentps_bluesoldier=i;
- ps_bluesoldier x = ps_bluesoldiers.get(i);
- x.update();
- }
- if (ps_redwalls.size() < ps_redwallsetDensity) {
- ps_redwalls.add(new ps_redwall());
- ps_redwhealth=100;
- }
- for (int i=0; i < ps_redwalls.size(); i++) {
- ps_currentps_redwall=i;
- ps_redwall x = ps_redwalls.get(i);
- x.update();
- }
- if (ps_bluewalls.size() < ps_bluewallSetDensity) {
- ps_bluewalls.add(new ps_bluewall());
- ps_bluewhealth=100;
- }
- for (int i=0; i < ps_bluewalls.size(); i++) {
- ps_currentps_bluewall=i;
- ps_bluewall x = ps_bluewalls.get(i);
- x.update();
- }
- if(ps_redworkers.size()==1)
- {
- ps_redworkers.add(new ps_redworker());
- }
- if(ps_rresource>20 && ps_ydir==1 && ps_redworkers.size()<100)
- {
- ps_redworkers.add(new ps_redworker());
- ps_rresource-=15;
- key='j';
- }
- if(ps_bresource>20 && values[1]==0 && ps_blueworkers.size()<100)
- {
- ps_blueworkers.add(new ps_blueworker());
- ps_bresource-=15;
- key='j';
- }
- if(ps_rresource>30 && ps_xdir==1)
- {
- ps_redsoldiers.add(new ps_redsoldier());
- ps_rresource-=30;
- key='j';
- }
- if(ps_bresource>30 && values[0]==0)
- {
- ps_bluesoldiers.add(new ps_bluesoldier());
- ps_bresource-=30;
- key='j';
- }
- if(ps_rresource>50 && ps_ydir==0)
- {
- ps_redarchers.add(new ps_redarcher());
- ps_rresource-=35;
- key='j';
- }
- if(ps_bresource>50 && values[2]==0)
- {
- ps_bluearchers.add(new ps_bluearcher());
- ps_bresource-=35;
- key='j';
- }
- if(ps_rresource>500 && ps_xdir==0 && ps_redwalls.size()<1)
- {
- ps_redwalls.add(new ps_redwall());
- ps_redwhealth=750;
- ps_rresource-=500;
- key='j';
- }
- if(ps_bresource>500 && values[3]==0 && ps_bluewalls.size()<1)
- {
- ps_bluewalls.add(new ps_bluewall());
- ps_bluewhealth=750;
- ps_bresource-=500;
- key='j';
- }
- fill(#686874); //red castles
- rect(50,240,30,120);
- rect(140,240,30,120);
- rect(50,240,120,30);
- rect(50,330,120,30);
- strokeWeight(1.5);
- stroke(0);
- fill(#7E7E7E);
- rect(50,240,10,10);
- rect(78,240,10,10);
- rect(105,240,10,10);
- rect(132,240,10,10);
- rect(160,240,10,10);
- rect(50,350,10,10);
- rect(78,350,10,10);
- rect(105,350,10,10);
- rect(132,350,10,10);
- rect(160,350,10,10);
- rect(50,268,10,10);
- rect(50,295,10,10);
- rect(50,322,10,10);
- rect(160,268,10,10);
- rect(160,295,10,10);
- rect(160,322,10,10);
- noStroke();
- fill(#686874); //blue castle
- rect(430,240,30,120);
- rect(520,240,30,120);
- rect(430,240,120,30);
- rect(430,330,120,30);
- stroke(0);
- fill(#7E7E7E);
- rect(430,240,10,10);
- rect(78+380,240,10,10);
- rect(105+380,240,10,10);
- rect(132+380,240,10,10);
- rect(160+380,240,10,10);
- rect(430,350,10,10);
- rect(78+380,350,10,10);
- rect(105+380,350,10,10);
- rect(132+380,350,10,10);
- rect(160+380,350,10,10);
- rect(430,268,10,10);
- rect(430,295,10,10);
- rect(430,322,10,10);
- rect(160+380,268,10,10);
- rect(160+380,295,10,10);
- rect(160+380,322,10,10);
- if (ps_redarchers.size() < ps_redarchersetDensity) {
- ps_redarchers.add(new ps_redarcher());
- }
- for (int i=0; i < ps_redarchers.size(); i++) {
- ps_currentps_redarcher=i;
- ps_redarcher x = ps_redarchers.get(i);
- x.update();
- }
- if (ps_bluearchers.size() < ps_bluearchersetDensity) {
- ps_bluearchers.add(new ps_bluearcher());
- }
- for (int i=0; i < ps_bluearchers.size(); i++) {
- ps_currentps_bluearcher=i;
- ps_bluearcher x = ps_bluearchers.get(i);
- x.update();
- }
- if(ps_trees.size() < ps_treesSetDensity) {
- ps_trees.add(new ps_trees());
- }
- for (int i=0; i < ps_trees.size(); i++) {
- ps_trees x = ps_trees.get(i);
- x.update();
- }
- }
- }
- ps_timer2++;
- if(key=='t' && keyPressed)
- {
- ps_rresource=100000;
- ps_bresource=100000;
- }
- }
- void tree(float x, float y)
- {
- strokeWeight(.5);
- stroke(0);
- fill(#834924);
- rect(x,y,5,25);
- noStroke();
- fill(#3BF52F);
- ellipse(x-2.5,y,5,5);
- ellipse(x+7.5,y,5,5);
- ellipse(x-2.5,y+5,5,5);
- ellipse(x+7.5,y+5,5,5);
- ellipse(x-6,y+5,5,5);
- ellipse(x+11,y+5,5,5);
- ellipse(x-3,y-5,5,5);
- ellipse(x+8,y-5,5,5);
- ellipse(x-4,y,5,5);
- ellipse(x+9,y,5,5);
- ellipse(x+2.5,y-2.5,5,5);
- ellipse(x+2.5,y-7.5,5,5);
- ellipse(x+2.5,y+3,5,5);
- fill(#FF0000);
- ellipse(x+6,y+5,2,2);
- ellipse(x-3,y-4,2,2);
- ellipse(x+5,y-3,2,2);
- }
- class ps_trees {
- //0 - 600, 0 - 215 & 415 - 600
- //!202-243 || 366-404
- int xPos;
- int yPos;
- int bottom;
- int side;
- ps_trees () {
- bottom=int(random(0,2));
- side=int(random(0,3));
- if(bottom==1) {
- yPos=int(random(415, 600));
- } else {
- yPos=int(random(0, 215));
- }
- if(side==0) {
- xPos=int(random(0, 201));
- }
- if(side==1) {
- xPos=int(random(244,365));
- }
- if(side==2) {
- xPos=int(random(405,600));
- }
- }
- void update() {
- tree(xPos, yPos);
- }
- }
- class ps_redworker
- {
- int gathertimer=0;
- int x;
- int y;
- boolean carry=false;
- boolean startingPointSet=false;
- void update()
- {
- strokeWeight(2);
- fill(#E82610);
- ellipse(x+5,y+5,10,10);
- if (startingPointSet==false) {
- x=105;
- y=295;
- startingPointSet=true;
- }
- if(carry==false)
- {
- x--;
- }
- if(carry==true && gathertimer>=100)
- {
- x++;
- }
- if(x==10)
- {
- carry=true;
- gathertimer++;
- }
- if(x==105 && carry==true)
- {
- carry=false;
- gathertimer=0;
- ps_rresource+=5;
- }
- }
- }
- class ps_redsoldier
- {
- int x;
- int y;
- float evade;
- float evadechance;
- int timer;
- boolean startingPointSet=false;
- boolean attack=false;
- boolean wallblocked=false;
- void update()
- {
- strokeWeight(2);
- fill(#E82610);
- ellipse(x+5,y+5,10,10);
- stroke(#714726);
- line(x,y+10,x+15,y+10); //this is worl
- stroke(#AFAAA6);
- line(x+15,y+10,x+13,y+8);
- line(x+15,y+10,x+13,y+12);
- noStroke();
- if (startingPointSet==false) {
- x=int(random(80,130));
- y=int(random(270,320));
- startingPointSet=true;
- }
- if(values[7]==0)
- {
- attack=true;
- }
- if(ps_bluewalls.size()==1 && x<=365 && x>360)
- {
- wallblocked=true;
- }
- if(ps_bluewalls.size()==0 && x<=365 && x>360)
- {
- wallblocked=false;
- }
- if(attack==true && wallblocked==false && x < 470)
- {
- x++;
- }else if(attack==true && wallblocked==true){
- ps_bluewhealth--;
- }
- if(x>300 && timer%75==0)
- {
- for(int i=0; i<ps_bluearchers.size() && ps_redsoldiers.size()>1 || ps_bluearchers.size()>=1 && i<ps_redsoldiers.size(); i++)
- {
- evadechance=pow(.5,ps_bluearchers.size());
- evade=random(0,1);
- if(evade>=evadechance)
- {
- evade=0;
- ps_redsoldiers.remove(ps_currentps_redsoldier);
- }
- }
- }
- timer++;
- if(x==470)
- {
- ps_bluehp--;
- }
- }
- }
- class ps_redarcher
- {
- int x;
- int y;
- boolean startingPointSet=false;
- boolean attack=false;
- void update()
- {
- strokeWeight(2);
- noStroke();
- fill(#E82610);
- ellipse(x+5,y+5,10,10);
- noFill();
- stroke(#764718);
- arc(x+20,y+5,10,10,-110*3.14159265359/180,110*3.14159265359/180);
- strokeWeight(1);
- stroke(#C6C4C2);
- line(x+20,y,x+10,y+5);
- line(x+20,y+10,x+10,y+5);
- if (startingPointSet==false) {
- x=145;
- y=int(random(250,340));
- startingPointSet=true;
- }
- }
- }
- class ps_redwall
- {
- int x;
- int y;
- boolean startingPointSet=false;
- void update()
- {
- strokeWeight(1.25);
- stroke(0);
- fill(#676767);
- rect(210,0,30,1000);
- strokeWeight(1.5);
- fill(#7E7E7E);
- rect(210,10,10,10);
- rect(210,40,10,10);
- rect(210,70,10,10);
- rect(210,100,10,10);
- rect(210,130,10,10);
- rect(210,160,10,10);
- rect(210,190,10,10);
- rect(210,220,10,10);
- rect(210,250,10,10);
- rect(210,280,10,10);
- rect(210,310,10,10);
- rect(210,340,10,10);
- rect(210,370,10,10);
- rect(210,400,10,10);
- rect(210,430,10,10);
- rect(210,460,10,10);
- rect(210,490,10,10);
- rect(210,520,10,10);
- rect(210,550,10,10);
- rect(210,580,10,10);
- rect(230,10,10,10);
- rect(230,40,10,10);
- rect(230,70,10,10);
- rect(230,100,10,10);
- rect(230,130,10,10);
- rect(230,160,10,10);
- rect(230,190,10,10);
- rect(230,220,10,10);
- rect(230,250,10,10);
- rect(230,280,10,10);
- rect(230,310,10,10);
- rect(230,340,10,10);
- rect(230,370,10,10);
- rect(230,400,10,10);
- rect(230,430,10,10);
- rect(230,460,10,10);
- rect(230,490,10,10);
- rect(230,520,10,10);
- rect(230,550,10,10);
- rect(230,580,10,10);
- noStroke();
- if(ps_redwhealth<1)
- {
- ps_redwalls.remove(ps_currentps_redwall);
- }
- }
- }
- class ps_blueworker
- {
- int gathertimer=0;
- int x;
- int y;
- boolean carry=false;
- boolean startingPointSet=false;
- void update()
- {
- strokeWeight(2);
- fill(#1A03FF);
- ellipse(x+5,y+5,10,10);
- if (startingPointSet==false) {
- x=485;
- y=295;
- startingPointSet=true;
- }
- if(carry==false)
- {
- x++;
- }
- if(carry==true && gathertimer>=100)
- {
- x--;
- }
- if(x==580)
- {
- carry=true;
- gathertimer++;
- }
- if(x==485 && carry==true)
- {
- carry=false;
- gathertimer=0;
- ps_bresource+=5*2;
- }
- }
- }
- class ps_bluesoldier
- {
- int x;
- int y;
- float evade;
- float evadechance;
- int timer;
- boolean startingPointSet=false;
- boolean attack=false;
- boolean wallblocked=false;
- void update()
- {
- strokeWeight(2);
- fill(#1A03FF);
- ellipse(x+5,y+5,10,10);
- stroke(#714726);
- line(x+10,y+10,x-5,y+10); //this is worl
- stroke(#AFAAA6);
- line(x-5,y+10,x-3,y+8);
- line(x-5,y+10,x-3,y+12);
- noStroke();
- if (startingPointSet==false) {
- x=int(random(460,510));
- y=int(random(270,320));
- startingPointSet=true;
- }
- if(values[8]==0)
- {
- attack=true;
- }
- if(ps_redwalls.size()==1 && x<240 && x>=235)
- {
- wallblocked=true;
- }
- if(ps_redwalls.size()==0 && x<240 && x>=235)
- {
- wallblocked=false;
- }
- if(attack==true && wallblocked==false && x > 120 )
- {
- x--;
- }else if(attack==true && wallblocked==true){
- ps_redwhealth--;
- }
- if(x<300 && timer%75==0)
- {
- for(int i=0; i<ps_redarchers.size() && ps_bluesoldiers.size()>1 || ps_redarchers.size()>1 && i<ps_bluesoldiers.size(); i++)
- {
- evadechance=pow(.9,ps_redarchers.size());
- evade=random(0,1);
- if(evade>=evadechance)
- {
- ps_bluesoldiers.remove(ps_currentps_bluesoldier);
- evade=0;
- }
- }
- }
- timer++;
- if(x==120)
- {
- ps_redhp--;
- }
- }
- }
- class ps_bluearcher
- {
- int x;
- int y;
- boolean startingPointSet=false;
- boolean attack=false;
- void update()
- {
- strokeWeight(2);
- noStroke();
- fill(#1A03FF);
- ellipse(x+5,y+5,10,10);
- noFill();
- stroke(#764718);
- arc(x-10,y+5,10,10,70*3.14159265359/180,290*3.14159265359/180);
- strokeWeight(1);
- stroke(#C6C4C2);
- line(x-10,y,x,y+5);
- line(x-10,y+10,x,y+5);
- if (startingPointSet==false) {
- x=445;
- y=int(random(250,340));
- startingPointSet=true;
- }
- }
- }
- class ps_bluewall
- {
- int x;
- int y;
- boolean startingPointSet=false;
- void update()
- {
- strokeWeight(1.25);
- stroke(0);
- fill(#676767);
- rect(370,0,30,1000); //wall blocks
- strokeWeight(1.5);
- fill(#7E7E7E);
- rect(370,10,10,10);
- rect(370,40,10,10);
- rect(370,70,10,10);
- rect(370,100,10,10);
- rect(370,130,10,10);
- rect(370,160,10,10);
- rect(370,190,10,10);
- rect(370,220,10,10);
- rect(370,250,10,10);
- rect(370,280,10,10);
- rect(370,310,10,10);
- rect(370,340,10,10);
- rect(370,370,10,10);
- rect(370,400,10,10);
- rect(370,430,10,10);
- rect(370,460,10,10);
- rect(370,490,10,10);
- rect(370,520,10,10);
- rect(370,550,10,10);
- rect(370,580,10,10);
- rect(390,10,10,10);
- rect(390,40,10,10);
- rect(390,70,10,10);
- rect(390,100,10,10);
- rect(390,130,10,10);
- rect(390,160,10,10);
- rect(390,190,10,10);
- rect(390,220,10,10);
- rect(390,250,10,10);
- rect(390,280,10,10);
- rect(390,310,10,10);
- rect(390,340,10,10);
- rect(390,370,10,10);
- rect(390,400,10,10);
- rect(390,430,10,10);
- rect(390,460,10,10);
- rect(390,490,10,10);
- rect(390,520,10,10);
- rect(390,550,10,10);
- rect(390,580,10,10);
- noStroke();
- if(ps_bluewhealth<1)
- {
- ps_bluewalls.remove(ps_currentps_bluewall);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement