我正在制作一款游戏,我有一些更好的曲线。目前,一切都很好,虽然我在这条曲线上进行了一些复杂的操作,但它仍然可以正常工作。要绘制曲线,我使用画布和路径,如下所示:
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);
}
paint参数通常是以下一个:
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 :(得分:0)
我建议您开始考虑使用OpenGL或第三方包装器库,例如libgdx。 Canvas
用于相对简单的图形。我不认为它利用GPU设备。要充分利用GPU的全部功能,您需要使用OpenGL。