प्रसंस्करण में बिलियर्ड गेम में गेंदों की "घर्षण"/यात्रा दूरी को सही करने की आवश्यकता है

अरे दोस्तों, मैं इस साधारण बिलियर्ड गेम के निर्माण की प्रक्रिया में हूं, और मुझे ब्लैक बॉल चाहिए, जिसे बीबीएल लेबल किया गया है, सफेद गेंद के समान दूरी पर जाने के लिए, 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
0
यह गेम डिज़ाइन के लिए स्टैक एक्सचेंज साइट पर बेहतर हो सकता है ... हालांकि यह एक प्रोग्रामिंग प्रश्न है।
जोड़ा लेखक DrCord, स्रोत

1 उत्तर

एक तरीका आपके लिए बनाना होगा

 else if (click==4) {
    if (cdistance

सेवा मेरे

 else if (click==4) {
    if (cdistance

अनिवार्य रूप से केवल गेंद को तब तक ले जाना जब तक कि सफेद से इसकी दूरी मूल अंतर से कम न हो ...

Despite this though I feel you are approaching this the hard way. Maybe take a look सेवा मेरेintroduce speed and acceleration (and maybe even friction) calculations सेवा मेरेyour game and things will make more sense...

0
जोड़ा