我正在尝试在Android中开发一种乒乓游戏,其中我将有两只蝙蝠将球击中。我已经在画布上绘制了一个蝙蝠,并将其放置在屏幕的最左侧。我需要在屏幕的最右侧放置另一个蝙蝠,但是每次在最左侧绘制桨时。有人可以帮我吗?
class gameui(context: Context, attrs: AttributeSet): View(context,attrs){
private val bluePaint = Paint().apply {
color = Color.BLUE
strokeWidth = 8f
}
var paddle1 = Rect()
var paddle2 = Rect()
var paint = Paint()
init{
val x = 50
val y = 200
val sideLength = 20
paddle1 = Rect(x, y, sideLength, sideLength)
paddle2 = Rect(x, y, sideLength, sideLength)
paint = Paint()
paint.color = Color.RED
}
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
canvas!!.drawRect(paddle1, paint);
}
答案 0 :(得分:1)
那是因为您将其定位在与第一个球拍相同的X,Y位置,所以您想将右边的球拍定位在
val x = canvas.width - 20 - sideLength
但是,由于尚未测量视图或布置视图,因此在调用init {}
时您无权访问画布(或视图宽度)。因此,您可能应该将x
坐标设置为在onDraw(..)
或onSizeChanged(...)
内部,以便知道视图的实际宽度。