- 注册时间
- 2017-2-1
- 最后登录
- 2017-2-3
- 阅读权限
- 20
- 积分
- 15
- 精华
- 0
- 帖子
- 4
|
demo中的猜拳游戏,我将一个按钮位置移动了一下与另一个有重叠,这时候点击会响应下面的。在论坛找了一圈,找到这个http://www.lufylegend.com/forum/ ... &extra=page%3D7,有说建立新层,并在层上绑定空事件的。尝试了一下也不行。不知道该怎么办了,求解答。
下面是修改的main.js:
init(50,"mylegend",800,400,main);
var loadingLayer,
backLayer,
resultLayer,
clickLayer,
selfBitmap,
enemyBitmap,
selfTextAll,
selfTextWin,
selfTextLoss,
selfTextDraw,
win = 0,
loss = 0,
draw = 0;
var imglist = {};
var imgData = new Array(
{name:"title",path:"../images/title.png"},
{name:"shitou",path:"../images/shitou.png"},
{name:"jiandao",path:"../images/jiandao.png"},
{name:"bu",path:"../images/bu.png"}
);
var checkList = [
[0,1,-1],
[-1,0,1],
[1,-1,0]
];
var showList = new Array();
function main(){
LGlobal.setDebug(true);
backLayer = new LSprite();
addChild(backLayer);
loadingLayer = new LoadingSample3();
backLayer.addChild(loadingLayer);
LLoadManage.load(
imgData,
function(progress){
loadingLayer.setProgress(progress);
},
function(result){
imglist = result;
backLayer.removeChild(loadingLayer);
loadingLayer = null;
gameInit();
}
);
}
function gameInit(){
showList.push(new LBitmapData(imglist["shitou"]));
showList.push(new LBitmapData(imglist["jiandao"]));
showList.push(new LBitmapData(imglist["bu"]));
//添加游戏界面背景
backLayer.graphics.drawRect(10,'#008800',[0,0,LGlobal.width,LGlobal.height],true,'#000000');
//显示游戏标题
var titleBitmap = new LBitmap(new LBitmapData(imglist["title"]));
titleBitmap.x = (LGlobal.width - titleBitmap.width)/2;
titleBitmap.y = 10;
backLayer.addChild(titleBitmap);
//玩家方出拳图片
selfBitmap = new LBitmap(showList[0]);
selfBitmap.x = 400 - selfBitmap.width - 50;
selfBitmap.y = 130;
backLayer.addChild(selfBitmap);
//电脑方出拳图片
enemyBitmap = new LBitmap(showList[0]);
enemyBitmap.x = 400 + 50;
enemyBitmap.y = 130;
backLayer.addChild(enemyBitmap);
//玩家电脑名称设定
var nameText;
nameText = new LTextField();
nameText.text = "玩家";
nameText.weight = "bolder";
nameText.color = "#ffffff";
nameText.size = 24;
nameText.x = selfBitmap.x + (selfBitmap.width - nameText.getWidth())/2;
nameText.y = 95;
backLayer.addChild(nameText);
nameText = new LTextField();
nameText.text = "电脑";
nameText.weight = "bolder";
nameText.color = "#ffffff";
nameText.size = 24;
nameText.x = enemyBitmap.x + (enemyBitmap.width - nameText.getWidth())/2;
nameText.y = 95;
backLayer.addChild(nameText);
//结果显示层初始化
initResultLayer();
//操作层初始化
initClickLayer();
}
function initResultLayer(){
resultLayer = new LSprite();
resultLayer.graphics.drawRect(4,'#ff8800',[0,0,150,110],true,'#ffffff');
resultLayer.x = 10;
resultLayer.y = 100;
backLayer.addChild(resultLayer);
selfTextAll = new LTextField();
selfTextAll.text = "猜拳次数 : 0";
selfTextAll.weight = "bolder";
selfTextAll.x = 10;
selfTextAll.y = 20;
resultLayer.addChild(selfTextAll);
selfTextWin = new LTextField();
selfTextWin.text = "胜利次数 : 0";
selfTextWin.weight = "bolder";
selfTextWin.x = 10;
selfTextWin.y = 40;
resultLayer.addChild(selfTextWin);
selfTextLoss = new LTextField();
selfTextLoss.text = "失败次数 : 0";
selfTextLoss.weight = "bolder";
selfTextLoss.x = 10;
selfTextLoss.y = 60;
resultLayer.addChild(selfTextLoss);
selfTextDraw = new LTextField();
selfTextDraw.text = "平局次数 : 0";
selfTextDraw.weight = "bolder";
selfTextDraw.x = 10;
selfTextDraw.y = 80;
resultLayer.addChild(selfTextDraw);
}
function initClickLayer(){
clickLayer = new LSprite();
clickLayer.graphics.drawRect(4,'#ff8800',[0,0,300,110],true,'#ffffff');
var msgText = new LTextField();
msgText.text = "请出拳:";
msgText.weight = "bolder";
msgText.x = 10;
msgText.y = 10;
clickLayer.addChild(msgText);
var shitouLSprite=new LSprite();
shitouLSprite.graphics.drawRect(0,"#ffffff",[0, 0, LGlobal.width, LGlobal.height]);
var btnShitou = getButton("shitou");
btnShitou.x = 30;
btnShitou.y = 35;
// clickLayer.addChild(btnShitou);
shitouLSprite.addChild(btnShitou);
shitouLSprite.addEventListener(LMouseEvent.MOUSE_UP, function(e){});
clickLayer.addChild(shitouLSprite);
btnShitou.addEventListener(LMouseEvent.MOUSE_UP,onclick);
var btnJiandao = getButton("jiandao");
var jiandaoLSprite=new LSprite();
jiandaoLSprite.graphics.drawRect(0,"#ffffff",[0, 0, LGlobal.width, LGlobal.height]);
btnJiandao.x = 55;
btnJiandao.y = 35;
// clickLayer.addChild(btnJiandao);
jiandaoLSprite.addChild(btnJiandao);
jiandaoLSprite.addEventListener(LMouseEvent.MOUSE_UP, function(e){});
clickLayer.addChild(jiandaoLSprite);
btnJiandao.addEventListener(LMouseEvent.MOUSE_UP,onclick);
var btnBu = getButton("bu");
btnBu.x = 200;
btnBu.y = 35;
clickLayer.addChild(btnBu);
btnBu.addEventListener(LMouseEvent.MOUSE_UP,onclick);
clickLayer.x = 250;
clickLayer.y = 275;
backLayer.addChild(clickLayer);
}
function onclick(event,display){
var selfValue,enemyValue;
if(display.name == "shitou"){
selfValue = 0;
console.log(0);
}else if(display.name == "jiandao"){
selfValue = 1;
console.log(1);
}else if(display.name == "bu"){
selfValue = 2;
console.log(2);
}
enemyValue = Math.floor(Math.random()*3);
selfBitmap.bitmapData = showList[selfValue];
enemyBitmap.bitmapData = showList[enemyValue];
var result = checkList[selfValue][enemyValue];
if(result == -1){
loss += 1;
}else if(result == 1){
win += 1;
}else{
draw += 1;
}
selfTextWin.text = "胜利次数 : " + win;
selfTextLoss.text = "失败次数 : " + loss;
selfTextDraw.text = "平局次数 : " + draw;
selfTextAll.text = "猜拳次数 : " + (win + loss + draw);
}
function getButton(value){
var btnUp = new LBitmap(new LBitmapData(imglist[value]));
btnUp.scaleX = 0.5;
btnUp.scaleY = 0.5;
var btnOver = new LBitmap(new LBitmapData(imglist[value]));
btnOver.scaleX = 0.5;
btnOver.scaleY = 0.5;
btnOver.x = 2;
btnOver.y = 2;
var btn = new LButton(btnUp,btnOver);
btn.name = value;
return btn;
}
|
|