0

andengineでペイントゲームを作りたいです。私のコードがあります。andengineでそれらを使用するにはどうすればよいですか? または、andengine に drawPath のようなものはありますか? 描画用に Rects または Lines を追加しようとしましたが、私の FPS は 10-15 でした。

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class SingleTouchEventView extends View {
  private Paint paint = new Paint();
  private Path path = new Path();

  public SingleTouchEventView(Context context, AttributeSet attrs) {
    super(context, attrs);

    setBackgroundColor(Color.WHITE);
    paint.setAntiAlias(true);
    paint.setStrokeWidth(6f);
    paint.setColor(Color.BLACK);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeJoin(Paint.Join.ROUND);
  }

  @Override
  protected void onDraw(Canvas canvas) {
    canvas.drawPath(path, paint);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    float eventX = event.getX();
    float eventY = event.getY();

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      path.moveTo(eventX, eventY);
      return true;
    case MotionEvent.ACTION_MOVE:
      path.lineTo(eventX, eventY);
      break;
    case MotionEvent.ACTION_UP:
      // nothing to do
      break;
    default:
      return false;
    }

    // Schedules a repaint.
    invalidate();
    return true;
  }
4

1 に答える 1

0

目的を達成するには、いくつかの方法があります。

  1. 長方形 (デバイスごとに異なるため線ではありません) を作成し、それらをシーンに追加してパスを取得します。オブジェクト プールを使用して、オブジェクト (長方形) を再利用します。

  2. 最初のアプローチがうまく機能しない場合は、キャンバスを使用して空のテクスチャに直接描画することもできます。

  3. エンティティを描画できる RenderTexture というクラスがあります。そのような RenderTexture を使用して、それに線を引きます。このテクスチャを使用してスプライトを作成し、シーンに追加します。

于 2015-12-30T22:30:51.080 に答える