You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Processing Java:如何追踪点击硬币数量并在程序停止时输出统计?

Processing硬币点击游戏:统计点击数并在窗口关闭时输出

核心实现思路

不用自己封装exit()方法,Processing内置了窗口关闭的回调方法,直接利用它来输出统计数据,同时配合鼠标点击事件完成硬币点击计数。


完整代码示例

int clickCount = 0;
ArrayList<PVector> coins = new ArrayList<PVector>();

void setup() {
  size(600, 400);
  // 初始生成5枚随机硬币
  for (int i = 0; i < 5; i++) {
    coins.add(new PVector(random(width), random(height)));
  }
}

void draw() {
  background(255);
  // 绘制所有硬币
  for (PVector coin : coins) {
    fill(255, 200, 0);
    ellipse(coin.x, coin.y, 30, 30);
  }
  // 每秒新增一枚硬币
  if (frameCount % 60 == 0) {
    coins.add(new PVector(random(width), random(height)));
  }
}

void mousePressed() {
  // 倒序遍历避免删除元素时索引混乱
  for (int i = coins.size() - 1; i >= 0; i--) {
    PVector coin = coins.get(i);
    float distance = dist(mouseX, mouseY, coin.x, coin.y);
    // 判断是否点击到硬币(半径15)
    if (distance < 15) {
      clickCount++;
      coins.remove(i);
      break;
    }
  }
}

// 窗口关闭(点击停止按钮)时自动触发的方法
void stop() {
  println("你总共点击了 " + clickCount + " 枚硬币!");
  super.stop(); // 调用父类方法完成窗口关闭流程
}

关键说明

你之前尝试把exit()作为自定义public void方法是错误的用法:exit()是Processing的内置函数,作用是主动触发窗口关闭,而非监听关闭事件。要实现窗口关闭时输出统计,直接重写Processing提供的stop()方法即可——这个方法会在窗口停止运行前自动执行,刚好用来输出你的点击统计数据。

内容的提问来源于stack exchange,提问作者Np3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:19:58