Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //OYE! Random pastebin explorers!
- //This is a Processing sketch: processing.org
- //Basically Java, but with more stuff.
- //Yeah sure, take this code and do whatever you want with it. To run it you only need Processing, so yeah, go ahead. lol
- import com.jogamp.newt.opengl.GLWindow;
- GLWindow r;
- PImage test;
- float SpeedCoef=16.6;
- float SpeedCoefSmooth=16.6;
- int PrevMillis=0;
- void box(float x,float y,float z,float sx,float sy,float sz){
- pushMatrix();
- translate(x+sx/2,y+sy/2,z-sz/2);
- box(sx,sy,sz);
- popMatrix();
- }
- void sphere(float x,float y,float z,float s){
- pushMatrix();
- translate(x+s/2,y+s/2,z+s/2);
- sphere(s);
- popMatrix();
- }
- float rx=0,ry=0,rz=0;
- float x=0,y=0,z=0;
- float xx=55,yy=586,zz=318,angle=34,angle2=43;
- //float xx=50,yy=50,zz,angle,angle2;
- float Speed=1;
- float Sensitivity=0.3;
- void setup(){
- r=(GLWindow)surface.getNative();
- size(640,480,P3D);
- surface.setResizable(true);
- }
- void draw(){
- background(0);
- SpeedCoef=min((millis()-PrevMillis)/(100.0/6),5);
- PrevMillis=millis();
- SpeedCoefSmooth+=(SpeedCoef-SpeedCoefSmooth)*0.1;
- //rx+=(key("uparrow")-key("downarrow"))/360.0*3.14*SpeedCoef;
- //ry+=(key("rightarrow")-key("leftarrow"))/360.0*3.14*SpeedCoef;
- //rotateX(rx);
- //rotateY(ry);
- // x+=(key("a")-key("d"))*SpeedCoef;
- // y+=(key("space")-key("ctrl"))*SpeedCoef;
- // z+=(key("w")-key("s"))*SpeedCoef;
- // translate(x,y,z);
- println("gg",key("space")-key("ctrl"),angle,angle2,rotX(0,0,angle),rotX(rotX(0,0,angle),rotX(0,key("ctrl")-key("space"),angle),angle2));
- angle+=(key("rightarrow")-key("leftarrow"))*SpeedCoef*PI;
- angle2+=(key("downarrow")-key("uparrow"))*SpeedCoef*PI;
- if(m2==1&tm2==0){angle+=(mouseX-width/2)*Sensitivity; angle2+=(mouseY-height/2)*Sensitivity;}
- angle2=clamp(angle2,-89,89);
- angle%=360;
- Speed=(1+key("shift"))/(key("alt")+1);
- xx+=rotX(rotX(key("d")-key("a"),key("s")-key("w"),angle),rotX(sign(angle2)*(key("a")-key("d")),key("space")-key("ctrl"),angle),angle2)*SpeedCoef*Speed;
- yy+=rotX(rotY(key("d")-key("a"),key("s")-key("w"),angle),rotY(sign(angle2)*(key("a")-key("d")),key("space")-key("ctrl"),angle),angle2)*SpeedCoef*Speed;
- zz+=rotX(key("space")-key("ctrl"),key("w")-key("s"),angle2)*SpeedCoef*Speed;
- println(xx,yy,zz,angle,angle2);
- camera(xx,yy,zz,xx+rotX(rotX(0,-1,angle),0,angle2)*10,yy+rotX(rotY(0,-1,angle),0,angle2)*10,zz+rotX(0,1,angle2)*10,0,0,-1);
- ambientLight(64,64,64);
- directionalLight(255,255,255,0,0,-1);
- noStroke();
- sphere(xx,yy,zz,10);
- sphere(xx+rotX(rotX(0,-1,angle),0,angle2)*10,yy+rotX(rotY(0,-1,angle),0,angle2)*10,zz+rotX(0,1,angle2)*10,5);
- fill(64,128,32);
- rect(0,0,width,height);
- fill(255);
- // if(m1==1){texture(test);}
- //draw 3D stuff now
- stroke(0);
- box(360,240,0,20,20,-50);
- camera(); noLights();
- hint(DISABLE_DEPTH_TEST);
- //draw 2D stuff now
- fill(0,128); noStroke();
- rect(0,0,30,20);
- fill(255);
- text(floor(frameRate),0,15);
- stroke(0);
- button(40,40,50,20,"Hey!",12,false);
- hint(ENABLE_DEPTH_TEST);
- ScrollVelocity*=0.9;
- tm1=tm2=tmc=mwup=mwdown=0;
- if(m2==1){
- r.setPointerVisible(false);
- r.warpPointer(width/2,height/2);
- r.confinePointer(true);
- }else{r.confinePointer(false); r.setPointerVisible(true);}
- }
- float clipx1=0,clipx2=0,clipy1=0,clipy2=0;
- void clip2(float x1, float y1, float sizex, float sizey){
- clip(x1,y1,sizex,sizey);
- clipx1=x1; clipx2=x1+sizex; clipy1=y1; clipy2=y1+sizey;
- }
- void noclip2(){
- noClip();
- clipx1=clipx2=clipy1=clipy2=0;
- }
- boolean inclip(float x, float y){
- if(x>clipx1&x<clipx2&y>clipy1&y<clipy2|clipx1==clipx2){return true;}
- return false;
- }
- boolean button(float x, float y, float sizex, float sizey,String text,float TextSize,boolean hold){
- return button(x,y,sizex,sizey,text,TextSize,hold,255);}
- boolean button(float x, float y, float sizex, float sizey,String text,float TextSize,boolean hold,int a){
- return button(x,y,sizex,sizey,text,TextSize,hold,128,120,64,a);}
- boolean button(float x, float y, float sizex, float sizey,String text,float TextSize,boolean hold,int r,int g,int b){
- return button(x,y,sizex,sizey,text,TextSize,hold,r,g,b,255);}
- boolean button(float x, float y, float sizex, float sizey,String text,float TextSize,boolean hold,int r,int g,int b,int a){
- sizex-=1; sizey-=1;
- boolean Pressed=false;
- if(ButtonsWorking){stroke(0);}else{noStroke();}
- if(mouseX>x&mouseX<x+sizex&mouseY>y&mouseY<y+sizey&ButtonsWorking&inclip(mouseX,mouseY)){
- fill(r+40,g+40,b+40,a);
- if(mwup!=0|mwdown!=0){ButtonScrolled=true;}
- if((tm1==1|(ButtonPressed&m1==1))&(1-int(ButtonName.equals(text)|ButtonName.equals("")))*int(ButtonPressed)==0
- &((1-tm1)*int(!hold))==0){//if(!hold){m1=0;}
- ButtonPressed=true; Pressed=true; fill(r-32,g-32,b-32,255); ButtonName=text;}
- if(tm2==1){Button2Pressed=true;}
- }else{
- fill(r,g,b,a);}
- rect(x,y,sizex,sizey);
- fill(255);
- textSize(12);
- textSize(max(min(sizex/textWidth(text)*12,sizey*0.6,TextSize)-1,0.1));
- textAlign(CENTER,CENTER);
- text(text,x+sizex/2,y+sizey/2);
- textSize(12);
- textAlign(LEFT,DOWN);
- return Pressed;}
- float clamp(float in,float min,float max){
- if(in!=in){return max(0,min);}
- return max(min(in,max),min);
- }
- int sign(float in){
- if(in<0){return -1;}
- if(in>0){return 1;}
- return 0;
- }
- float angle(float x, float y){
- if(x==-0){x=0;}
- if(y==-0){y=0;}
- return y!=0?(x<0?(180*sign(y)-(atan(y/abs(x))/(PI)*180)):atan(y/abs(x))/(PI)*180):sign(x)<0?(180):0;
- //return y!=0?(-sign(x)*(180*sign(y)-(atan(y/abs(x))/(PI)*180))/(PI)*180):sign(x)<0?(180):0;
- }
- float rotX(float x, float y, float degrees){
- return sqrt(x*x+y*y)*cos((angle(x,y)+degrees)/180*PI);
- }
- float rotY(float x, float y, float degrees){
- return sqrt(x*x+y*y)*sin((angle(x,y)+degrees)/180*PI);
- }
- int m1=0; int m2=0; int mc=0; int mwup=0; int mwdown=0;
- int tm1=0; int tm2=0; int tmc=0;
- float ScrollVelocity=0;
- boolean ButtonPressed=false;
- boolean SliderPressed=false;
- boolean Button2Pressed=false;
- boolean ButtonsWorking=true;
- boolean ButtonScrolled=false;
- String ButtonName="";
- char lowercase(char in){
- return str(in).toLowerCase().charAt(0);
- }
- char uppercase(char in){
- return str(in).toUpperCase().charAt(0);
- }
- int key(String name){
- try{return Keys.getInt(1,name);}catch(Exception e){Keys.addColumn(name); return 0;}
- }
- void mouseWheel(MouseEvent event) {
- if(event.getCount()==1){mwdown++; ScrollVelocity+=7;}
- if(event.getCount()==-1){mwup++; ScrollVelocity-=7;}
- }
- void mouseReleased(){
- if(mouseButton==LEFT){m1=0; ButtonPressed=false; SliderPressed=false; ButtonName="";}
- if(mouseButton==CENTER){mc=0;}
- if(mouseButton==RIGHT){m2=0; Button2Pressed=false; SliderPressed=false;}
- //mouseStuff();
- }
- void mousePressed(){
- if(mouseButton==LEFT){m1=1; tm1=1;}
- if(mouseButton==CENTER){mc=1; tmc=1;}
- if(mouseButton==RIGHT){m2=1; tm2=1;}
- TextField="";
- TextFieldUsed=false;
- }
- String codeKey(int in,char key){
- if(in==16&int(key)==0){return "pgup";}
- if(in==SHIFT){return "shift";}
- if(in==ESC){return "escape";}
- if(in==CONTROL){return "ctrl";}
- if(in==0){return "weirdkey";}
- if(in==2){return "home";}
- if(in==3){return "end";}
- if(in==5){return "printscreen";}
- if(in==8){return "backspace";}
- if(in==9){return "tab";}
- if(in==10){return "enter";}
- if(in==11){return "pgdown";}
- if(in==16){return "pgup";}
- if(in==18){return "alt";}
- if(in==20){return "capslock";}
- if(in==32){return "space";}
- if(in==37){return "leftarrow";}
- if(in==38){return "uparrow";}
- if(in==39){return "rightarrow";}
- if(in==40){return "downarrow";}
- if(in==19|in==148){return "pause";}
- if(in==192|in==96){return "tidle";}
- if(in==97){return "f1";}
- if(in==98){return "f2";}
- if(in==99){return "f3";}
- if(in==100){return "f4";}
- if(in==101){return "f5";}
- if(in==102){return "f6";}
- if(in==103){return "f7";}
- if(in==104){return "f8";}
- if(in==105){return "f9";}
- if(in==106){return "f10";}
- if(in==107){return "f11";}
- if(in==108){return "f12";}
- if(in==128){return "numpad0";}
- if(in==129){return "numpad1";}
- if(in==130){return "numpad2";}
- if(in==131){return "numpad3";}
- if(in==132){return "numpad4";}
- if(in==133){return "numpad5";}
- if(in==134){return "numpad6";}
- if(in==135){return "numpad7";}
- if(in==136){return "numpad8";}
- if(in==137){return "numpad9";}
- if(in==138){return "numpad.";}
- if(in==139){return "numpad+";}
- if(in==140){return "numpad-";}
- if(in==141){return "numpad*";}
- if(in==142){return "numpad/";}
- if(in==147){return "delete";}
- if(in==157){return "windows";}
- return str(lowercase(char(in)));
- }
- String TextField="";
- boolean TextFieldUsed=false;
- String TextFieldText="";
- Table Keys=new Table();
- void keyPressed(){
- //if(codeKey(keyCode,key).equals("shift")){concmd("textshift 1");}
- if(TextFieldUsed){
- if(codeKey(keyCode,key).length()==1){
- TextFieldText+=key;
- }else{
- try{if(codeKey(keyCode,key).equals("backspace")){TextFieldText=TextFieldText.substring(0,TextFieldText.length()-1);}}catch(Exception e){TextFieldText="";}
- if(codeKey(keyCode,key).equals("space")){TextFieldText+=" ";}
- }
- }else{
- try{Keys.setInt(1,codeKey(keyCode,key),1);}catch(Exception e){ Keys.addColumn(codeKey(keyCode,key)); Keys.setInt(1,codeKey(keyCode,key),1); println("KEY ",keyCode,"(",codeKey(keyCode,key),") ADDED!");}
- try{Keys.setInt(1,"t"+codeKey(keyCode,key),1);}catch(Exception e){ Keys.addColumn("t"+codeKey(keyCode,key)); Keys.setInt(1,"t"+codeKey(keyCode,key),1); println("KEY ",keyCode,"(","t"+codeKey(keyCode,key),") ADDED!");}
- try{Keys.setInt(1,"tt"+codeKey(keyCode,key),1-Keys.getInt(1,"tt"+codeKey(keyCode,key)));}catch(Exception e){ Keys.addColumn("tt"+codeKey(keyCode,key)); Keys.setInt(1,"tt"+codeKey(keyCode,key),1); println("KEY ",keyCode,"(","tt"+codeKey(keyCode,key),") ADDED!");}
- }
- //if(codeKey(keyCode,key).equals("escape")){key=char(0);}
- }
- void keyReleased(){
- try{Keys.setInt(1,codeKey(keyCode,key),0);}catch(Exception e){ Keys.addColumn(codeKey(keyCode,key)); Keys.setInt(1,codeKey(keyCode,key),0); println("KEY ",keyCode,"(",codeKey(keyCode,key),") ADDED!");}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement