(少なくともこのファイルでは)他の場所に設定されていないため、初期値は0になります。あなたが提供したコードから私が知る限り、場所は1つだけで、selX
設定selY
されています。
private void select(int x, int y) {
invalidate(selRect);
selX = Math.min(Math.max(x, 0), 8); <------ Here
selY = Math.min(Math.max(y, 0), 8); <------
getRect(selX, selY, selRect);
invalidate(selRect);
}
selX
メソッドが呼び出されたときにselY
のみ設定さselect(int x, int y)
れるため、実際にそれらの値を提供することはできません。これは、渡される値が..getRect(selX, selY, selRect)
最後select
に設定された値であることを意味します。
このメソッドがどこで呼び出され、どの値がメソッドに渡されるかを知らなければ、質問に答えるのは困難です。しかし、selectメソッドがこれらのメソッド内で呼び出されていることに気づきました
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() != MotionEvent.ACTION_DOWN)
return super.onTouchEvent(event);
select((int) (event.getX() / width),
(int) (event.getY() / height));
game.showKeypadOrError(selX, selY);
Log.d(TAG, "onTouchEvent: x " + selX + ", y " + selY);
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "onKeyDown: keycode=" + keyCode + ", event="
+ event);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
select(selX, selY - 1);
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
select(selX, selY + 1);
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
select(selX - 1, selY);
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
select(selX + 1, selY);
break;
...
したがって、ユーザーが画面にタッチするか、矢印キーを使用すると、これらが設定されているように見えます。
ここにブレークポイントを設定して、自分でチェックすることができます