我正在为我正在撰写的计划提供帮助。
代码基本上是数组中单词的列表,在某些索引处将其切换为特定的字符串,然后进入Chars并将其显示在画布中。
然后,在向下滑动画布时,字符会动画。
但是,每当它动画缓慢时,角色就会彼此重叠,只要动画速度很快,角色就会分开。
如何在慢慢制作动画的同时将字符分开? 我想出的一个解决方案是找到一种编辑帧速率的方法,但我不知道该怎么做:(。
public sketchUp(Context context) {
super(context);
}
String arr [] = {"love","happiness"};
protected void onDraw (Canvas canvas){
super.onDraw(canvas);
Rect disRect = new Rect();
disRect.set(0,0, canvas.getWidth(), canvas.getHeight()/2);
Paint col = new Paint();
Paint txt = new Paint();
txt.setTextSize(20);
txt.setColor(Color.BLACK);
col.setColor(Color.GREEN);
col.setStyle(Paint.Style.FILL);
canvas.drawRect(disRect, col);
if(y<canvas.getHeight()/2){
y+=1;
}
else{
y=0;
}
// if(x<canvas.getWidth()){
// x+=10;
// }
// else{
// x=0;
// }
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr[i].length(); j++){
char result = arr[i].charAt(j);
// System.out.println(result);
canvas.drawText(String.valueOf(result), x, y+=0.5, txt);
//
}
}
invalidate();
}
答案 0 :(得分:0)
y+=0.5
设置字符的分隔。这是使每个角色的位置不同的唯一因素。如果它只是y
,则字符将在彼此之上。
每个y+=0.5
都会更改y。因此,在绘制后,y
字符比之前更低。
首先,你必须决定y
应该是什么。你应该重命名它,所以你要记住它是什么。例如,它可能会成为firstCharacterY
。
显然,绘制字符时第一个字符y不应该改变,但是应该改变每个帧。要修复绘图部分,您可以在循环之前设置y = firstCharacterY - 0.5
,也可以在每次迭代时从i和j计算y。