This commit is contained in:
parent
a8977a3b5a
commit
28d46ca390
154
mode/chess.js
154
mode/chess.js
|
@ -701,14 +701,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
if(_status.currentChessFocus){
|
if(_status.currentChessFocus){
|
||||||
cancelAnimationFrame(_status.currentChessFocus);
|
cancelAnimationFrame(_status.currentChessFocus);
|
||||||
}
|
}
|
||||||
var count=12;
|
var count=lib.config.low_performance?6:12;
|
||||||
var ddx=Math.floor(dx/12);
|
var ddx=Math.floor(dx/count);
|
||||||
var ddy=Math.floor(dy/12);
|
var ddy=Math.floor(dy/count);
|
||||||
if(dx||dy){
|
if(dx||dy){
|
||||||
_status.currentChessFocus=requestAnimationFrame(function(){
|
var chessFocus=function(){
|
||||||
if(count--){
|
if(count--){
|
||||||
ui.chessContainer.scrollLeft+=ddx;
|
ui.chessContainer.scrollLeft+=ddx;
|
||||||
ui.chessContainer.scrollTop+=ddy;
|
ui.chessContainer.scrollTop+=ddy;
|
||||||
|
_status.currentChessFocus=requestAnimationFrame(chessFocus);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
ui.chessContainer.scrollLeft+=dx%12;
|
ui.chessContainer.scrollLeft+=dx%12;
|
||||||
|
@ -716,7 +717,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
cancelAnimationFrame(_status.currentChessFocus);
|
cancelAnimationFrame(_status.currentChessFocus);
|
||||||
delete _status.currentChessFocus;
|
delete _status.currentChessFocus;
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
_status.currentChessFocus=requestAnimationFrame(chessFocus);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getXY:function(){
|
getXY:function(){
|
||||||
|
@ -1395,80 +1397,80 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
obstacles:[],
|
obstacles:[],
|
||||||
initChess:function(){
|
initChess:function(){
|
||||||
ui.chess.style.height=148*ui.chessheight+'px';
|
ui.chess.style.height=148*ui.chessheight+'px';
|
||||||
ui.chess.style.width=148*ui.chesswidth+'px';
|
ui.chess.style.width=148*ui.chesswidth+'px';
|
||||||
if(!lib.config.touchscreen){
|
if(!lib.config.touchscreen){
|
||||||
ui.chess.addEventListener('mousedown',function(e){
|
ui.chess.addEventListener('mousedown',function(e){
|
||||||
if(Array.isArray(e.path)){
|
if(Array.isArray(e.path)){
|
||||||
for(var i=0;i<e.path.length;i++){
|
for(var i=0;i<e.path.length;i++){
|
||||||
var itemtype=get.itemtype(e.path[i]);
|
var itemtype=get.itemtype(e.path[i]);
|
||||||
if(itemtype=='button'||itemtype=='card'||itemtype=='player'){
|
if(itemtype=='button'||itemtype=='card'||itemtype=='player'){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
|
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
|
||||||
});
|
});
|
||||||
ui.chess.addEventListener('mouseleave',function(){
|
ui.chess.addEventListener('mouseleave',function(){
|
||||||
this._chessdrag=null;
|
this._chessdrag=null;
|
||||||
});
|
});
|
||||||
ui.chess.addEventListener('mouseup',function(){
|
ui.chess.addEventListener('mouseup',function(){
|
||||||
if(this._chessdrag){
|
if(this._chessdrag){
|
||||||
this._chessdrag=null;
|
this._chessdrag=null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ui.chess.addEventListener('mousemove',function(e){
|
ui.chess.addEventListener('mousemove',function(e){
|
||||||
if(this._chessdrag){
|
if(this._chessdrag){
|
||||||
this.parentNode.scrollLeft=this._chessdrag[1]-e.x+this._chessdrag[0].x;
|
this.parentNode.scrollLeft=this._chessdrag[1]-e.x+this._chessdrag[0].x;
|
||||||
this.parentNode.scrollTop=this._chessdrag[2]-e.y+this._chessdrag[0].y;
|
this.parentNode.scrollTop=this._chessdrag[2]-e.y+this._chessdrag[0].y;
|
||||||
_status.clicked=true;
|
_status.clicked=true;
|
||||||
}
|
}
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
ui.chessContainer.addEventListener('mousewheel',function(){
|
ui.chessContainer.addEventListener('mousewheel',function(){
|
||||||
if(_status.currentChessFocus){
|
if(_status.currentChessFocus){
|
||||||
cancelAnimationFrame(_status.currentChessFocus);
|
cancelAnimationFrame(_status.currentChessFocus);
|
||||||
delete _status.currentChessFocus;
|
delete _status.currentChessFocus;
|
||||||
}
|
}
|
||||||
},{passive:true});
|
},{passive:true});
|
||||||
}
|
}
|
||||||
|
|
||||||
ui.chessscroll1=ui.create.div('.chessscroll.left',ui.chessContainer);
|
ui.chessscroll1=ui.create.div('.chessscroll.left',ui.chessContainer);
|
||||||
ui.chessscroll2=ui.create.div('.chessscroll.right',ui.chessContainer);
|
ui.chessscroll2=ui.create.div('.chessscroll.right',ui.chessContainer);
|
||||||
var chessscroll=function(){
|
var chessscroll=function(){
|
||||||
if(lib.config.touchscreen) return;
|
if(lib.config.touchscreen) return;
|
||||||
var direction=this.direction;
|
var direction=this.direction;
|
||||||
var speed=parseInt(get.config('chessscroll_speed'));
|
var speed=parseInt(get.config('chessscroll_speed'));
|
||||||
if(!speed) return;
|
if(!speed) return;
|
||||||
var interval=setInterval(function(){
|
var interval=setInterval(function(){
|
||||||
ui.chessContainer.scrollLeft+=speed*direction;
|
ui.chessContainer.scrollLeft+=speed*direction;
|
||||||
},16);
|
},16);
|
||||||
_status.chessscrolling=interval;
|
_status.chessscrolling=interval;
|
||||||
};
|
};
|
||||||
var leavescroll=function(){
|
var leavescroll=function(){
|
||||||
if(_status.chessscrolling){
|
if(_status.chessscrolling){
|
||||||
clearInterval(_status.chessscrolling);
|
clearInterval(_status.chessscrolling);
|
||||||
delete _status.chessscrolling;
|
delete _status.chessscrolling;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ui.chessscroll1.direction=-1;
|
ui.chessscroll1.direction=-1;
|
||||||
ui.chessscroll1.addEventListener('mouseenter',chessscroll);
|
ui.chessscroll1.addEventListener('mouseenter',chessscroll);
|
||||||
ui.chessscroll1.addEventListener('mouseleave',leavescroll);
|
ui.chessscroll1.addEventListener('mouseleave',leavescroll);
|
||||||
|
|
||||||
ui.chessscroll2.direction=1;
|
ui.chessscroll2.direction=1;
|
||||||
ui.chessscroll2.addEventListener('mouseenter',chessscroll);
|
ui.chessscroll2.addEventListener('mouseenter',chessscroll);
|
||||||
ui.chessscroll2.addEventListener('mouseleave',leavescroll);
|
ui.chessscroll2.addEventListener('mouseleave',leavescroll);
|
||||||
|
|
||||||
for(var i=0;i<ui.chesswidth;i++){
|
for(var i=0;i<ui.chesswidth;i++){
|
||||||
for(var j=0;j<ui.chessheight;j++){
|
for(var j=0;j<ui.chessheight;j++){
|
||||||
var pos='[data-position="'+(i+j*ui.chesswidth)+'"]';
|
var pos='[data-position="'+(i+j*ui.chesswidth)+'"]';
|
||||||
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.player'+pos+
|
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.player'+pos+
|
||||||
'{left:'+(14+i*148)+'px;top:'+(14+j*148)+'px}',0);
|
'{left:'+(14+i*148)+'px;top:'+(14+j*148)+'px}',0);
|
||||||
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.card'+pos+
|
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.card'+pos+
|
||||||
'{left:'+(22+i*148)+'px;top:'+(22+j*148)+'px}',0);
|
'{left:'+(22+i*148)+'px;top:'+(22+j*148)+'px}',0);
|
||||||
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.popup'+pos+
|
ui.chesssheet.sheet.insertRule('#arena.chess #chess>.popup'+pos+
|
||||||
'{left:'+(19+i*148)+'px;top:'+(142+j*148)+'px}',0);
|
'{left:'+(19+i*148)+'px;top:'+(142+j*148)+'px}',0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getVideoName:function(){
|
getVideoName:function(){
|
||||||
var str='战棋'+get.translation(_status.mode)+' - '+_status.friendCount+'v'+_status.enemyCount;
|
var str='战棋'+get.translation(_status.mode)+' - '+_status.friendCount+'v'+_status.enemyCount;
|
||||||
|
|
|
@ -34,7 +34,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
get.chessDistance=result.get.chessDistance;
|
get.chessDistance=result.get.chessDistance;
|
||||||
get.rawAttitude=result.get.rawAttitude;
|
get.rawAttitude=result.get.rawAttitude;
|
||||||
var toLoad=['addChessPlayer','addObstacle','removeObstacle','isChessNeighbour',
|
var toLoad=['addChessPlayer','addObstacle','removeObstacle','isChessNeighbour',
|
||||||
'draw2','updateCanvas2','setChessInfo','modeSwapPlayer'];
|
'draw2','updateCanvas2','setChessInfo','modeSwapPlayer','initChess'];
|
||||||
for(var i=0;i<toLoad.length;i++){
|
for(var i=0;i<toLoad.length;i++){
|
||||||
game[toLoad[i]]=result.game[toLoad[i]];
|
game[toLoad[i]]=result.game[toLoad[i]];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue