`
邱铁军
  • 浏览: 43511 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java计时器的用法

阅读更多
package com.toplx.hiber.bussiness.athletics.altheticsServerModel;

import java.util.HashMap;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.mina.common.IoSession;

import com.toplx.hiber.bussiness.athletics.broadList.ClientInforAthletics;
import com.toplx.hiber.bussiness.athletics.broadList.ClientInforUtilsAthletics;

/**
* 竞技中的房间模型(每个房间有2个人)
* @author Administrator
*在设定的过程中,红发一定要对应攻击状态为0
*/
public class RoomModel{


private String roomID;
private Integer redID;//红方信息
private Integer blueID;//蓝方信息
private int isStart;//是否开始0表示未开始1表示开始
private int blueIsReady;//蓝方是否准备0表示未准备1表示准备

private int redTotal=100;//红发总进度
private int blueTotal=100;//蓝方跟的总进度
private static int roundTime=20*1000;
private int attractMark=0;//0代表红发攻击,1代表蓝方攻击
private int altheticsTime;
private String mapID;//地图编号

public Timer timer;


public RoomModel(Integer roleID,Integer blueID,String roomID){
this.redID=roleID;
this.blueID=blueID;
this.roomID=roomID;
}

//房间计时器

public int getAttractMark() {
return attractMark;
}
public void setAttractMark(int attractMark) {
this.attractMark = attractMark;
}
public int getAltheticsTime() {
return altheticsTime;
}
public void setAltheticsTime(int altheticsTime) {
this.altheticsTime = altheticsTime;
}
/**
*
* 其他信息
* @return
*/
public Integer getRedID() {
return redID;
}
public void setRedID(Integer redID) {
this.redID = redID;
}
public Integer getBlueID() {
return blueID;
}
public void setBlueID(Integer blueID) {
this.blueID = blueID;
}
public int getIsStart() {
return isStart;
}
public void setIsStart(int isStart) {
this.isStart = isStart;
}


public int getRedTotal() {
return redTotal;
}
public void setRedTotal(int redTotal) {
this.redTotal = redTotal;
}

public int getBlueTotal() {
return blueTotal;
}
public void setBlueTotal(int blueTotal) {
this.blueTotal = blueTotal;
}
public int getRoundTime() {
return roundTime;
}
public void setRoundTime(int roundTime) {
this.roundTime = roundTime;
}
public int getBlueIsReady() {
return blueIsReady;
}
public void setBlueIsReady(int blueIsReady) {
this.blueIsReady = blueIsReady;
}



//以下是计时器协议3秒计时
public  void startThreeTimer()
{
if(timer!=null){
timer.cancel();
}
timer=new Timer();
timer.schedule(new TimerTask(){

@Override
public void run() {
System.out.println("3秒倒计时完成,开始控制权分配");
//timer.cancel();
startContorlFenPei("3秒计时器分配控制权");

}

},3000);

}
//控制权计时20秒
public  void startTwenty()
{
if(timer!=null){
timer.cancel();
}
timer=new Timer();
timer.schedule(new TimerTask(){

@Override
public void run() {
System.out.println("20秒倒计时完成,开始控制权分配");
startControlPortio("20秒计时器分配控制权");

}

},20000,20000);
}
//播放计时10秒
public  void startTenSecond()
{
if(timer!=null){
timer.cancel();
}
timer=new Timer();
timer.schedule(new TimerTask(){

@Override
public void run() {
System.out.println("10秒播放时间完成,开始控制权分配");
//timer.cancel();
startContorlFenPei("10秒计时器分配控制权");
}

},10000);
}
//开始分配控制权
public void startContorlFenPei(String count)
{
startControlPortio(count);
startTwenty();
}

//控制权分配
public void startControlPortio(String count)
{

Object[] win=null;
Object[] lost=null;

IoSession redSession=ClientInforUtilsAthletics.getSessionByRoleID.get(this.redID);
IoSession blueSession=ClientInforUtilsAthletics.getSessionByRoleID.get(this.blueID);

ClientInforAthletics redIDalthRoleMessage = ClientInforUtilsAthletics.allAthleticsRoleMessage
.get(this.redID);
Integer redHealth=redIDalthRoleMessage.getRoleAthleticsDto().getHealth();
ClientInforAthletics blueIDalthRoleMessage= ClientInforUtilsAthletics.allAthleticsRoleMessage
.get(this.blueID);
Integer blueHealth=blueIDalthRoleMessage.getRoleAthleticsDto().getHealth();
System.out.println("当前血量"+redHealth+" "+blueHealth);

if(redHealth<=0){
timer.cancel();
HashMap<Object,Object> map=new HashMap<Object,Object>();

map.put("Event","S_Athletics_Over");
map.put("winID",blueID);
map.put("lostID",redID);
map.put("win",win);
map.put("lost",lost);
redSession.write(map);
blueSession.write(map);
}else if(blueHealth<=0){
timer.cancel();


HashMap<Object,Object> map=new HashMap<Object,Object>();
map.put("Event","S_Athletics_Over");
map.put("winID",redID);
map.put("lostID",blueID);
map.put("win",win);
map.put("lost",lost);
redSession.write(map);
blueSession.write(map);


}else{
if(attractMark==1){
System.out.println("开始红发攻击");
attractMark=0;
HashMap<Object,Object> map=new HashMap<Object,Object>();
map.put("Event","S_Athletics_Control");
map.put("roleID",redID);
map.put("wind",0.5);

map.put("count",count);
redSession.write(map);
blueSession.write(map);


}
else{
System.out.println("开始蓝发攻击");
attractMark=1;
HashMap<Object,Object> map=new HashMap<Object,Object>();
map.put("Event","S_Athletics_Control");
map.put("roleID",blueID);
map.put("wind",0.5);
map.put("count",count);
redSession.write(map);
blueSession.write(map);

}
}


}
public void stop(){
if(timer!=null){
timer.cancel();
}
}

public String getMapID() {
return mapID;
}
public void setMapID(String mapID) {
this.mapID = mapID;
}


public static void main(String args[]){


}

public String getRoomID() {
return roomID;
}

public void setRoomID(String roomID) {
this.roomID = roomID;
}

}
分享到:
评论

相关推荐

    java计时器经典例子

    Java计时器(Timer)是Java Swing库中的一个组件,用于调度周期性的任务或执行一次性的延迟任务。在这个经典例子中,我们将会探讨如何利用Java计时器来实现每3秒在控制台上打印当前时间的功能。这个功能对于理解Java...

    java倒计时器代码

    使用 Java 倒计时器代码非常简单,首先,创建一个 DemoForDaoxu 对象,然后调用其 main 方法,这将启动倒计时器的图形用户界面。用户可以输入倒计时的时间,然后点击开始倒计时按钮,倒计时器将开始倒计时。 七、...

    java 计时器

    计时器的使用非常简单,只需要创建一个 Timer 实例,然后使用 schedule() 方法计划一个 TimerTask。 GregorianCalendar 的用法 GregorianCalendar 是 Java 中的一个日历类,用于计算日期和时间。它可以用于计划...

    Java计时器

    以上就是关于Java计时器的基本介绍,包括如何使用Timer和ScheduledExecutorService创建和管理定时任务。希望对你在理解和使用Java计时器方面有所帮助。在实际编程中,可以根据具体需求选择合适的计时器实现,以达到...

    Java计时器[文].pdf

    Java计时器是Java Swing库中的一个重要组件,用于在用户界面中实现定时任务或计时功能。`javax.swing.Timer` 类提供了简单的方式来周期性地触发事件,这些事件通常用于更新UI或其他需要定时执行的任务。在提供的代码...

    java写的计时器

    Java计时器是编程中一个常见且实用的工具,它可以帮助开发者在程序中精确地控制时间,例如跟踪任务执行的时间、实现定时任务等。在这个基于Java编写的计时器项目中,我们关注的是手动设置起始和终止时间的简单实现,...

    java swing计时器

    Java Swing计时器是Java图形用户界面(GUI)开发中的一种常见组件,它允许开发者创建交互式的定时功能,如倒计时或者周期性任务。在本项目中,我们有一个已经打包好的jar文件,名为"TimerCount",这代表它是一个实现...

    java计时器代码 可以z在Eclipse下直接运行

    Java计时器是Java编程语言中用于实现定时任务和调度任务的重要工具,它允许程序员设置时间间隔执行特定的代码块。在Java中,我们可以使用`java.util.Timer`类和`java.util.TimerTask`类来创建和管理计时器。下面我们...

    倒计时器 java

    2. **计时器组件**:Java并没有内置的倒计时组件,但开发者可以通过自定义线程或者使用Timer类来实现。Timer类属于javax.swing库,它可以按照预定的时间间隔触发事件,适合做定时更新界面的任务。不过,由于标签提到...

    JAVA倒计时器

    【JAVA倒计时器】是一种基于JAVA编程语言实现的简单计时工具,它主要用于实现从预设时间开始向后计算的倒计时功能。对于初学者来说,这是一个很好的实践项目,因为它涉及到基本的用户界面设计、事件处理以及时间管理...

    用java编写的计时器

    根据提供的代码片段,我们可以看到三种不同的计时器实现方法:使用`java.util.Date`、`System.currentTimeMillis()`以及`System.nanoTime()`。下面将分别介绍这三种方法的特点和应用场景。 #### 三、使用`java.util...

    java倒计时器

    在Java编程语言中,创建一个倒计时器是一项常见的任务,尤其在开发各种计时类应用或游戏时。本项目实现了一个完整的倒计时功能,包括输入倒计时时间、实时显示剩余时间以及时间到达后的通知机制。在这个系统中,没有...

    Java计时器Timer和TimerTask用法总结

    Java 计时器 Timer 和 TimerTask 用法总结 Java 中的计时器(Timer)和 TimerTask 是一种常用的延迟执行技术,用于实现延迟执行某个任务或事件。下面将详细介绍 Timer 和 TimerTask 的用法和实现原理。 Timer ...

    java文字记忆毫秒计时器

    这款计时器的实现基于Java编程语言,Java是一种广泛使用的面向对象的编程语言,以其跨平台的特性而闻名。在Java中,计时功能通常通过`java.util.Timer`类或者`java.time`包中的类来实现。在这个特定的应用中,可能...

    专业课程设计java计时器和操作系统页面置换.pdf

    【Java计时器】 Java计时器是Java Swing库中的一个组件,它允许程序员创建周期性的事件。在Java中,计时器是通过javax.swing.Timer类实现的,它可以按照预设的时间间隔触发事件。例如,创建一个每秒钟“震铃”的计时...

    安卓 简单计时器 计时器

    首先,计时器(Timer)在Android中通常通过`java.util.Timer`类或者`android.os.Handler`类来实现。在"简单计时器 开始/继续 清空 暂停"的描述中,我们可以推断出计时器应该有以下功能: 1. **开始/继续**:计时器...

    Java计时器[归类].pdf

    Java计时器是Java编程中用于处理定时任务的重要工具,尤其在GUI应用程序中,如游戏、动画或者定时触发事件等场景广泛应用。在提供的代码示例中,使用了`javax.swing.Timer`来创建一个简单的计时器,该计时器每秒更新...

    Android简单的计时器源码

    5. **注意事项**:计时器的使用需要注意内存泄漏问题,尤其是在使用匿名内部类实现`Runnable`或`Handler`时。如果计时器没有正确关闭,可能会导致Activity无法正常销毁,从而造成内存泄漏。因此,记得在Activity的`...

Global site tag (gtag.js) - Google Analytics