java - 在屏幕上随机生成一个圆圈,并使其变为绿色或红色

标签 java android canvas android-canvas

所以我一直在尝试制作一个游戏应用程序,它可以在安卓屏幕上随机显示一个带有文本的红色按钮或一个带有文本的绿色按钮。如果有人可以帮助我,我将不胜感激。另外,如果有人知道该怎么做,我想慢慢地产生更快的冷却效果。谢谢!

@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas){

    String str = "Joke of the day";
    super.onDraw(canvas);
    paint = new Paint();
    Random random = new Random();
    Random randomTwo = new Random();

    //Rect ourRect = new Rect();
    Rect topRect = new Rect();
    Rect backGround = new Rect();

    paint.setColor(Color.BLACK);
    backGround.set(0,0,canvas.getWidth(),canvas.getHeight());
    canvas.drawRect(backGround, paint);
    for(int i = 0; i <= 900; i++;){

    }

    if(blank == time){
        paint.setColor(Color.RED);
        canvas.drawCircle(random, randomTwo, 230, paint);
    }else {
        paint.setColor(Color.GREEN);
        canvas.drawCircle(random, randomTwo, 230, paint);
    }
}

最佳答案

你只需要一个Random实例。

在 onDraw 之外声明 private long lastUpdated = 0;private int lastColor = Color.BLACK;

将底部更新为:

final float radius = 230f;
if(System.currentTimeMillis() > lastUpdated + 1000){
    lastColor = random.nextInt(2) == 1 ? Color.RED : Color.GREEN;
    lastUpdated = System.currentTimeMillis();
}
paint.setColor(lastColor);
canvas.drawCircle(random.nextInt(canvas.getWidth()-radius/2) + radius/2f, random.nextInt(canvas.getHeight()-radius/2) + radius/2f, radius, paint);

这将每秒在随机位置绘制一个红色或绿色的圆圈。

您需要半径/2,因为坐标是从圆心开始的。

关于你问题的第二部分,还有一个旁注,我想慢慢地产生更快的冷却效果。你必须澄清你的意思。

编辑: 在此处提供了更完整(和正确)的示例: https://gist.github.com/mshi/8287fd3956c9a917440d

关于java - 在屏幕上随机生成一个圆圈,并使其变为绿色或红色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29332182/

相关文章:

java - jsoup 意外行为并查找类的所有 div

java - 在 Java 中使用 Class<T> 作为注释的属性

java - ContextRefreshed 后 Spring WebApp 中 ScheduledFutureTask 中的 RejectedExecutionException

Android:在 fragment 内绘制 Canvas

javascript - 使用类方法在 HTML5 Canvas 上绘图 : scope problems (JS, ES6)

java - 使用JNA检测AppData\LocalLow的位置

android - Facebook SDK 是否仅适用于 Activity ?

android - 错误: Calling js method onCreate failed in nativescript angular app

Android:在不同的 fragment 中调用相同的方法

javascript - 在同一网页中动态更改 p5.js Canvas 的最佳方法是什么?