Окно уже сфокусировано, игнорируя усиление фокуса для повышения высоты спрайта - PullRequest
0 голосов
/ 18 января 2012

Я знаю, что об этом уже спрашивали, и я прошел через все ответы, и нет, это не так, и да, у меня есть действие, названное в манифесте, так что это не так.Вот моя проблема: у меня спрайт, перемещающийся по экрану, и когда в окне, где вы выбираете живые обои, у меня есть предпочтение, которое позволяет пользователю выбирать высоту (чтобы они могли перемещать спрайт вверх или вниз), единственная проблема - этоспрайт постоянно перемещается, поэтому, когда они используют панель поиска для перемещения спрайта вверх или вниз, я получаю старое «Окно уже сфокусированным», игнорируя усиление фокуса «Теперь, если я выхожу и возвращаюсь снова, конечно, эта остановка и перезапуск его ивысота нового предпочтения уже указана, поэтому он перемещается на новую высоту, но не в предварительном просмотре. Вот код спрайта:

private void addShipOne() { 
        int heightPosition = (screenSized / 2) - (screenSized / /*this.bigShipHeight*/gettheFreakingHeight());
        int widthPosition = 0;
        Point startPoint = new Point(widthPosition, heightPosition);
        this._shipone.add(new SpaceShipOne(this._context, this, startPoint, 125));

(извините за название метода, которое я использовал для быстрого тестированияверсия, которую я немного расстроил в тот момент) lol

Затем он переходит в метод OnDraw, а затем в рендер, чтобы отобразить все это.

public void render(){
        Canvas canvas = null;
        try{

            canvas = this._surfaceHolder.lockCanvas(null);
            synchronized (this._surfaceHolder) {

                this.onDraw(canvas);

            }

        }finally{
            if(canvas != null){
                this._surfaceHolder.unlockCanvasAndPost(canvas);
            }
        }   
    }

У меня есть еще одно предпочтение, которое позволяет пользователючтобы выбрать частоту появления кораблей, она работает нормально, но идет слева направо и меняет корабли, поэтомутогда он обновляет частоту, но высота не работает, я проверил журнал, чтобы убедиться, что высота int проходит, и это не так, единственное, что я могу придумать, это, может быть, добавить это, когдаКорабль поворачивает влево или вправо, но он не работает, пока движется, судя по всему.this.bigShipHeight - это то место, куда входит новое значение высоты (я просто тестировал его другим способом с помощью gettheFreakingHeight () (я использовал оператор if else для этого метода, который вместо этого использовал предпочтение frquency, которое работает хорошо. Просто для добавления полногочасть кода. В onDraw (Canvas canvas) я визуализирую _shipone как таковой

for (Renderable renderable : this._shipone) {
            renderable.render(canvas);
        }

Любая помощь будет оценена. Заранее спасибо Сэм

1 Ответ

0 голосов
/ 19 января 2012

Хорошо, я должен был сначала заглянуть в мой класс спрайтов, извините за это, я снова ответил на свой вопрос, и это было слишком очевидно, вот что я получаю за то, что смотрю на код слишком долго, я должен уйти, а потом тогда это всегда яснее.

На всякий случай, если другие столкнутся с этой проблемой, я поставлю ответ. В моем классе спрайтов, из которого запускается SpaceShipOne, я только что добавил это

this.getSprite().setYPos(this._blimp.gettheFreakingHeight());

Это обновляется сразу, когда окно уже не сфокусировано. Я не знаю, почему я не видел это прошлой ночью, потому что это единственное место, где его можно добавлять и обновлять сразу, все, что мне нужно было сделать, это установить вместо этого позицию Y в предпочтение. Отлично работает. Надеюсь, это поможет кому-то еще Sam

...