#include "GameLayer.h"
#include "EffectsUtil.h"
#include "SoundUtil.h"
#include "ParticlesUtil.h"
#include "AppMacros.h"
#include <string>
#include <iostream>
#include <stack>
using namespace cocos2d;
enum
{
kTagTileMap = 1,
};
//¿ªÆôÒ»¸öµãµÄ´¥¿Ø
GameLayer* GameLayer::create(int mapNumber,bool isNew){//´´½¨ÓÎÏ·½çÃæµÄ¾²Ì¬·½·¨
GameLayer* gameLayer = new GameLayer();//´´½¨ÓÎÏ·½çÃæ¶ÔÏó
gameLayer->setMapNumber(mapNumber);//ÉèÖñ¾¹Ø¿¨µÄµØͼ±àºÅ
gameLayer->isNew = isNew;//ÊÇ·ñ¡°¼ÌÐøÓÎÏ·¡±µÄ±ê־λ
gameLayer->init();//³õʼ»¯³¡¾°µÄinitº¯Êý
gameLayer->autorelease();//µ÷ÓÃ×Ô¶¯Êͷź¯Êý
return gameLayer;//·µ»Ø´´½¨µÄÖ¸Õë
}
GameLayer::GameLayer(){//¹¹Ô캯Êý
ccSpan.a=0.0f;//ÑÕɫ͸Ã÷¶È½¥±äÂÊ
ccSpan.b=0.0f;//ÑÕÉ«À¶É«½¥±äÂÊ
ccSpan.g=0.0f;//ÑÕÉ«ÂÌÉ«½¥±äÂÊ
ccSpan.r=0.0f;//ÑÕÉ«ºìÉ«½¥±äÂÊ
ccRed.a=1.0f;//ºìÉ«·ÖÁ¿Ïà¹ØÖµ
ccRed.b=58.0f;//ºìÉ«·ÖÁ¿Ïà¹ØÖµ
ccRed.g=54.0f;//ºìÉ«·ÖÁ¿Ïà¹ØÖµ
ccRed.r=221.0f;//ºìÉ«·ÖÁ¿Ïà¹ØÖµ
ccBlue.a=1.0f;//À¶É«·ÖÁ¿Ïà¹ØÖµ
ccBlue.b=210.0f;//À¶É«·ÖÁ¿Ïà¹ØÖµ
ccBlue.g=134.0f;//À¶É«·ÖÁ¿Ïà¹ØÖµ
ccBlue.r=74.0f;//À¶É«·ÖÁ¿Ïà¹ØÖµ
ccGreen.a=1.0f;//ÂÌÉ«·ÖÁ¿Ïà¹ØÖµ
ccGreen.b=51.0f;//ÂÌÉ«·ÖÁ¿Ïà¹ØÖµ
ccGreen.g=194.0f;//ÂÌÉ«·ÖÁ¿Ïà¹ØÖµ
ccGreen.r=63.0f;//ÂÌÉ«·ÖÁ¿Ïà¹ØÖµ
ccYellow.a=1.0f;//»ÆÉ«·ÖÁ¿Ïà¹ØÖµ
ccYellow.b=67.0f;//»ÆÉ«·ÖÁ¿Ïà¹ØÖµ
ccYellow.g=208.0f;//»ÆÉ«·ÖÁ¿Ïà¹ØÖµ
ccYellow.r=211.0f;//»ÆÉ«·ÖÁ¿Ïà¹ØÖµ
ccPurple.a=1.0f;//×ÏÉ«·ÖÁ¿Ïà¹ØÖµ
ccPurple.b=183.0f;//×ÏÉ«·ÖÁ¿Ïà¹ØÖµ
ccPurple.g=46.0f;//×ÏÉ«·ÖÁ¿Ïà¹ØÖµ
ccPurple.r=191.0f;//×ÏÉ«·ÖÁ¿Ïà¹ØÖµ
currTouchScore = 0;//µ±Ç°µã»÷µÃµ½µÄ·ÖÊý
bomRow = 0;//µÚ¶þ´Îµã»÷µÄʱºòÐÇÐDZ¬Õ¨µÄÐÐ
bomCol = 0;//µÚ¶þ´Îµã»÷µÄʱºòÐÇÐDZ¬Õ¨µÄÁÐ
totalScore=CONTINUESCORE;//×Ü·ÖÊý
max=0;//×î¸ß·ÖÊý
isHaveGroupStarForTouch = true;//³õʼ»¯Ïà¹Ø±ê־λ
//ÓÃÓÚÏÔʾtouchScoreµÄlabel
showTouchScoreLabel = CCLabelTTF::create("0", "fonts/Marker Felt.ttf",25);
showTouchScoreLabel->setPosition(ccp(240,520));//ÉèÖñêǩλÖÃ
showTouchScoreLabel->setVisible(false);//ÉèÖñêÇ©²»¿É¼û
this->addChild(showTouchScoreLabel,4);//½«±êÇ©¼ÓÈë²¼¾°ÖÐ
jiChuFenShuIndex = 0;//³õʼ»¯»ù´¡·ÖÊý×éµÄË÷Òý
}
//µÃµ½À®°È¾«ÁéµÄ·¶Î§
CCRect GameLayer::rect(CCSprite* temp)
{
CCSize s = temp->getTexture()->getContentSize();
return CCRectMake(0,0, s.width, s.height);
}
//Îö¹¹º¯Êý
GameLayer::~GameLayer()
{
if(vecStar)
{
delete []vecStar;
vecStar = NULL;
}
if(vecTouchStar)
{
delete vecTouchStar;
vecTouchStar = NULL;
}
if(vecCalStar)
{
delete vecCalStar;
vecCalStar = NULL;
}
}
//ÉèÖõØͼµÄ±àºÅ
void GameLayer::setMapNumber(int mapNumber)
{
//¼Ç¼µ±Ç°µØͼµÄ±àºÅ
this->mapNumber = mapNumber;
}
//¸ù¾ÝÐÇÐÇÀàÐ͵IJ»Í¬²úÉú²»Í¬µÄ±¬Õ¨Ð§¹ûµÄ·½·¨
CCParticleExplosion* GameLayer::mackDifferentFireWorks(int type,int row,int col){
CCParticleExplosion* particleSystemStar;//±¬Õ¨Á£×Óϵͳ
int countStar = 30;//±¬Õ¨²úÉúµÄÁ£×ÓÊýÁ¿
switch(type){//Åжϵ±Ç°ÐÇÐǵÄÀàÐÍ
case 1://ÐÇÐÇ1
//´´½¨Ö¸¶¨Á£×ÓÊýÁ¿µÄ±¬Õ¨Á£×Óϵͳ
particleSystemStar = CCParticleExplosion::createWithTotalParticles(countStar);
//Ϊ±¬Õ¨ÉèÖÃÎÆÀíͼƬ
particleSystemStar->setTexture( CCTextureCache::sharedTextureCache()->addImage("pic/sp1.png"));
particleSystemStar->setStartColor(ccBlue);//ÉèÖñ¬Õ¨µÄÆðµãÑÕÉ«
particleSystemStar->setEndColor(ccBlue);//ÉèÖñ¬Õ¨µÄÖÕµãÑÕÉ«
break;
case 2:
particleSystemStar = CCParticleExplosion::createWithTotalParticles(countStar);
particleSystemStar->setTexture( CCTextureCache::sharedTextureCache()->addImage("pic/sp2.png"));
particleSystemStar->setStartColor(ccGreen);
particleSystemStar->setEndColor(ccGreen);
break;
case 3:
particleSystemStar = CCParticleExplosion::createWithTotalParticles(countStar);
particleSystemStar->setTexture( CCTextureCache::sharedTextureCache()->addImage("pic/sp3.png"));
particleSystemStar->setStartColor(ccPurple);
particleSystemStar->setEndColor(ccPurple);
break;
case 4:
particleSystemStar = CCParticleExplosion::createWithTotalParticles(countStar);
particleSystemStar->setTexture( CCTextureCache::sharedTextureCache()->addImage("pic/sp4.png"));
particleSystemStar->setStartColor(ccRed);
particleSystemStar->setEndColor(ccRed);
break;
case 5:
particleSystemStar = CCParticleExplosion::createWithTotalParticles(countStar);
particleSystemStar->setTexture( CCTextureCache::sharedTextureCache()->addImage("pic/sp5.png"));
particleSystemStar->setStartColor(ccYellow);
particleSystemStar->setEndColor(ccYellow);
break;
}
particleSystemStar->setPosition(ccp(col*48,row*48));//ÉèÖñ¬Õ¨Á£×ÓϵͳµÄλÖÃ
particleSystemStar->setStartColorVar(ccSpan);//ÉèÖÃÑÕÉ«±ä»¯±äÁ¿
particleSystemStar->setEndColorVar(ccSpan);//ÉèÖÃÑÕÉ«±ä»¯±äÁ¿
particleSystemStar->setGravity(ccp(0,-300));//ÉèÖÃÖØÁ¦
particleSystemStar->setSpeed(200);//ÉèÖÃËÙ¶È
particleSystemStar->setScale(0.8f);//ÉèÖõ¥¸öÁ£×ӵĴóС
return particleSystemStar;//·µ»Ø´´½¨ºÃµÄÁ£×Óϵͳ
}
bool GameLayer::init(){//ÖØдµÄ¸¸ÀàµÄ³õʼ»¯µÄ·½·¨
if (!CCLayer::init()){//µ÷Óø¸ÀàµÄ³õʼ»¯·½·¨
return false;//³õʼ»¯Ê§°Ü·µ»Øfalse
}
auto lis=EventListenerTouchOneByOne::create();
lis->onTouchBegan=[&](Touch * pTouch ,Event *event){ CCPoint point = pTouch->getLocation();
CCLOG("My name is %f, 今年 %f 岁",point.x , point.y);
int col = point.x/48.0;//¼ÆËã¸Ã´¥¿ØµãËùÔÚµÄÁÐ
int row = point.y/48.0;//¼ÆËã¸Ã´¥¿ØµãËùÔÚµÄÐÐ
CCLOG("My name is %d, 今年 %d 岁",col , row);
Star* star = getStarFormRC(row,col);//ͨ¹ýÐÐÁеõ½ÐÇÐÇ
if(star && vecTouchStar->size()==0){//Èç¹ûµãÖÐÁËÐÇÐDz¢ÇÒÁбíΪ¿Õ£¬ËµÃ÷ΪµÚÒ»´Îµã»÷
calCascadeStar(row,col);//¼¶Áª¼ÆËãÐÇÐÇÁбí
changeStarPicture();//¸Ä±äÐÇÐÇÁбíÖеÄÎÆÀíͼƬ
upAndDownAction();//ÈÃÑ¡ÖеÄÐÇÐÇÉÏÏÂÔ˶¯
if(HAVESOUND)//Èç¹ûÔÊÐí²¥·ÅÉùÒô
SoundUtil::playEffect(soundName[0]);//²¥·ÅÐÇÐÇÑ¡ÖеÄÉùÒô
if(vecTouchStar->size()>1){//Èç¹ûÐÇÐÇÁбíµÄ´óС´óÓÚ1
showTouchScoreLabel->setVisible(true);//ÏÔʾÌáʾ±êÇ©
//ΪÌáʾ±êÇ©ÉèÖÃÆ´×°µÄ×Ö·û´®
showTouchScoreLabel->setString(pinJieCountAndScoreString().c_str());
CCActionInterval* scale = CCScaleTo::create(0.05f,1.2f);//´´½¨Ëõ·Å¶¯×÷
CCActionInterval* scaleR = CCScaleTo::create(0.05f,0.9f);//´´½¨Ëõ·Å¶¯×÷
showTouchScoreLabel->runAction//ÈñêÇ©Ö´ÐÐÌض¨µÄ¶¯×÷
(
CCSequence::create//Ϊ±êÇ©´´½¨¶¯×÷ÐòÁÐ
(
scale,//½«Ëõ·Å¶¯×÷Ìí¼Ó½ø¶¯×÷ÐòÁÐ
scaleR,//½«Ëõ·Å¶¯×÷Ìí¼Ó½ø¶¯×÷ÐòÁÐ
NULL//×îºóÒ»¸ö²ÎÊýΪNULL
)
);
}
}else if(star && starIsExsit(row,col)){//Èç¹ûµãÖÐÁËÐÇÐÇ£¬²¢ÇÒµãÖеÄÐÇÐÇ´�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
star.rar (75个子文件)
Resources
pic
saveexit.png 15KB
star3d.png 4KB
defen.png 6KB
targetbar.png 4KB
mainback.png 3KB
help.png 10KB
stars.png 1KB
resume2.png 16KB
return.png 9KB
resume.png 15KB
star4d.png 4KB
sp2.png 3KB
star1d.png 4KB
blink1.png 49KB
snow.png 1KB
ku.png 24KB
fail.png 44KB
star3dwhite.png 4KB
blink2.png 51KB
labaok.png 2KB
exit.png 10KB
sp4.png 3KB
pause.png 1KB
star5dwhite.png 4KB
fire.png 1KB
sp1.png 4KB
star1dwhite.png 4KB
niu.png 38KB
mainbacktop.png 68KB
newgame.png 13KB
star2d.png 5KB
guoguan.png 6KB
sp5.png 3KB
maxscore.png 2KB
blink3.png 35KB
bang.png 27KB
maxrecord.png 8KB
mainbackbottom.png 81KB
geili.png 37KB
target.png 6KB
helpbg.png 197KB
star4dwhite.png 4KB
win.png 22KB
labano.png 1KB
defenbar.png 1KB
star2dwhite.png 4KB
sp3.png 3KB
star5d.png 4KB
level.png 4KB
CloseSelected.png 5KB
sound
win.mp3 113KB
gameover.mp3 89KB
select.mp3 2KB
click.mp3 13KB
broken.mp3 26KB
stageclear.mp3 26KB
fire.mp3 49KB
fonts
Marker Felt.ttf 25KB
CloseNormal.png 6KB
HelloWorld.png 136KB
Classes
AppMacros.h 2KB
GameLayer.cpp 54KB
LayerBetweenMainAndGame.h 773B
Star.cpp 2KB
AppDelegate.cpp 2KB
HelloWorldScene.h 612B
TransUtil.h 6KB
AppDelegate.h 947B
HelloWorldScene.cpp 3KB
ParticlesUtil.h 4KB
Star.h 2KB
LayerBetweenMainAndGame.cpp 5KB
GameLayer.h 6KB
EffectsUtil.h 8KB
SoundUtil.h 3KB
共 75 条
- 1
资源评论
- osjLzjh2017-03-17谢谢分享,还可以!
genius-x
- 粉丝: 179
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功