119
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

当たり判定が狭い広告の判定を検証してみた

Last updated at Posted at 2018-12-15

はじめまして。
Qiitaへの記事の投稿は初めてなのですが、
今日はAdvent Calendar15日目の記事として投稿させていただきます。

#絶対押してんじゃん

さて、ネットサーフィンをいていると時折遭遇するのが✗の小さすぎる広告。あの当たり判定の小さすぎるButtonにとって私は日々苦しめられています。あの広告によって、世界中で一体どれだけの時間が奪われているのでしょうか。
スクリーンショット 2018-12-15 23.18.28.png

また、あのボタンの当たり判定は本当にあのButtonの大きさのとおりなのでしょうか。かなり怪しいと思います。今回は実際に検証してみました。

擬似的な広告で検証してみる。

広告のButtonの当たり判定が小さすぎると感じるのは気の所為で、実は自分の指のAIM力不足だった。ということも十分考えられたので
Xcodeで擬似的な広告を消すだけのiOSアプリを作成しました。わざわざ説明しなくてもいいかなとは思います。

ViewController.swift
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var labelA: UILabel!
    @IBOutlet weak var buttonA: UIButton!
    @IBOutlet weak var viewA: UIButton!
    
    @IBAction func tappedHide(_ sender: Any) {
        buttonA.isHidden = true
        viewA.isHidden = true
        labelA.text = "Tapped!"
    }
    override func viewDidLoad() {
        
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }


}
スクリーンショット 2018-12-15 23.17.18.png

iPhoneの実機実行してみるとびっくり。私の大きな親指でも想像よりも難無くピンポイントに✗ボタンを押せてしまいました。想像より遥かに正確に✗ボタンに指が届きます。人間の指と脳って案外正確なものですね。また一つ自分のiPhoneに無駄なアプリがが増えていきます

実際の広告で✗ボタンの当たり判定を検証する

では一体あの✗ボタン激小広告の当たり判定の広さはどのようなものなのか実際に検証してみます。

iOSのTweaks(脱獄アプリ)にAutoTouchというアプリが存在します。操作している指の動きを記録し、それをもとに自動操作を実行したりするアプリです。指の動きはLuaスクリプトで書かれているので、それを編集して1px単位の細かい操作を実行できます。

今回はこの大人気音楽ゲームの広告で試してみましょう。

FullSizeRender 2.jpg

×ボタンの中心座標は**(1093,597)で、×ボタンの直径はこの端末では41px**でした。そこでLuaのスクリプトで遠くから×ボタンに向かって1pxずつタップする場所を変えながら×ボタンの中心へタップポイントを下の画像のように動かしていき、中心から何pxで反応するのか確かめてみます。

IMG_3199.JPG

コードはとてもシンプルです。Luaは見栄えが良いですね。

AdsTouchTest.lua
y = 592
x = 1087


color = getColor(y,x)
centerY = y
sec = 1000000

for i = 50,0,-1 do
	tap(centerY + i, x)
	usleep(sec/2)
	if color ~= getColor(y,x) then
		alert(i)
		break
	end
end

結果

結果は**15(px)**となりました。

FullSizeRender 4.jpg

当たり判定は小さかった

xボタンの半径は21.5pxなわけですが、タッチできる範囲は中心から15px以内っぽい。この広告の×ボタンのタップ可能範囲で実際よりも小さい。
当たり判定はButtonの円に内接する正方形だったのかもしれません。21.5/√2でだいたい辻褄が合うような気もします(わからんです)

まとめ

広告によって違いはあるとは思いますが、Buttonのタッチの判定が狭いのは気の所為ではなく本当にタッチできる範囲が狭いこともあるということがわかりました。

私の勝手な感覚では無理して指の先で狙うのではなく指の腹で全体的に押すと広告が消えてくれる気もします。神経を使うゲームですね。**これは脳トレです。**AIMの精度を上げるためにみなさん右脳と指を鍛えましょう。本当にくだらない内容でしたが、最後まで読んでいただきありがとうございました。

119
27
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
119
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?