Processing 用鼠标移动拨片(Arkanoid)

Processing 用鼠标移动拨片(Arkanoid),processing,Processing,我有点小问题。我正在使用processing创建一个基本的Arkanoid,但我不知道如何用鼠标移动拨片。我目前已经为这个例子设置了点击移动 void setup(){ 尺寸(400400); 矩形模式(中心); ellipseMode(中心); } 作废提款(){ 背景(#EFF8FB); 巴特曼(); 鲍尔曼(); } 浮球X=200,浮球Y=200; 浮动方向=π*.3f; 字节速度=4; 最终静态字节大小=20; 最终静态颜色ballColor=#2EFE2E; void ballMai

我有点小问题。我正在使用processing创建一个基本的Arkanoid,但我不知道如何用鼠标移动拨片。我目前已经为这个例子设置了点击移动

void setup(){
尺寸(400400);
矩形模式(中心);
ellipseMode(中心);
}
作废提款(){
背景(#EFF8FB);
巴特曼();
鲍尔曼();
}
浮球X=200,浮球Y=200;
浮动方向=π*.3f;
字节速度=4;
最终静态字节大小=20;
最终静态颜色ballColor=#2EFE2E;
void ballMain(){
//抽签
填充(球色);
椭圆(圆球、圆球、圆球尺寸、圆球尺寸);
ballX+=速度*cos(方向);
ballY+=速度*sin(方向);
墙();
如果(方向>双π)方向-=双π;
如果(方向<-TWO_PI)方向+=TWO_PI;
}
短a=200;
最终静态颜色batColor=#5858FA;
void batMain(){
//抽签
填充(蝙蝠色);
rect(a,380,60,10);
仰泳();
如果(鼠标按下){
//屏幕右侧
如果(鼠标>宽度>>1)a+=4;
//屏幕的另一面
否则a-=4;
}
如果(ballY+10>375&&ballY+10<385&&ballX+10>a-30&&ballX-10a-30&&ballX390){
ballX=389;
方向=π-方向;
}
如果(巴利<10){
ballY=11;
方向=两个π-方向;
}
如果(巴利>390){
ballY=389;
方向=两个π-方向;
}
}

您已经具备了以下逻辑:

if(鼠标按下){
//屏幕右侧
如果(鼠标>宽度>>1)a+=4;
//屏幕的另一面
否则a-=4;
}
如果你想让划桨在不按下鼠标的情况下跟随鼠标,只需去掉外部的If语句:

//屏幕右侧
如果(鼠标>宽度>>1){
a+=4;
}
//屏幕的另一面
否则{
a-=4;
}
或者,如果您想让挡板位于鼠标位置,只需直接使用:

a=mouseX;

是否可以编写一个mouseMoved函数,该函数将传递一个mouseEvent,该mouseEvent应包含显示鼠标移动距离的getX和getY属性。只需通过mouseEvent的getX值来改变你的桨的当前X位置。谢谢你的评论。我尝试了你发布的第一个声明,效果很好。然而,我试过a=mouseX,现在errors@GregoryHartley这可能是因为
a
变量是
short
mouseX
int
。只需将
a
设为
int
float
。似乎可以工作,但仅在屏幕右侧。当我把鼠标移到左边时,桨停了一半,我已经解决了。我删除了Else语句。非常感谢。