Libgdx学习笔记:使用Action做定时器

在Gdx中,定时器可以使用Timer来实现,如:

Timer timer = new Timer();

Task timerTask = new Task() {

@Override

public void run() {

}

};

timer.scheduleTask(timerTask, 0, 1, 20);// 0s之后执行,每次间隔1s,执行20次。

下面我们使用Action来实现上面的效果:

Action[] sAction = new Action[20];// 一共执行20次

// 使用action实现定时器

for (int i = 0; i < sAction.length; i++) {

Action delayedAction = Actions.run(new Runnable() {

@Override

public void run() {

System.out.println("time:" + (System.currentTimeMillis() / 1000) + ",执行something");

}

});

// 延迟1s后执行delayedAction

Action action = Actions.delay(1f, delayedAction);

sAction[i] = action;

}

// 将Action加到Stage中进行执行

getStage().addAction(Actions.sequence(sAction));

时间: 2024-08-06 16:06:24

Libgdx学习笔记:使用Action做定时器的相关文章

Libgdx学习笔记: 游戏如何在androidx86 2.2的vbox虚拟机测试运行

这个问题我花了一天半的时间才解决,换了无数个libgdx的版本,0.98.0.99 1.0 还有最新未发布的版本都测试了,虚拟机的版本也换了很多个,都不行 最后总结出来. vBox虚拟机上的androidx86 无论哪个版本,至少我测试的2.2 4.0 4.1 都无法成功运行 libgdx 的opengl es2.0版本的程序 先说下我为什么一定要虚拟机,因为androidAVD带的模拟器不能多个模拟器进行socket交互,我说的是超过2个,只有2个可以端口映射,3个以上就没办法了,而现在我做的

quick-cocos2d-x学习笔记【7】——定时器

定时器用的地方还是比较多的,游戏中的逻辑判断很多都是采用每帧执行.quick对于schedule的封装在scheduler这个lua文件中.如果是第一次接触quick的话,可能按照官方的api来写一个定时器被报错,提示schedule是一个nil值,这是因为其他的模块在初始化时都是被加载的,唯独这个scheduler没有载入,所以在使用的时候,第一件事是引入这个模块, local scheduler = require("framework.scheduler") 剩下的就可以看着ap

Hadoop学习笔记(8) ——实战 做个倒排索引

Hadoop学习笔记(8) ——实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如下: 这张索引表中, 每个单词都对应着一系列的出现该单词的文档,权表示该单词在该文档中出现的次数.现在我们假定输入的是以下的文件清单: T1 : hello world hello china T2 : hello hadoop T3 : bye world bye hadoop bye bye 输

QT学习笔记(14) 定时器类DTimer的使用

一. 在前面的学习笔记中,我们已经学习定时器事件http://www.cnblogs.com/blog-ccs/p/7445323.html 现在,我们学习QTimer定时器类,比较优劣. 二.示例代码 widget.h 1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QTimer>//定时器对象 6 7 namespace Ui { 8 class Widget; 9 } 10 11

Cocos2d-x学习笔记(六) 定时器Schedule的简单应用

 Cocos2d-x中的定时器使用非常easy,共同拥有3种:schedule.scheduleUpdate和scheduleOnce.简介一下三种的差别: schedule,每隔指定时间运行某个自己定义的函数 schedule(schedule_selector(自己定义函数名),间隔时间); scheduleUpdate,每帧运行一次Update函数(仅仅能是以Update命名的函数,须要调用其它函数则使用schedule) scheduleOnce,在指定时间后运行某个自己定义函数,且

Android学习笔记(四) 定时器Timer

Android考虑到线程安全问题,不允许在线程中执行UI线程. 所以在线程中不允许有UI操作 可以利用Handler机制来接收Timer每隔一秒发出的信息,也可以直接利用handler机制的 1.方法一:Handler+Thread package com.example.yuyin_lixian; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import java.util.T

Xitrum学习笔记03 - Action和View

Action: Xitrum 提供了3种Action:普通Action, FutureAction 和 ActorAction 它们都是Trait,而不是 Class 1. 普通Action: 当请求到来时,Action实现类直接在Netty的 IO线程上运行,不能用普通Action来执行 消耗很长时间的处理,否则Netty就不能接收新的连接或发出响应到客户端 import xitrum.Action import xitrum.annotation.GET @GET("hello")

STM32学习笔记11(通用定时器作为输入捕获2)

通用定时器作为输入捕获的使用.我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间 输入捕获简介 输入捕获模式可以用来测量脉冲宽度或者测量频率. STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能.STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的

Libgdx学习笔记:自己封装各种粒子特效

实现的思路:缓存池+(Image或者CHActor) + Actions 例:实现星星右中心点向圆形周围扩散,且星星不断的旋转,缩小,到达圆上时消失. 这个需求里面对于单个星星包含的Action有: moveTo 移动 roatateBy 旋转 scaleTo 缩小 我们使用Actions.parallel(...)来同时执行上面三个Action.当然我们再执行上面所有Action还需要加上最后的RunnableAction.用来处理粒子结束后的其他工作(释放星星对象到缓存池). 单个星星的运动