/* @pjs font="Freeroad.ttf"; globalKeyEvents=true; preload="0.png, 1.png, 10.png, 11.png, 12.png, 13.png, 14.png, 15.png, 16.png, 17.png, 18.png, 19.png, 2.png, 20.png, 21.png, 22.png, 23.png, 24.png, 25.png, 3.png, 4.png, 5.png, 6.png, 7.png, 8.png, 9.png, walkr.png"; */ int fps =60; int nrimgs=26; int levels=8; int walkspeed=2; int onlevel,mode,chx,dir,carr; boolean wlk; boolean transit; int transtime; ArrayList objects; boolean[]cango; ob aa,spare; PImage[] grphx=new PImage[nrimgs]; PImage[] charac=new PImage[16]; void setup() {size(300,240);frameRate(fps); textFont(createFont("Freeroad.ttf",14));textMode(TOP); for(int i=0;i=0;i--) objects.remove(i);carr=-1; String[] datai=loadStrings("levinf.txt"); for(int i=0;i=0){ switch(tt) {case 0:break;//collision case 1:break;//pick up case 2:((ob)objects.get(objects.size()-1)).script=ss[6];//triggerd ((ob)objects.get(objects.size()-1)).trigger=ss[7];break; case 3:((ob)objects.get(objects.size()-1)).script=(ss[6].replace("_"," ")).replace("%","\n");//text } } } onlevel=0;chx=width/5; } void draw() {if(!transit)background(0); else {//pushMatrix(); translate(map(transtime,0,fps/4,0,chx+charac[0].width/2),map(transtime,0,fps/4,0,103+5)); scale(map(transtime--,0,fps/4,1,0)); if(transtime<0){transit=false;} //popMatrix(); } switch(mode) {case 0:break;//menu case 1:level(0);break;//meet } } void keyPressed() {switch(mode) {case 0:break;//menu case 1:level(1);break; } } void keyReleased() {if(wlk)wlk=false; } void level(int wh) {int haveload=0; if(wh==0) {image(grphx[0],0,0);//int sp= for(int i=0;i=0;k--) {ob b=(ob)objects.get(k);if(b.carried==true){ttt=0; if(dir>0)ttt=charac[0].width; b.x=(int)(chx-walkspeed*2.5*dir)-ttt/2;b.carried=false;}} aa.carried=true; } } if(aa.type==3){int ttt=aa.x+grphx[aa.img].width/2-chx-charac[0].width/2; if(abs(ttt)=0)if (aa.trigger.equals(((ob)objects.get(carr)).id))doscript(aa.script); }} } } int s=0; if(dir<0)s=8; if(wlk){image(charac[(int)(frameCount/2)%8+s],chx,103);if(dir>0){if(chx+walkspeed<290-haveload-charac[0].width)chx+=walkspeed;}else if(chx-walkspeed>10+haveload)chx-=walkspeed;} else image(charac[0+s],chx,103); } else {if(keyCode==LEFT){dir=-1;wlk=true;} if(keyCode==RIGHT){dir=1;wlk=true;} if(keyCode==UP){snd("tranzit.ogg");do{onlevel++;if(onlevel==levels)onlevel=0;}while(!cango[onlevel]);if(carr>=0){spare=((ob)objects.get(carr));spare.level=onlevel;}transit=true;transtime=fps/4;} if(keyCode==DOWN){snd("tranzit.ogg");do{onlevel--;if(onlevel==-1)onlevel=levels-1;}while(!cango[onlevel]);if(carr>=0){spare=((ob)objects.get(carr));spare.level=onlevel;}transit=true;transtime=fps/4;} } strokeWeight(2); stroke(50); for(int i=0;i=0;j--){String st=((ob)objects.get(j)).id;if(st.equals(s2[1])){if(j==carr)carr=-1;objects.remove(j);}}} else if(s2[0].equals("add")){ int tt= parseInt(s2[6]); objects.add(new ob(s2[1], parseInt(s2[2]), parseInt(s2[3]), parseInt(s2[4]), parseInt(s2[5]),tt)); if(tt>=0){ switch(tt) {case 0:break;//collision case 1:break;//pick up case 2:((ob)objects.get(objects.size()-1)).script=s2[7]; ((ob)objects.get(objects.size()-1)).trigger=s2[8];break; case 3:((ob)objects.get(objects.size()-1)).script=(s2[7].replace("_"," ")).replace("%","\n"); } } } else if(s2[0].equals("unlock")){cango[ parseInt(s2[1])]=true;} else if(s2[0].equals("lock")){cango[ parseInt(s2[1])]=false;} else if(s2[0].equals("sound")){snd(s2[1]);} } } class ob { boolean carried; String script,id,trigger; int x,y,img,level,to,type; ob(String idd,int imgx, int lv, int xx, int yy,int typee){id=idd;level=lv;img=imgx;x=xx;y=yy;type=typee;script="";} void sho(){image(grphx[img],x,y);} } PImage flipim(PImage im) {im.loadPixels(); PImage otherim=createImage(im.width,im.height,ARGB); otherim.loadPixels(); for (int i = 0; i < im.height; i++) { for (int j = 0; j < im.width; j++) { otherim.pixels[(i*im.width+j)] = im.pixels[(im.width-j-1)+i*im.width]; } } otherim.updatePixels(); return otherim; } void snd(String s) {(new Audio(s)).play(); } void mousePressed() {if(mouseX<50){dir=-1;wlk=true;} else if(mouseX>width-50){dir=1;wlk=true;} else if(mouseY<50){snd("tranzit.ogg");do{onlevel++;if(onlevel==levels)onlevel=0;}while(!cango[onlevel]);if(carr>=0){spare=((ob)objects.get(carr));spare.level=onlevel;}transit=true;transtime=fps/4;} else if(mouseY>height-50){snd("tranzit.ogg");do{onlevel--;if(onlevel==-1)onlevel=levels-1;}while(!cango[onlevel]);if(carr>=0){spare=((ob)objects.get(carr));spare.level=onlevel;}transit=true;transtime=fps/4;} } void mouseReleased() {if(wlk)wlk=false; }