2014-11-01 4 views
1

나는 베지에 곡선이있는 게임을하고 있습니다. 현재이 모든 커브에서 복잡한 작업을 수행하지만 모든 것이 정상적으로 작동합니다.안드로이드의 사용자 정의 곡선

private void refresh() { 
    mPath = new Path(); 
    mPath.moveTo(start_x, start_y); 
    mPath.cubicTo(anchor1_x, anchor1_y, anchor2_x, anchor2_y, end_x, end_y); 
} 
public void draw(Canvas canvas, Paint paint) { 
    Path newPath = new Path(mPath); 
    Matrix mMatrix = new Matrix(); 
    mMatrix.setTranslate(-mCamera.x1, -.mCamera.y1); 
    mMatrix.postScale(mCamera.getWidthRatio(), mCamera.getHeightRatio()); 
    newPath.transform(mMatrix); 
    canvas.drawPath(newPath, paint); 
} 

페인트 매개 변수가 ussually 다음 하나입니다 :

curvesPaint = new Paint(); 
curvesPaint.setColor(0xFFFFFFFF); 
curvesPaint.setAntiAlias(true); 
curvesPaint.setStrokeCap(Paint.Cap.ROUND); 
curvesPaint.setStrokeJoin(Paint.Join.ROUND); 
curvesPaint.setStyle(Paint.Style.STROKE); 
curvesPaint.setStrokeWidth(canvas.getHeight()/100f); 
if (shadow) 
     curvesPaint.setShadowLayer(canvas.getHeight()/50f, 0, 0, 0xAAFFFFFF); 
else 
    curvesPaint.setShadowLayer(0, 0, 0, 0xAAFFFFFF); 

내 질문은 : 나는 곡선이 더 아름다운 만들 수있는 방법이 같은 캔버스 및 경로를 사용하는 곡선을 그리려면? 지금은 단지 흰색 (또는 흰색 그림자가있는 흰색)입니다. 멋진 그라디언트 나 모델로 그릴 수 있기를 원하며 그 방법을 모릅니다. 나는 Paint 클래스의 setShader 함수에 대해 생각하고 있었지만, 그것을 내 용도로 사용하거나 사용하는 방법을 모르는지 모른다. 다른 경로를 여러 개 그리는 것과 같은 다른 솔루션은 낮은 fps로 인해 분명히 비현실적입니다.

답변

0

OpenGL 또는 libgdx와 같은 타사 래퍼 라이브러리를 사용하는 것이 좋습니다. Canvas은 상대적으로 간단한 그래픽을 의미합니다. 나는 그것이 장치 GPU를 이용한다고 생각하지 않는다. GPU의 모든 기능을 활용하려면 OpenGL을 사용해야합니다.

관련 문제