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

Pygame开发国际象棋:棋子点击检测异常(整列触发选中)

Pygame国际象棋点击检测问题解决

问题原因

你用的元组范围判断(0,0) <= pos <= (50,50)逻辑不符合预期。Python的元组比较是按元素顺序逐个判定:只要鼠标x坐标在0-50之间,不管y坐标是多少,整个条件都会返回True——这就是点击整列都会触发主教选中判定的原因。

修复代码

把元组比较改成分别判断x、y坐标的范围:

def detectClick():
    pos = pygame.mouse.get_pos()
    x, y = pos
    if 0 <= x <= 50 and 0 <= y <= 50:
        print('bb')

通用优化建议

针对棋盘棋子的点击检测,建议根据格子尺寸计算每个棋子的区域:假设每个格子边长为CELL_SIZE,某个棋子在第row行、第col列,那么它的点击区域应为:

  • x范围:col * CELL_SIZE 到 (col + 1) * CELL_SIZE
  • y范围:row * CELL_SIZE 到 (row + 1) * CELL_SIZE
    通过这种方式可以精准定位每一个棋子的点击区域,避免误判。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:05