-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
オブジェクトのタッチ誤判定 #311
Comments
内部で持っているビットマップを取得したのを添付します https://twitter.com/ikedanaruki/status/590494364872278016 黄色っぽくて縦に長いので、境界が青くなっているのがあると思います |
タッチ判定を行っているCanvasのコンテキストについて、 CanvasRenderingContext2D#imageSmoothingEnabled を設定することで、境界に生じる誤差を軽減できる可能性があります。 |
rtsan
added a commit
that referenced
this issue
Dec 9, 2015
rtsan
added a commit
that referenced
this issue
Dec 28, 2015
imageSmoothingEnabledで十分な効果を得られなかったため、周辺のピクセルからもサンプリングを行うように変更しました。 |
ありがとうございます。開発しているアプリで試したいと思います! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Scaleを細かくいじって配置するオブジェクトの座標に小数点が入るのがまず原因だと思うのですが、オブジェクトのちょうど端の部分をタッチさせると別のオブジェクトをタッチしたと誤判定されるケースが出てきております。
内部のソースを追ったところ、オブジェクトのタッチ判定のために中でオブジェクト毎に特定の色を定めてそのオブジェクトの位置と大きさに即した矩形を描画して重ねていったビットマップを保持し、タッチした場合はそのビットマップ上の色をタッチした座標から取得し、それによってタッチしたオブジェクトを特定しているという流れであることは把握しました。
内部で持っている画像をtoDataURLメソッドで見るようにしたところ、問題が発生するケースでは描画しているビットマップにアンチエイリアスがかかり、端の部分だけ色が違っていることがわかりました。
こういった事象をご存じでしょうか。そして回避する方法についても検討したく思っております。
The text was updated successfully, but these errors were encountered: