
源代码下载:
请到代码下载(水果忍者 cocos2d-JS 源代码):?p=319
不同平台下的效果图:
windows

html5网页

android平台


代码分析:
1 创建水果静态数组,每一个水果都有四个参数,编号,分数,本身的图片,切除后的碎片;这里定义好了,下面直接用;
FRUIT_DATA = [
{
num: 0,
score: 1,
fruitImage: "apple.png",
cutImage: ["apple-1.png", "apple-2.png"]
},
{
num: 1,
score: 2,
fruitImage: "banana.png",
cutImage: ["banana-1.png", "banana-2.png"]
},
{
num: 2,
score: 2,
fruitImage: "basaha.png",
cutImage: ["basaha-1.png", "basaha-2.png"]
},
{
num: 3,
score: 3,
fruitImage: "peach.png",
cutImage: ["peach-1.png", "peach-2.png"]
},
{
num: 4,
score: 5,
fruitImage: "sandia.png",
cutImage: ["sandia-1.png", "sandia-2.png"]
},
{
num: 5,
score: 0,
fruitImage: "boom.png",
cutImage: "boomlight1.png"
}
];
2 检测碰撞事件;
# 触摸有onTouchBegan和onTouchMoved,这是两个点,可以确定刀锋的方向,上一节已讲过;var flash = cc.MySprite.createFlash(this.rootNode, "flash.png", this.pBegin, loc);
# 首先检查碰撞,水果和移动点发生碰撞cc.rectContainsPoint(fruit.getBoundingBox(), loc)

#如果碰撞,播放音效;playEffect;
#创建flash
#水果消失,并产生切成两半 fruit slice
#根据水果的数据获得分数提示 scoretip
MainLayer.prototype.onTouchesMoved = function (touches, event)
{
if (this.gameStatus == OVER) {
return;
}
var loc = touches[0].getLocation();
for (var i = 0; i < this.fruitList.length; i++) {
var fruit = this.fruitList[i];
if (fruit && fruit.cleanuped == false) {
if (cc.rectContainsPoint(fruit.getBoundingBox(), loc)) {
//splatter audio
cc.AudioEngine.getInstance().playEffect(FRUIT_SOUNDS.splatter, false);
//flash
var flash = cc.MySprite.createFlash(this.rootNode, "flash.png", this.pBegin, loc);
//Fruit Slice
this.newSliceFruit(fruit.num, fruit.getPosition(), flash.getRotation());
fruit.runAction(cc.ScaleTo.create(0, 0));
fruit.cleanuped = true;
//scoreTip
var fruitScore = FRUIT_DATA[fruit.num].score;
this.scoreTip(fruit.getPosition(), fruitScore + "");
this.totalScore += Number(fruitScore);
this.totalScoreFont.setString(this.totalScore);
}
}
else {
this.fruitList.splice(i, 1);
}
}
};
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-50223-1.html
我记得那时俺年轻