日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

编写MyLayer,2 锚点,3 精灵的创建,4 zorder

發(fā)布時(shí)間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写MyLayer,2 锚点,3 精灵的创建,4 zorder 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


1 編寫MyLayer

頭文件:MyLayer.h

#include "cocos2d.h"

USING_NS_CC;?? //代表的是: using namespace cocos2d?? (通過(guò)F12進(jìn)行查看)

?

//繼承CCLayer

class MyLayer :public CCLayer

{

public:

??? //沒(méi)有構(gòu)造函數(shù)和析構(gòu)函數(shù)

??? CREATE_FUNC(MyLayer);

??? /*static MyLayer *create();*/

?

??? static CCScene * scene();

??? bool init();

};

MyLayer.cpp

#include "MyLayer.h"

?

//MyLayer *MyLayer::create(){

//? MyLayer * pRet = new MyLayer();

//? if (pRet && pRet->init())

//? {

//????? pRet->autorelease();

//? }

//? else

//? {

//????? delete pRet;

//????? pRet = NULL;

//? }

//? return pRet;

//}

?

bool MyLayer::init()

{

??? if (!CCLayer::init())

??? {

??????? return false;

??? }

?

??? CCSize winSize = CCDirector::sharedDirector()->getWinSize();

???

??? //創(chuàng)建一個(gè)精靈

??? CCSprite * spr = CCSprite::create("anchor3.png");

??? spr->setPosition(ccp(winSize.width/2,winSize.height /2));

??? //添加一個(gè)精靈

??? addChild(spr);

?

??? return true;

}

?

CCScene *MyLayer::scene()

{

??? CCScene * scene = CCScene::create();

??? MyLayer * layer = MyLayer::create();

??? scene->addChild(layer);

??? return scene;

}

要想讓寫的Layer能夠運(yùn)行,需要在AppDelegate.app中添加如下代碼

1、 添加頭文件:#include "MyLayer.h"

2、 bool AppDelegate::applicationDidFinishLaunching() 修改如下內(nèi)容:

?

bool AppDelegate::applicationDidFinishLaunching() {

??? // initialize director

??? CCDirector* pDirector = CCDirector::sharedDirector();

??? CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();

?

??? pDirector->setOpenGLView(pEGLView);

???

??? // turn on display FPS

??? pDirector->setDisplayStats(true);

?

??? // set FPS. the default value is 1.0/60 if you don't call this

??? pDirector->setAnimationInterval(1.0 / 60);

?

??? // create a scene. it's an autorelease object

??? //CCScene *pScene = HelloWorld::scene();

??? CCScene * pScene = MyLayer::scene();??????

?

??? // run

??? pDirector->runWithScene(pScene);

?

??? return true;

}

運(yùn)行結(jié)果:

2 錨點(diǎn)

LayerAnchorPoint.h

#ifndef __T01LayerAnchorPoint_H__

#define __T01LayerAnchorPoint_H__

?

#include "cocos2d.h"

USING_NS_CC;

?

class LayerAnchorPoint:public CCLayer

{

public:

??? static LayerAnchorPoint * create();

??? bool init();

?

??? static CCScene * scene();

?

??? void draw();

?

??? void mySchedule(float dt);

??? CCSprite *spr;

};

?

#endif

LayerAnchorPoint.cpp

#include "LayerAnchorPoint.h"

?

CCScene * LayerAnchorPoint::scene()

{

??? //創(chuàng)建一個(gè)場(chǎng)景

??? CCScene * scene = CCScene::create();

??? LayerAnchorPoint * layer = LayerAnchorPoint::create();

??? scene->addChild(layer);

??? return scene;

}

?

LayerAnchorPoint * LayerAnchorPoint::create() {

??? LayerAnchorPoint *pRet = new LayerAnchorPoint();

??? if (pRet && pRet->init())

??? {

??????? pRet->autorelease();

??? }

??? else

??? {

??????? delete pRet;

??????? pRet = NULL;

??? }

??? return pRet;

}

?

bool LayerAnchorPoint::init()

{

??? CCLayer::init();

???

??? CCSize winSize = CCDirector::sharedDirector()->getWinSize();

??? spr = CCSprite::create("anchor1.png");

??? //設(shè)置錨點(diǎn)

??? //spr->setAnchorPoint(ccp(0.656,0.5));

??? spr->setScale(5.0f);

??? spr->setPosition(ccp(winSize.width/2,winSize.height/2));

??? addChild(spr);

?

??? //設(shè)置一個(gè)定時(shí)器,頻率是2

??? schedule(schedule_selector(LayerAnchorPoint::mySchedule), 2);

??? return true;

}

?

//通過(guò)下面的方法實(shí)現(xiàn)畫線

void LayerAnchorPoint::draw()

{

??? CCSize winSize = CCDirector::sharedDirector()->getWinSize();

??? //RGB顏色,其中最后一個(gè)參數(shù)是透明率

??? ccDrawColor4B(255,0,0,255);

?

??? ccDrawLine(ccp(0, winSize.height / 2), ccp(winSize.width, winSize.height / 2));

??? ccDrawLine(ccp(winSize.width / 2, 0),ccp(winSize.width/2,winSize.height));

}

?

//通過(guò)下面的方式設(shè)置旋轉(zhuǎn)

void LayerAnchorPoint::mySchedule(float dt) {

??? static float ro = 0;

??? ro += 30;

??? spr->setRotation(ro);

}

修改:AppDelegate.cpp中的代碼

頭文件:

#include "LayerAnchorPoint.h"

?

