我如何每秒向一个整数添加一个数字

时间:2014-08-17 22:46:43

标签: java android time integer

我正在制作一个cookie点击器类型的游戏,我想要一个每秒钟一定数量的东西,比如说5被添加到另一个号码。所以整数变量每秒都会增加5.如何创建一种时间测量方法来测量时间,以便我可以将数字添加到另一个数字。

public class timeTesting {
    // I've put this method here for someone to create
    // a timer thing
    void timer()
    {

    }
    public static void main(String[] args) {        
        // Original number
        int number = 1;
        // Number I want added on to the original number every 5 seconds
        int addedNumber = 5;
    }
}

5 个答案:

答案 0 :(得分:1)

如果您定位到Android平台,则可以使用CountDownTimer,它允许您在特定时间内每隔一定时间执行一些代码。但请注意,android并不像J2SE那样使用主要方法。

无论如何,如果您正在寻找编程Android游戏,我强烈建议您从这里开始:Android Development

答案 1 :(得分:1)

您可以使用Timer来安排在run()方法中拥有所需代码的TimerTask。检查下面的代码(运行()将在5000毫秒后调用一次):

Timer t = new Timer();
    t.schedule(new TimerTask() {
        @Override
        public void run() {
            number += addedNumber;
        }
    }, 5000);

此外,您可以使用scheduleAtFixedRate(TimerTask任务,长延迟,长时间段)进行重复性任务(此处运行将立即调用,每5000毫秒):

Timer t = new Timer();
    t.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            number += addedNumber;
        }
    }, 0, 5000);

答案 2 :(得分:0)

您应该考虑使用Timer,它会在某个时间间隔过后触发事件。它也可以经常重复这个事件。

答案 3 :(得分:0)

我想建议开始学习RxJava。反应式编程对游戏开发非常有用:https://www.youtube.com/watch?v=WKore-AkisY

使用RxJava,可以使用 Observable interval()方法解决您的问题:

https://github.com/Netflix/RxJava/wiki/Creating-Observables#interval

伊万

答案 4 :(得分:0)

不是很优雅,但工作代码:

public class MyTimer {

    private volatile int number;  //must be volatile as we're working on multiple threads.
    private final int numberToAdd;
    private final long timerTimeInMillis;

    public MyTimer() {
        number = 1;
        numberToAdd = 5;
        timerTimeInMillis = 5000;
    }

    public void runTimer() {
        new Thread() {                     //declaring a new anonymous Thread class
            public void run() {            //that has to override run method.
                while (true)               //run the program in an infinite loop
                {
                    number += numberToAdd; //add a number

                    System.out.println("Added number. Now the number is: " + number);
                    try {
                        Thread.sleep(timerTimeInMillis);  //and then sleep for a given time.
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();                         //and here we're starting this declared thread
    }

    public static void main(String[] args) 
    {
        new MyTimer().runTimer();
        try {
            Thread.sleep(100000);          //this application will work for 100sec.
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

使用java.util.Timer会更优雅,但在这里你可能会得到匿名课程。