首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试着打完一局台球

试着打完一局台球
EN

Stack Overflow用户
提问于 2014-04-17 07:49:41
回答 1查看 208关注 0票数 0

嘿,伙计们,我正在做一个台球游戏,大部分时间我都玩完了,但是我似乎不知道最后的几个步骤,除了这些细节,基本上一切都是正确的。有没有人能帮我这么近。

在任何时候,按下键盘上的“c”键都可以清除游戏,允许玩家再试一次。

步骤1-鼠标第一次左键单击时,应在鼠标所在位置居中显示一个白色提示球。

步骤2-鼠标左键单击第二次时,应在鼠标所在位置居中显示一个目标球。目标球应该是与主球不同的颜色。注意,目标球不能放在主球的顶部。在这一步中,你应该测量两个球之间的距离,这样你就可以知道台球要走多远。

步骤3-显示两个球后,单击鼠标左键将在目标球上启动主球。

步骤4-当主球接触到目标球的边缘时,主球应该停止,目标球应该以相同的速度向相同的方向移动,并移动与主球移动的距离相同的距离步骤5-现在所有的操作都发生了,你可以重置整个应用程序,将其设置回步骤3,或者什么都不做并通知用户点击C按钮。

这是我的代码,我真的很感谢大家的帮助。

代码语言:javascript
复制
ball whiteBall, blackBall;
int click;
String msg;
Boolean moving = false;
int difx, dify;
float cdistance;
int steps = 20;
void setup(){
   click=0;
   size(600,400);
   background(16,77,27);
   whiteBall = new ball(35,#ffffff);
   blackBall = new ball(35,#000000);
   msg="";
}

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

void draw(){
  background(20,100,20);
  String msg;
  fill(0,0,0);





 fill(200,200,200);
 noStroke();  
 blackBall.xpos=(300 );
 blackBall.ypos=height/2;
 blackBall.update();
 if(click==0){
  whiteBall.xpos=mouseX;
  whiteBall.ypos=mouseY;
 }else if(click==1){
   difx = whiteBall.xpos-blackBall.xpos;
   dify = whiteBall.ypos-blackBall.ypos;
 }else if(click==2){
  cdistance = dist(whiteBall.xpos,whiteBall.ypos,blackBall.xpos,blackBall.ypos);
   if (cdistance>blackBall.ballDiam/2){
    moving = true;
    whiteBall.xpos-=difx/steps;
    whiteBall.ypos-=dify/steps;
   }else{
      moving = false;
      whiteBall.visible=false;
      click=3;
   } 
 }
 whiteBall.update();
}

class ball{
  int 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);
   }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-06-04 19:28:08

要检测何时击球,请使用dist(pos1.x,pos1.y,pos2.x,pos2.y)并将其与(size1 + size2)进行比较。如果dist()较小,则它们发生了碰撞,并且您更改了速度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23122217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档