现在的位置: 首页 > 综合 > 正文

捕鱼山寨———–(二) 帮助界面

2013年10月14日 ⁄ 综合 ⁄ 共 4662字 ⁄ 字号 评论关闭

先来个效果图

 

 

---------------------------------分割线附上代码----------------------------------------------------------------

#include <stdio.h>
#include "HelpScene.h"
#include "StartMenuScene.h"
#include "HelpCCLayer.h"

using namespace cocos2d;
using namespace std;


CCPoint centerPoint;
CCSprite* h1Sprite;
CCSprite* h2Sprite;
CCSize size;
float offSetAnchor;
float y;
float beginX;
float maxLen=9;  //sprites数组的长度
CCSprite* sprites[9];


int currentSprite;

float spriteWidth;

CCScene* HelpScene::scene(void)
{
	
		CCScene * scene=NULL;

		do{
			scene = CCScene::create();
			CC_BREAK_IF(!scene);

		HelpScene *layer =HelpScene::create();
		CC_BREAK_IF( !layer);


		HelpCCLayer* layer1=HelpCCLayer::create();
		CC_BREAK_IF( !layer1);

		scene->addChild(layer,0);
		scene->addChild(layer1,2);

		}while(0);
	return scene;
}


	bool HelpScene::init(void){
		bool bRet=false;
		do{
			 
		    CC_BREAK_IF(! CCLayer::init());
			this->setTouchEnabled(true);
		    size= CCDirector::sharedDirector()->getWinSize();
			CCSprite* bSprite=CCSprite::create("/help/help_kuang.png");
			CC_BREAK_IF(! bSprite);
			bSprite->setPosition(ccp(size.width/2, size.height/2));
			y=size.height/2+20;;
			centerPoint=CCPointMake(size.width/2,size.height/2+20);
			sprites[0]=CCSprite::create("/help/cn/howtoplay01.jpg");
			sprites[1]=CCSprite::create("/help/cn/howtoplay02.jpg");
			sprites[2]=CCSprite::create("/help/cn/howtoplay03.jpg");
			sprites[3]=CCSprite::create("/help/cn/howtoplay04.jpg");
			sprites[4]=CCSprite::create("/help/cn/howtoplay05.jpg");
			sprites[5]=CCSprite::create("/help/cn/howtoplay06.jpg");
			sprites[6]=CCSprite::create("/help/cn/howtoplay07.jpg");
			sprites[7]=CCSprite::create("/help/cn/howtoplay08.jpg");
			sprites[8]=CCSprite::create("/help/cn/howtoplay09.jpg");
			spriteWidth=sprites[0]->getContentSize().width;
			//拼接图片

			for(int i=0;i<9;i++){
				sprites[i]->setPosition(ccp(size.width/2+spriteWidth*i,y));
				this->addChild(sprites[i],0);

			}  


			h1Sprite=sprites[0];

		    h2Sprite=sprites[1];
			


			
			//add back item
			CCMenu *menu=CCMenu::create();

			menu->setPosition(CCPointZero);
			CCMenuItemImage *backImage=CCMenuItemImage::create("/help/cn/help_back1.png","/help/cn/help_back2.png",this,menu_selector(HelpScene::backMenuCallback));
			backImage->setPosition(ccp(size.width/2,90));
			
			menu->addChild(backImage,0);
			
			this->addChild(bSprite,1);
			this->addChild(menu,2);
			currentSprite=0;

			bRet=true;
		}while(0);

		return bRet;

	}

void HelpScene::backMenuCallback(CCObject *pSender){

		CCDirector::sharedDirector()->replaceScene(StartMenu::scene());
	}

	
void HelpScene::ccTouchesBegan(CCSet *touches, CCEvent *pEvent){

	CCSetIterator iterator= touches->begin();
	CCTouch *touch =(CCTouch*)(*iterator);
	CCPoint tempPoint  =touch->getLocationInView();
	offSetAnchor=tempPoint.x-size.width/2;
	beginX=tempPoint.x;
	


}

void HelpScene::ccTouchesMoved(CCSet *touches,CCEvent *pEvent){
	CCSetIterator iterator= touches->begin();
	CCTouch *touch =(CCTouch*)(*iterator);
   CCPoint tempPoint  =touch->getLocationInView();

	
	 float t=tempPoint.x-beginX;
	 for(int j=0;j<maxLen;j++){
		 //第一行
		 if(currentSprite==0){
			 if(t>20){
				break;
			}
			//page++
			for(int i=0;i<maxLen;i++){
				//+spriteWidth*i
				sprites[i]->runAction( CCPlace::actionWithPosition(CCPointMake(tempPoint.x-offSetAnchor-spriteWidth*(currentSprite-i),y)));

			}  

		 }else 
		//不是最后一行
		 if(currentSprite<maxLen-1){
			 
			 for(int i=0;i<9;i++){
				
				sprites[i]->runAction( CCPlace::actionWithPosition(CCPointMake(tempPoint.x-offSetAnchor-spriteWidth*(currentSprite-i),y)));
				
			 }
		

		 }//最后一行
		 else if(currentSprite>=maxLen-1){
			if(t<-20){
				break;
			}

			for(int i=0;i<maxLen;i++){
				//+spriteWidth*i
				sprites[i]->runAction( CCPlace::actionWithPosition(CCPointMake(tempPoint.x-offSetAnchor-spriteWidth*(currentSprite-i),y)));

			}  
		 }
	 }
}



void HelpScene::ccTouchesEnded(CCSet *touches,CCEvent *pEvent){

		CCSetIterator iterator= touches->begin();
		CCTouch *touch =(CCTouch*)(*iterator);
		CCPoint tempPoint  =touch->getLocationInView();

		float offset= tempPoint.x-beginX;
	

		//left
		if(offset>0){
			
	
			if(offset>100&¤tSprite>0){


				for(int i=0;i<maxLen;i++){
					sprites[i]->runAction(CCMoveTo::actionWithDuration(0.5,CCPointMake(size.width/2+spriteWidth*(i-currentSprite+1),getCenterPoint().y)));
				}
				
				currentSprite-=1;

			}else{

				for(int i=0;i<maxLen;i++){
					
				 //sprites[i]->runAction( CCPlace::actionWithPosition(CCPointMake(tempPoint.x-offSetAnchor+spriteWidth*i,y)));
			      sprites[i]->runAction(CCMoveTo::actionWithDuration(0.1,CCPointMake(size.width/2+spriteWidth*(i-currentSprite),getCenterPoint().y)));
				}

			}
			
		}
			
			
		//right
		if(offset<0){
			if(offset<-100&¤tSprite<maxLen-1){

				for(int i=0;i<maxLen;i++){
					
						sprites[i]->runAction(CCMoveTo::actionWithDuration(0.3,CCPointMake(size.width/2-spriteWidth*(currentSprite+1-i),getCenterPoint().y)));
				}
			
			currentSprite+=1;
			
			}else{

				for(int i=0;i<maxLen;i++){
					
					sprites[i]->runAction(CCMoveTo::actionWithDuration(0.1,CCPointMake(size.width/2-spriteWidth*(currentSprite-i),getCenterPoint().y)));
				}
		
	
				}

	}

	
}

void HelpScene::registerWithTouchDispatcher(void){
	
	CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,1);


}

CCPoint HelpScene::getCenterPoint(){
	return centerPoint;
}

 

抱歉!评论已关闭.