common={
data:{
baseurl:"http://183.234.61.252:8090/",
getUserInfo:"Home/User/Info",
WebSocket:"ws://183.234.61.252:8282",
bdSocket:"Home/User/Bind",
Join:"Home/User/Join",
Answer:"Home/Game/Answer",
Join:"Home/Game/Join",
uid:"",
option_id:0
},userInfo:{
},GET: function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return r[2];
return null;
},getUserInfo:function(fn){
var _this=this;
$.ajax({
type: "GET",
url: this.data.baseurl+this.data.getUserInfo,
data: {user_id:this.data.uid , mt:this.data.mt },
dataType: "json",
success: function(data){
fn&&fn(data);
}
});
},bdSocket:function(fn){
var _this=this;
$.ajax({
type: "POST",
url: this.data.baseurl+this.data.bdSocket,
data: {client_id:this.data.client_id },
dataType: "json",
success: function(data){
fn&&fn(data);
}
});
},Join:function(fn){
var _this=this;
$.ajax({
type: "GET",
url: this.data.baseurl+this.data.Join,
dataType: "json",
success: function(data){
fn&&fn(data);
}
});
},Answer:function(fn){
var _this=this;
$.ajax({
type: "POST",
url: this.data.baseurl+this.data.Answer,
data:{question_id:_this.data.question_id,option_id:_this.data.option_id,anwser_time:_this.data.sum},
dataType: "json",
success: function(data){
fn&&fn(data);
}
});
},player_join:function(data){
var _this=this;
// if(responsedata.info.user){
// $("#username").html(responsedata.info.user.name);
// $("#avatar").html('');
// }
// if(data.info.user.user_id){
// $("#py1_avatar").html('
');
// $("#py1_username").html(data.info.user.name + '(我)');
// }
// this.tips(data.info.user.name+"加入了房间")
for (var i = 0; i < data.info.players.length; i++) {
if(data.info.players[i].user_id!=_this.userInfo.user_id){
$("#py2_avatar").html('
');
$("#py2_username").html(data.info.players[i].name);
_this.userInfo.playerId=data.info.players[i].user_id;
$("#win_rate1").html("胜率:"+data.info.players[i].win_rate+"%");
}else{
$("#win_rate2").html("胜率:"+data.info.players[i].win_rate+"%");
}
}
if(data.info.players.length>=2){
$(".gstart").addClass("ready");
$(".g-doc .g-inner").addClass("doing");
$(".g-doc .g-inner").addClass("vsmov");
}
},round_end:function(data){
var _this=this;
// if(data.info.anwser==_this.data.option_id){
// $(".cur_answer").addClass("cur_true");
// }
for (var i = 0; i < data.info.players_answer.length; i++) {
if(data.info.players_answer[i].user_id==_this.userInfo.playerId){
//对方的答案id
_this.data.player_answerId=data.info.players_answer[i].option_id;
}
}
$("#question .item").each(function(){
if($(this).attr("data-option_id")==data.info.anwser){
$(this).addClass("cur_true");
}
if($(this).attr("data-option_id")!=data.info.anwser&&$(this).hasClass("cur_answer")){
$(this).addClass("cur_error");
}
if($(this).attr("data-option_id")==_this.data.player_answerId&&$(this).attr("data-option_id")==data.info.anwser){
//对方答案
$(this).addClass("player_true");
}
if($(this).attr("data-option_id")==_this.data.player_answerId&&$(this).attr("data-option_id")!=data.info.anwser){
//对方答案
$(this).addClass("player_error");
}
})
clearInterval(this.data.ts);
},game_end:function(){
var _this=this;
setTimeout(function(){
var py1_score= parseInt($("#py1_score").text()) ;
var py2_score=parseInt($("#py2_score").text());
if(py1_score > py2_score){
// _this.tips('恭喜你获得胜利');
$("#Jresult").removeClass("faild");
$("#Jresult").addClass("success");
$("#Jlastmsg").html("恭喜你获得胜利")
}else if(py1_score == py2_score){
//_this.tips('打成平手');
$("#Jlastmsg").html("打成平手")
$("#Jresult").removeClass("success");
$("#Jresult").removeClass("faild");
$("#Jresult").html($("#avatar").html())
}else{
//_this.tips('您输了比赛');
$("#Jlastmsg").html("您输了比赛")
$("#Jresult").removeClass("success");
$("#Jresult").addClass("faild");
}
$(".g-doc .g-inner").addClass("gstart");
$(".g-doc .g-inner").addClass("doing");
$(".g-doc .g-inner").addClass("end");
$("#Jvs").hide();
},3000)
},onSocket:function(e){
var data=JSON.parse(e.data);
var _this=this;
var type=data.type;
switch(type){
case 'init':
_this.data.client_id=data.client_id;
_this.bdSocket(function(res){
_this.data.isReady=1;
console.log(res.msg);
});
break;
case 'player_join':
_this.player_join(data);
break;
case 'question':
_this.loadQuestion(data);
break;
case 'round_end':
_this.round_end(data);
console.log("答题结束");
break;
case "answer":
if(_this.userInfo.user_id==data.user_id){
if( parseInt($("#py1_score").html())==data.total_score){
$("#question .cur_answer").addClass("cur_error");
}else{
$("#question .cur_answer").addClass("cur_true");
}
_this.increment($("#py1_score"),data.total_score);
}else if(_this.userInfo.playerId==data.user_id){
_this.increment($("#py2_score"),data.total_score);
}
break;
case 'game_end':
_this.game_end(data);
console.log("游戏结束");
break;
}
//_this.data.question_id
},startGame:function(){
if(this.data.isReady=="1")
this.Join(function(res){
$(".welcome").hide();
$(".gstart").show();
common.tips(res.msg);
});
else this.tips("正在登录");
},initSocket:function(){
var _this=this;
var ws = new WebSocket(this.data.WebSocket);
ws.onmessage=function(e){
_this.onSocket(e);
}
},randomNum:function(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1,10);
break;
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
break;
default:
return 0;
break;
}
},loadQuestion(responsedata) {
console.log(responsedata);
var _this=this;
_this.data.isAnswer=false;
_this.data.question_id= responsedata.info.question.question_id;
$("#Jqtitle").html(responsedata.info.question.title );
var question="";
var answers = responsedata.info.options
for(var i in answers){
question += '
元素
para.innerHTML = text;
para.setAttribute("class", "poptis");
document.body.appendChild(para);
para.style.marginLeft = -para.offsetWidth / 2+"px";
setTimeout(function () {
document.body.removeChild(para);
}, time);
},init:function(){
var _this=this;
this.listen();
var ycy =this.GET("ycy");
if(ycy){
var b64 = new Base64();
ycy=b64.decode(ycy);
ycy=decodeURIComponent(ycy);
ycy= JSON.parse(ycy);
this.data.uid=ycy.uid;
this.data.mt=ycy.mt;
}
if( this.GET("user_id")){
this.data.uid=this.GET("user_id");
this.data.mt=this.GET("mt");
}
this.getUserInfo(function(res){
_this.userInfo=res.info;
$("#py1_username").html(res.info.name);
$("#py1_avatar").html('');
_this.initSocket();
})
}
}
window.common=common;