Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Processing 需要纠正“错误”;摩擦“/台球游戏中球的移动距离,在处理中_Processing - Fatal编程技术网

Processing 需要纠正“错误”;摩擦“/台球游戏中球的移动距离,在处理中

Processing 需要纠正“错误”;摩擦“/台球游戏中球的移动距离,在处理中,processing,Processing,嘿,伙计们,我正在制作这个简单的台球游戏,我想要黑色的球,标记为bBall,与白色的球,标记为wBall,走相同的距离,不要更远。也就是说,如果白球在击中黑球之前移动20像素,我希望黑球移动20像素,然后停止。我怎样才能做到这一点呢?谢谢你们的帮助 处理2.0.3 ball wBall, bBall; int click; String msg; Boolean moving = false; float difx, dify; float cdistance; int steps = 40;

嘿,伙计们,我正在制作这个简单的台球游戏,我想要黑色的球,标记为bBall,与白色的球,标记为wBall,走相同的距离,不要更远。也就是说,如果白球在击中黑球之前移动20像素,我希望黑球移动20像素,然后停止。我怎样才能做到这一点呢?谢谢你们的帮助

处理2.0.3

ball wBall, bBall;
int click;
String msg;
Boolean moving = false;
float difx, dify;
float cdistance;
int steps = 40;
void setup(){
   click=0;
   size(800,400);
   background(16,77,27);
   wBall = new ball(35,#ffffff);
   bBall = new ball(35,#000000);
   msg="";
}

void mouseClicked(){
  if(!moving){
 click++; 
  }
}

void draw(){
  background(16,77,27);
  String msg;
  fill(0,0,0);
 ellipse(15,15,30,30); 
 ellipse(785,15,30,30);
 ellipse(15,385,30,30);
 ellipse(785,385,30,30);
 ellipse(410,15,30,30);
 ellipse(410,385,30,30);
 msg="the count is "+click;
 println("the count is "+click);
 //Moving Balls\\
 fill(255,255,255);
 noStroke();  

 if(click==0){
       wBall.xpos=mouseX;
       wBall.ypos=mouseY;
 }else if(click==1){
       bBall.xpos=mouseX;
       bBall.ypos=mouseY;
 }else if(click==2){
       difx = wBall.xpos-bBall.xpos;
       dify = wBall.ypos-bBall.ypos;
 }
  else if(click==3){
 cdistance = dist(wBall.xpos,wBall.ypos,bBall.xpos,bBall.ypos);
   if (cdistance>bBall.ballDiam/2){
       moving = true;
       wBall.xpos-=difx/steps;
       wBall.ypos-=dify/steps;
   }
   else{
      moving = false;
      click=4;
      println("click"+click);
   }
 }else if(click==4){
  if(cdistance<bBall.ballDiam){
    moving = true;
    bBall.xpos-=difx/steps;
    bBall.ypos-=dify/steps; 
  }
 }
 wBall.update();
 bBall.update();
}

class ball{
  float xpos, ypos;
  color myColor;
  int ballDiam;
  boolean visible = true;
  ball(int tempdiam, color tempColor){
    myColor=tempColor;
    ballDiam=tempdiam;
  }

   void update(){
   if(visible){
    fill(myColor);
    ellipse(xpos,ypos,ballDiam,ballDiam);
   }
  }
}
  void keyPressed(){
   if (key =='c'){
    setup();
   } 
}
ball-wBall,bBall;
点击;
串味精;
布尔移动=假;
浮动difx,dify;
浮动距离;
int步数=40;
无效设置(){
单击=0;
尺寸(800400);
背景(16,77,27);
wBall=新球(35,#ffffff);
bBall=新球(35,#000000);
msg=“”;
}
void mouseClicked(){
如果(!移动){
点击++;
}
}
作废提款(){
背景(16,77,27);
串味精;
填充(0,0,0);
椭圆(15,15,30,30);
椭圆(785,15,30,30);
椭圆(15385,30,30);
椭圆(785385,30,30);
椭圆(410,15,30,30);
椭圆(410385,30,30);
msg=“计数为”+单击;
println(“计数为”+点击);
//移动球\\
填充(255255);
仰泳();
如果(单击==0){
wBall.xpos=mouseX;
wBall.ypos=mouseY;
}否则如果(单击==1){
bBall.xpos=mouseX;
bBall.ypos=mouseY;
}否则如果(单击==2){
difx=wBall.xpos-bBall.xpos;
dify=wBall.ypos-bBall.ypos;
}
否则如果(单击==3){
cdistance=dist(wBall.xpos、wBall.ypos、bBall.xpos、bBall.ypos);
如果(距离>球直径/2){
移动=真;
wBall.xpos-=difx/steps;
wBall.ypos-=dify/steps;
}
否则{
移动=假;
点击=4;
println(“单击”+单击);
}
}否则如果(单击==4){

如果(c)距离一种方法是

 else if (click==4) {
    if (cdistance<bBall.ballDiam) {
      moving = true;
      bBall.xpos-=difx/steps;
      bBall.ypos-=dify/steps;
    }
  }
else if(单击==4){

如果(CDistance)在stack exchange站点上进行游戏设计可能会更好…尽管这是一个编程问题。
 else if (click==4) {
    if (cdistance<bBall.ballDiam) {
      if (dist(wBall.xpos, wBall.ypos, bBall.xpos, bBall.ypos) < sqrt(sq(difx)+sq(dify))) {
        moving = true;
        bBall.xpos-=difx/steps;
        bBall.ypos-=dify/steps;
      }
    }
  }