首页 > 代码库 > coco2d学习day01 精灵分析

coco2d学习day01 精灵分析

day01笔记
	using namespace cocos2d; ==	USING_NS_CC; 一般用后面的
	
	#ifndef __MYLAYER_H__
	#define __MYLAYER_H__
	---------------一般加入头文件加入宏
	 : public CCLayer 一般加入一个类继承CCLayer
	 	
	 	
	CCLayer::init();
	CCLabelTTF *plabel = CCLabelTTF::create("sunda","Arial",36);//定义一个lable
	addChild(plabel,1);//像scene里面加入一个lable
	CCSize size =CCDirector::sharedDirector()->getWinSize();//获取当前坐标
	plabel->setPosition(ccp(size.width / 2,size.height / 2));//设置lable的在舞台的位置
	//加入一个图片image CCMenuItemImage::create("CloseNormal.png","CloseSelected.png",this,menu_selector(mylist::menuCloseCallback));
	//第一个參数是显示的图片;
	//第二个參数是点中的图片;
	//第三个參数是点击的时候触发第四个參数;
	CCMenuItemImage *inage = CCMenuItemImage::create("CloseNormal.png","CloseSelected.png",this,menu_selector(mylist::menuCloseCallback));
	CCMenu* pMenu = CCMenu::create(inage, NULL);
	pMenu->setPosition(460,20);//图片的坐标
	addChild(pMenu, 1);//显示

	//加入一个背景
	CCSprite* pSprite = CCSprite::create("HelloWorld.png");//加入一个图片
	pSprite->setPosition(ccp(size.width/2 ,size.height/2));//设置图片的位置
	addChild(pSprite,0);//显示的呈
	return true;
	
	
	setTouchEnabled(true);
 	支持触摸 假设不写不赞成触摸
 	setTouchMode(kCCTouchesAllAtOnce);
 	多点触摸:比方双手按在手机屏幕什么
 	setTouchMode(kCCTouchesOneByOne);
  单点触摸:比方单手按在手机屏幕什么
  
	bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);//当你手指刚刚按下是时候
	void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);//当你手指移动按下是时候
	void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);//当你手指离开按下是时候
	void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);//当你电话来的时候	
 	
 	精灵创建
 	CCSprite* sprite = CCSprite::create("1/furnace/jt.png");
 		用图片直接创建
	CCSprite* sprite = CCSprite::create("1/furnace/jt.png",CCRectMake(0,0,20,20));
		//还是用同一张图片可是就用当中的一部分CCRectMake(x的起点,y的起点,x的终点,y的终点)
	addChild(sprite); 
	CCSize size = CCDirector::sharedDirector()->getWinSize();//获取舞台的大小
	sprite->setPosition(ccp(size.width/2,size.height/2));//把精灵发到的位置
	
	//纹理属性
	CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("1/furnace/jt.png");
		//创建一个纹理 ,放到纹理缓存里面,并返回缓存对象
	CCSprite* sprite = CCSprite::createWithTexture(texture);
		//相当于把图片发到内存里面,能够使用多次
	CCSprite* sprite = CCSprite::createWithTexture(texture,CCRectMake(0,0,20,20));
 		//还是用同一张图片可是就用当中的一部分CCRectMake(x的起点,y的起点,x的终点,y的终点)
 	
 	CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(texture,CCRectMake(0,0,100,100));
 		//针就是纹理的一部分
 		
 	CCSprite* sprite = CCSprite::create("Images/blocks.png");
 		//创建精灵 图片的地址必须Images/blocks.png
	addChild(sprite);
	sprite->setPosition(ccp(100,100));//基点在右下脚,到图片的中心店
	
	//描点属性
	sprite->setAnchorPoint(ccp(0,0));
	//1、精灵的描点默认是(0.5,0.5) 		不是绝对坐标值,而是百分百
	//0,0 是右下脚
	//1,1 是左下脚

	//缩放属性
	sprite->setScale(1.5f);
	//就是把图片 	缩放	
 		
 	sprite->setScaleX(0.5f);
 	//X轴 缩放
 	sprite->setScaleY(0.5f);
 	//Y轴 缩放
 	
 	//旋转属性
 	sprite->setRotation(90.f);	
 	整数是顺时钟旋转
 	负数是逆时针旋转
 	sprite->setRotationX(90.f);
 	Y轴 旋转90.度是没有了
 	sprite->setRotationY(90.f);
 	Y轴 旋转90.度是没有了
 	
 	//扭曲属性
	sprite->setSkewX(60.0f);
	X轴 扭曲60度 可是扭曲到90度就没有
	sprite->setSkewY(60.0f);
	Y轴 扭曲60度 可是扭曲到90度就没有
 	
 	旋转和扭曲的差别
 	旋转到180度 和扭曲到180度
 	旋转会变化,可是扭曲不会
 	
 	//翻转
	sprite->setFlipX(true);
	是x轴 翻转
	sprite->setFlipY(true);
	是Y轴 翻转
 		
 	//透明
	sprite->setOpacity(1);
	区间在0到255之间
	0是全透明,255是不透明
	
	//颜色
	sprite->setColor(ccc3(255,0,0));
	//ccc3(255,0,0),里面的參数是RGB 红、黄、绿
	
	//可见属性
	sprite->setVisible(false); 
	//false 为不可见属性
	//ture 可见属性
	//针属性
	sprite->setDisplayFrame(...);

	//user data 属性 拓展cocos系统用
	char * buf= "helloword";
	sprite->setUserData(buf);
	char *p=(char *)sprite->getUserData();
	CCLOG("user data is %s",p);
	
	// 设置关联的对象 
	sprite->setUserObject(sprite);