所以我正在尝试创建一个运行java applet的类,然后像drumset这样的车库乐队弹出,然后我可以点击不同的鼓来制作不同的声音。我将鼓设置为我创建的不同圆圈,我试图将圆圈声明为变量,然后我可以比较鼠标点击以查看点击是否在“鼓圈”内。问题是当我尝试将圆圈声明为变量时,我找不到符号错误。当我将变量设置为矩形时,它可以工作,但我不需要矩形。我怎么能这样做?
public class FinalProjectst extends Applet
{
Image picture;
Shape base, bT, snare, lT, rT, hh, lC, rC;
public void init()
{
picture = getImage(getDocumentBase(),"drumSet.jpg");
base = new Oval (355, 415, 305, 240); //Bass
bT = new Oval (715, 360, 325, 245); //Bottom Tom
snare = new Oval ( 35, 410, 290, 200); //Snare
lT = new Oval (283, 130, 185, 165); //Left Tom
rT = new Oval (543, 120, 200, 175); //Right Tom
hh = new Oval ( 0, 225, 250, 150); //High Hat
lC = new Oval ( 10, 0, 305, 195); //Left Cymbal
rC = new Oval (765, 0, 505, 275); //Right Cymbal
}
如果我将形状和椭圆形声明为矩形,则可以正常工作,但这不是我需要的。
答案 0 :(得分:0)
您可以使用课程Ellipse2D。宽度等于其高度的椭圆是圆形。但它是一个抽象类,因此您无法直接实例化它。你必须做类似的事情:
Image picture;
Ellipse2D base, bT, snare, lT, rT, hh, lC, rC;
public void init()
{
picture = getImage(getDocumentBase(),"drumSet.jpg");
base = new Ellipse2D.Double(355, 415, 305, 240); //Bass
bT = new Ellipse2D.Double (715, 360, 325, 245); //Bottom Tom
snare = new Ellipse2D.Double ( 35, 410, 290, 200); //Snare
lT = new Ellipse2D.Double (283, 130, 185, 165); //Left Tom
rT = new Ellipse2D.Double (543, 120, 200, 175); //Right Tom
hh = new Ellipse2D.Double ( 0, 225, 250, 150); //High Hat
lC = new Ellipse2D.Double ( 10, 0, 305, 195); //Left Cymbal
rC = new Ellipse2D.Double (765, 0, 505, 275); //Right Cymbal
}
您还可以使用方法
测试碰撞boolean contains(double x, double y)