精选文章 java计时器的用法

java计时器的用法

作者:iteye_20498 时间: 2021-07-06 09:11:26
iteye_20498 2021-07-06 09:11:26
【摘要】
                    package com.toplx.hiber.bussiness.athletics.altheticsServerModel;

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

import org.apache.mina.common....
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 map=new HashMap();

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 map=new HashMap();
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 map=new HashMap();
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 map=new HashMap();
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;
}

}
勿删,copyright占位
您找到想要的结果了吗?
java计时器的用法
提交成功!非常感谢您的反馈,我们会继续努力做到更好
分享文章到微博
分享文章到朋友圈

上一篇:(转)java垃圾收集算法

下一篇:redhat5.2 x64上使用yum

您可能感兴趣

  • 分割源文件的Java程序

    由于从VC6到VS2005均不能调试超过65535行的代码,但是在工作中生成的解码库的源文件会远远超过这个数字,因此写了个程序来解决这个问题。程序编程语言选择Java,因为用Java来处理使用方便,编写也容易,此处对效率没有要求因此不选择用C了。 程序基于花括号匹配的原理来拆分文件,在第一个文件中include之后的文件,并将之后的文件都以.h来重...

  • java版飞信协议实现

    原始的代码不记得是哪个作者了,如果原作者看见了,我要说声谢谢 但这个真的做了大改动,我怕原作者也看不出来了~最近比较忙,如果谁愿意,去改改吧,不知道为什么,这个很不稳定,老是405错误,或者最近移动的问题? 给出代码: package myFetion;import java.io.BufferedReader;import java.io.I...

  • java 复制对象

    关于java对象复制我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递,而很多时候对于对象传递我们也希望能够象值传递一样,使得传递之前和之后有不同的内存地址,在这种情况下我们一般采用以下两种情况。1 对象克隆什么是"clone"?在实际编程过程中,我们...

  • 统计java源代码行数——coding篇

    ----------------------------------------------------------------------- 转自: http://fanyang219.iteye.com/blog/186968 ----------------------------------------------------------...

  • java axis webservice 开发实例

    今天研究了下webservice 终于OK了,所以把它写到自己的博客来,因为网上说的都很复杂 而在这里,我会很简单的说明,一看就懂 首先在进行webservice 一定要下载包 到 http://ws.Apache.org/axis/网站下载Axis安装包. 在本文章中,我已经把要用的包上传了,大家可以直接在这下就行了 然后就写wsdd 文...

  • MyEclipse 对java工程进行jar打包

    前些天在网上看了些如何将java 项目转换成jar包. 都是说什么用jar命令对java工程进行打包 我看了哈子,觉的有点复杂.其实,用MyEclipse 打成JAR包,简单.快速 具体操作如下: 1.点项目反键->Export 如图: [img]http://www.liuzm.com/logo/jar1.jpg[/img]选择jar file ...

  • 数据库mysql、sqlserver、oracle分页,java分页统一接口实现

    定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量 :D oracle分页:     select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart sqlServer分...

  • java instrument 初探

    java在1.5引入java.lang.instrument,你可以由此实现一个java agent,通过此agent来修改类的字节码即改变一个类。本文中,会通过java instrument 实现一个简单的profiler。当然instrument并不限于profiler,instrument可以做很多事情, 它类似一种更低级,更松耦合的AOP,...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。
java计时器的用法介绍:华为云为您免费提供java计时器的用法在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多java计时器的用法的相关内容。| 移动地址: java计时器的用法 | 写博客