0

ACTION_UPで指を離した後、ラインを切り離そうとしています..うまくいかないようです

    @Override
    public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {
            mScene = new Scene();

            mScene.setOnSceneTouchListener(new IOnSceneTouchListener() {
                @Override
                public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
                   if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN) {
                      isDrawing = true;
                      i = 0;
                   }
                   if (isDrawing = true) {
                      rec[i] = new Rectangle(pSceneTouchEvent.getX(), pSceneTouchEvent.getY(), 1, 1, getVertexBufferObjectManager());
                      if (i != 0) {
                         l = new Line(rec[i-1].getX(), rec[i-1].getY(), rec[i].getX(), rec[i].getY(), getVertexBufferObjectManager());
                         l.setColor(0.5f, 1f, 0.3f);
                         mScene.attachChild(l);
                      }
                      i++;
                   }
                   if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_UP) {
                       isDrawing = false;
                       mScene.detachChild(l);
                    }
                   return true;
                }
             });

            pOnCreateSceneCallback.onCreateSceneFinished(mScene);
    }

ACTION_DOWN では指で線を引きますが、ACTION_UP では線が切り離されます。

4

1 に答える 1

1

これがあなたの問題です:

if(isDrawing = true)

その値を「true」と比較する代わりに、isDrawing を「true」に割り当てています。次に、if ステートメントがチェックされます。これは常に true になります。これにより、毎回描画する必要があります。次のように変更します。

if(isDrawing)
于 2013-05-29T19:27:52.333 に答える