bool AppDelegate::applicationDidFinishLaunching() {

??? // initialize director

??? CCDirector* pDirector = CCDirector::sharedDirector();

??? CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();

?

??? pDirector->setOpenGLView(pEGLView);

???

??? // turn on display FPS

??? pDirector->setDisplayStats(true);

?

??? // set FPS. the default value is 1.0/60 if you don't call this

??? pDirector->setAnimationInterval(1.0 / 60);

?

??? // create a scene. it's an autorelease object

??? //CCScene *pScene = HelloWorld::scene();

??? //CCScene * pScene = MyLayer::scene();

??? CCScene * pScene = LayerAnchorPoint::scene();

?

??? // run

??? pDirector->runWithScene(pScene);

?

??? return true;

}

運(yùn)行結(jié)果:

3 精靈的創(chuàng)建

1、編寫:LayerSprite.h

#include "cocos2d.h"

?

USING_NS_CC;

class LayerSprite:public CCLayer

{

public:

??? static CCScene * scene();

??? CREATE_FUNC(LayerSprite);

??? bool init();

?

};

編寫:表示屏幕大小的頭文件AppMacros.h

#ifndef __APPMACROS_H__

#define __APPMACROS_H__

?

#include "cocos2d.h"

?

//通過(guò)預(yù)定義獲得屏幕大小

#define? winSize? CCDirector::sharedDirector()->getWinSize()

?

#endif /* __APPMACROS_H__ */

編寫:LayerSprite.cpp

#include "LayerSprite.h"

#include "AppMacros.h"

?

?

CCScene *LayerSprite::scene()

{

??? CCScene * scene = CCScene::create();

??? LayerSprite * layer = LayerSprite::create();

??? scene->addChild(layer);

??? return scene;

}

bool T02LayerSprite::init()

{

??? CCLayer::init();

?

??? CCSprite * bg = CCSprite::create("sprite/background.jpg",CCRectMake(0,0,480,320));

??? bg->setAnchorPoint(ccp(0,0));

??? bg->setPosition(CCPointZero);

??? addChild(bg);

?

??? CCImage * image = new CCImage();

??? image->initWithImageFile("sprite/plant.png");

?

??? CCTexture2D * texture = new CCTexture2D();

??? texture->autorelease();

??? texture->initWithImage(image);

??? CCSprite * plant = CCSprite::createWithTexture(texture); //紋理

??? plant->setPosition(ccp(100,winSize.height/2));

??? addChild(plant);

?

??? CCTexture2D * texture2 = CCTextureCache::sharedTextureCache()->addImage("sprite/bullet.png");

??? CCSprite * bullet = CCSprite::createWithTexture(texture2);

??? bullet->setPosition(ccp(200, winSize.height / 2+10));

??? addChild(bullet);

?

??? CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sprite/zombie.plist");

??? //CCSpriteFrame *sf = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("z_1_attack_01.png");

??? //CCSprite *zombie = CCSprite::createWithSpriteFrame(sf);

??? CCSprite *zombie = CCSprite::createWithSpriteFrameName("z_1_attack_01.png");

??? zombie->setPosition(ccp(400, winSize.height / 2-50));

??? addChild(zombie);

?

??? CCJumpBy * by = CCJumpBy::create(2, ccp(0,0),40,3);

??? zombie->runAction(CCRepeatForever::create(by));

?

??? CCSpriteFrame * frame = CCSpriteFrame::create("sprite/p_1_01.png", CCRectMake(0, 0, 80, 80));

??? CCSprite * sun = CCSprite::createWithSpriteFrame(frame);

??? sun->setPosition(ccp(400, winSize.height / 2 + 50));

??? addChild(sun);

?

??? return true;

}

同上,將LayerSprite.h加到AppDelegate.cpp中,并添加上:

CCScene * pScene = LayerSprite::scene();

運(yùn)行結(jié)果:

4 zorder

LayerZorder.h

#include "cocos2d.h"

USING_NS_CC;

?

class LayerZorder:public CCLayer

{

public:

??? static CCScene * scene();

??? CREATE_FUNC(LayerZorder);

??? bool init();

};

LayerZorder.cpp

#include "LayerZorder.h"

#include "AppMacros.h"

?

CCScene *LayerZorder::scene()

{

??? CCScene * scene = CCScene::create();

??? LayerZorder * layer = LayerZorder::create();

??? scene->addChild(layer);

??? return scene;

}

?

bool LayerZorder::init()

{

??? CCLayer::init();

?

??? CCSprite * man = CCSprite::create("zorder/car42.png");

??? //將圖片縮放

??? man->setScale(0.3f);

??? CCSprite * woman = CCSprite::create("zorder/car43.png");

??? woman->setScale(0.3f);

??? CCSprite * smallThree = CCSprite::create("zorder/car51.png");

??? smallThree->setScale(0.3f);

?

??? man->setPosition(ccp(winSize.width / 2 + 40, winSize.height / 2 - 30));

??? smallThree->setPosition(ccp(winSize.width / 2, winSize.height / 2 + 30));

??? woman->setPosition(ccp(winSize.width / 2 - 40, winSize.height / 2 + 30));

?

??? addChild(man);

??? addChild(smallThree);

??? addChild(woman);

?

??? //通過(guò)setZOrder來(lái)設(shè)置圖片顯示順序

??? man->setZOrder(100);

??? smallThree->setZOrder(50);

??? woman->setZOrder(0);

??? return true;

?

??? /*CCLog("%d", man->getZOrder());

??? CCLog("%d", smallThree->getZOrder());

??? CCLog("%d", woman->getZOrder());*/

??? return true;

}

修改AppDelegate.cpp

1.? zorder的頭文件進(jìn)入:#include "LayerZorder.h"

2.? CCScene * pScene = LayerZorder::scene();

運(yùn)行結(jié)果:

?

總結(jié)

以上是生活随笔為你收集整理的编写MyLayer,2 锚点,3 精灵的创建,4 zorder的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。