gametaskmanager.java

来自「Java games programing--很好的java游戏编程源码」· Java 代码 · 共 73 行

JAVA
73
字号
package com.brackeen.javagamebook.scripting;

import java.util.*;

/**
    Manages a queue of GameTask objects.
*/
public class GameTaskManager {

    private List tasks;


    /**
        Creates a new GameTaskManager with a empty task queue.
    */
    public GameTaskManager() {
        tasks = new ArrayList();
    }


    /**
        Adds a task to the queue that exetued the specified
        runnable after a delay.
    */
    public void addTask(long delay, Runnable runnable) {
        addTask(new GameTask(delay, runnable));
    }


    /**
        Adds a task to the queue.
    */
    public void addTask(GameTask task) {
        tasks.add(task);
    }


    /**
        Clears the task queue.
    */
    public void clear() {
        tasks.clear();
    }


    /**
        Updates this manager, executing any ready tasks.
    */
    public void update(long elapsedTime) {

        List removeList = null;
        int size = tasks.size();

        // note that executing a task can potentially add more
        // tasks onto the queue.
        for (int i=0; i<size; i++) {
            GameTask task = (GameTask)tasks.get(i);
            if (task.check(elapsedTime)) {
                // add object to list of objects to remove later
                if (removeList == null) {
                    removeList = new ArrayList();
                }
                removeList.add(task);
            }
        }

        // clear tasks that executed
        if (removeList != null) {
            tasks.removeAll(removeList);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?