Processing 在移动设备上处理鼠标按压的等效物

Processing 在移动设备上处理鼠标按压的等效物,processing,Processing,我有一个处理“应用程序”,它允许用户绘制任何东西。它在桌面(有鼠标)上运行良好,但在我的iPhone上还不是完美的 现在,当用户触摸屏幕进行绘制时,当他/她在屏幕上移动手指时,屏幕上会出现一条白线,这是应该的。但是,当手指被提起并放在屏幕的另一部分时,不会产生与第一行分开的新行。相反,原始线条跳转到用户触摸的位置。我想在台式机和移动设备上启动一条新线路 代码如下: void setup(){ 尺寸(屏幕宽度、屏幕高度); 背景(0); } 作废提款(){ 中风(225); 冲程重量(4); 光滑

我有一个处理“应用程序”,它允许用户绘制任何东西。它在桌面(有鼠标)上运行良好,但在我的iPhone上还不是完美的

现在,当用户触摸屏幕进行绘制时,当他/她在屏幕上移动手指时,屏幕上会出现一条白线,这是应该的。但是,当手指被提起并放在屏幕的另一部分时,不会产生与第一行分开的新行。相反,原始线条跳转到用户触摸的位置。我想在台式机和移动设备上启动一条新线路

代码如下:

void setup(){
尺寸(屏幕宽度、屏幕高度);
背景(0);
}
作废提款(){
中风(225);
冲程重量(4);
光滑的();
如果(鼠标按下){
行(pmouseX、pmouseY、mouseX、mouseY);
}
}
我的理论是:在移动设备上没有“
mousePressed
”,也没有任何其他带有术语“mouse”的命令。因此,当用户尝试开始另一行时,代码会认为他/她从未抬起手指开始

我如何解决这个问题?
谢谢。

您的想法不太正确:
mousePressed
变量在您的移动设备上的工作方式与预期完全相同-如果不是,您将永远看不到任何线路

问题在于
pmouseX
pmouseY
变量。这些变量保存鼠标的上一个位置。在桌面上,该位置是光标的上一个位置。移动光标时,
pmouseX
pmouseY
变量将更新

但是,在移动设备上,您没有光标,因此
pmouseX
pmouseY
变量保留您用手指触摸的最后一个位置。这就是你所看到的行为的原因

要解决这个问题,您必须使用您自己的变量,这些变量是使用鼠标事件函数设置的,这样您就可以更好地控制它们。大概是这样的:

boolean newTouch=true;
float-previousTouchX;
浮躁易怒;
无效设置(){
大小(500500);
背景(0);
}
作废提款(){
中风(225);
冲程重量(4);
光滑的();
如果(鼠标按下){
if(newTouch){
newTouch=false;
}否则{
行(previousTouchX、previousTouchY、mouseX、mouseY);
}
previousTouchX=鼠标;
先前的敏感=老鼠;
}
}
void mouseereleased(){
newTouch=true;
}