All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.badlogic.gdx.ai.Timepiece Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2014 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.ai;

import com.badlogic.gdx.ai.btree.leaf.Wait;
import com.badlogic.gdx.ai.msg.MessageDispatcher;
import com.badlogic.gdx.ai.steer.behaviors.Jump;

/** The {@code Timepiece} is the AI clock which gives you the current time and the last delta time i.e., the time span between the
 * current frame and the last frame in seconds. This is the only service provider that does not depend on the environment, whether
 * libgdx or not. It is needed because some parts of gdx-ai (like for instance {@link MessageDispatcher}, {@link Jump} steering
 * behavior and {@link Wait} task) have a notion of spent time and we want to support game pause. It's developer's responsibility
 * to update the timepiece on each game loop. When the game is paused you simply don't update the timepiece.
 * @author davebaol */
public interface Timepiece {

	/** Returns the time accumulated up to the current frame in seconds. */
	public float getTime ();

	/** Returns the time span between the current frame and the last frame in seconds. */
	public float getDeltaTime ();

	/** Updates this timepiece with the given delta time.
	 * @param deltaTime the time in seconds since the last frame. */
	public void update (float deltaTime);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy