【发布时间】:2023-03-28 02:09:01
【问题描述】:
我正在编写一个基于 SurfaceView 对象的小型 2D android 游戏,所以我在 canvas 上绘制了我的整个游戏。我设计了一个球为png,并用这种方法在画布上绘制它:
canvas.drawBitmap(bmp, posX, posY, null);
现在我的问题是我不知道如何接收这个球的触摸事件。我的 png 是 64x64 像素,但球只有 32x32 像素并且位于图像的中间。如果触摸球(32x32)而不是位图(64x64),我只想接收触摸事件。我怎样才能做到这一点?我可以为SurfaceView 注册一个OnTouchListener,但我怎样才能检测到触球?
另一个问题是球是一个简单的物体。如果我有一些无法通过半径或其他东西描述的不规则物体怎么办?我是否完全使用正确的“技术”和 png 来构建画布控件,还是有更好/更简单的方法?
这对我来说是所有平台(JS、Android、iOS)上的典型问题,我不知道解决它的最佳方法。这就是为什么我在这个问题上使用了一些其他标签。是不是有一个跨平台的解决方案让我可以永远解决这个问题?
【问题讨论】:
标签: javascript android ios canvas touch-event