有没有一种方法可以在Java中制作圆形点击框?

时间:2019-02-07 14:31:02

标签: java processing

我正在尝试制作一个简单的游戏,您只需要打一些圆圈,我想知道是否可以制作圆形的点击框而不是矩形。

此代码是在处理3.5.1 btw ... 基本上,我已经释放了一些代码,这些代码是我设置主菜单的代码。

    //Random ellipse position
      int posx = (int)random(100, 1820);
      int posy = (int)random(100, 980);

    //Score count
        int score = 0;

    //Circlesize/Difficulty
          int circlesize = 100;

    //Hitbox
            float hitsize = 50;


    void setup(){
      size(1920,1080);
      background(255);
    } 



void draw(){

    //What do to if the circle is pressed
     if(mousePressed && mouseX >= (posx - hitsize) && mouseX <= (posx + hitsize) && mouseY >= (posy - hitsize) && mouseY <= (posy + hitsize)){

      //Randomize next location for ellipse
         posx = (int)random(100,1820);
         posy = (int)random(100, 980);

      //Make a new ellipse
         background(255);
          fill(255, 0, 0);
           ellipse(posx, posy, circlesize, circlesize);

      //Add a point to score
         score ++;
     }
    }

2 个答案:

答案 0 :(得分:1)

简短的回答:是的。您只需要检查圆心之间的距离即可。如果该距离小于两个圆的半径之和,则这些圆是相交的。

无耻的自我促进:here是有关处理中冲突检测的教程。

答案 1 :(得分:0)

要以Kevin所说的为基础,

您可以在if内使用代码dist(x1, y1, x2, y2) < 50来检查前两个参数(x1,y1)是否带有50px的x2和y2。

示例:

int buttonX = 200;// the x position of the circle 
int buttonY = 200;// the y position of the circle 

ellipse(buttonX, buttonY,100,100);// the button

// if mouseX and mouseY are inside the radius of the 100px diameter button then it is active
if(dist(mouseX, mouseY, buttonX, buttonY) < 50) {
   // the mouse is inside of the circle
}

我希望他能有所帮助,随时询问您是否有任何疑问。