Cocos2d-x初入学堂-->CCSprite基本处理(2)
一个游戏,我们的游戏背景、UI背景....等等都会需要用到精灵,自然我们游戏中的role、npc、门动画等是必定会用到精灵的...
估计看过我前面的环境搭建和图形绘制,应该很清楚一个新工程的创建了,如果还在创建新工程上出现问题的问题,请参看前面的文章...
照样上传demo代码...
SpriteTestScene.h
[cpp]
#pragma once
#include "cocos2d.h"
#include "SpriteTestLayer.h"
using namespace cocos2d;
class SpriteTestScene :public CCScene
{
public:
SpriteTestScene(void);
~SpriteTestScene(void);
static CCScene* scene();
};
SpriteTestScene.cpp
[cpp]
#include "SpriteTestScene.h"
SpriteTestScene::SpriteTestScene(void)
{
}
SpriteTestScene::~SpriteTestScene(void)
{
}
CCScene* SpriteTestScene::scene()
{
CCScene* scene=CCScene::create();
SpriteTestLayer* layer=SpriteTestLayer::create();
scene->addChild(layer);
return scene;
}
SpriteTestLayer.h
[cpp]
#pragma once
#include "cocos2d.h"
using namespace cocos2d;
class SpriteTestLayer :public CCLayer
{
public:
SpriteTestLayer(void);
~SpriteTestLayer(void);
// 这个方法从父类虚拟函数继承过来,在创建HelloWorld层的时候会调用此方法
virtual bool init();
LAYER_CREATE_FUNC(SpriteTestLayer);
private:
typedef CCSprite* CCSPRITE;
CCSPRITE m_tamara,m_grossini,m_kathia;
};
SpriteTestLayer.cpp
[cpp]
#include "SpriteTestLayer.h"
SpriteTestLayer::SpriteTestLayer(void)
{
}
bool SpriteTestLayer::init()
{
CCSize s=CCDirector::sharedDirector()->getWinSize();
/*注意:此处的图片加入,请不要直接copy到工程这个工程的resource下面, 运行的时候是获取不到图片的,
工程目录下的资源和工程路径目录下的资源不是同一资源,然后我在工程路径目录下copy新资源到resource下
面,然后刷新工程,也刷新不出新添加的图片出来,暂时不知道这是为什么?如果有知道的朋友请给我留言...谢谢!*/
CCSprite* sprite=CCSprite::create("start.png");
sprite->setAnchorPoint(ccp(0,1));//设置sprite的描点,(0,1)也就是图片的左上角
sprite->setPosition(ccp(0,s.height));//设置sprite位置
this->addChild(sprite);
//sprite的一些基本的操作:缩放、旋转、混色
m_tamara=CCSprite::create("grossini.png");
m_tamara->setScaleX( 2.5f);
m_tamara->setScaleY( -1.0f);
m_tamara->setPosition(ccp(100,70) );
m_tamara->setOpacity( 255);//RGBA值RGB+透明度值
this->addChild(m_tamara);
m_grossini=CCSprite::create("grossinis_sister1.png");
m_grossini->setRotation( 120);
m_grossini->setPosition( ccp(s.width/2, s.height/2));
m_grossini->setColor( ccc3( 255,0,0));
this->addChild(m_grossini);
m_kathia=CCSprite::create("grossinis_sister2.png");
m_kathia->setPosition( ccp(s.width-100, s.height/2));
m_kathia->setColor( ccBLUE);
this->addChild(m_kathia);
return true;
}
SpriteTestLayer::~SpriteTestLayer(void)
{
}
然后同样的最后:修改AppDelegate.cpp中的applicationDidFinishLaunching()方法中
//CCScene *pScene = HelloWorld::scene();
CCScene*pScene=SpriteTestScene::scene();
pDirector->runWithScene(pScene);
好了,运行效果如下:
补充:移动开发 , 其他 ,