기금넷 공식사이트 - 금 선물 - Cocos2dx 트레일러 효과는 입자로 만든 건가요?

Cocos2dx 트레일러 효과는 입자로 만든 건가요?

먼저 간단한 HelloWorld 프로그램을 구축하고 두 파일을 추가합니다.

Particle.h

#ifndef? _Particle_

# 정의? _Particle_

# 포함? Cocos2d.h'

ClassParticleBoma? :? 공공? Cocos2d::CCParticleSystemQuad

{

공용:

Particleboma ();

가상? ~ particleboma ();

부울? Init ();

//cocos 에 정의된 가상 함수

가상? 부울? InitWithTotalParticles (부호 없음? Int? Number of particles);

정전기? Particleboma * create ();

정전기? ParticleBoma? * 노드 ();

보호 대상:

개인:

}

#endif

입자. CPP

# 포함? Particle.h'

_ NS _ CC 사용

ParticleBoma::ParticleBoma ()

{

}

ParticleBoma::~ParticleBoma ()

{

}

부울? ParticleBoma::init ()

{

반환? Initwithtotalparticles (1500);

}

//초기화를 구현하는 몇 가지 방법

부울? Particleboma:: initwithtotalparticles (? 서명되지 않았습니까? Int? NumberofParticles? ) 을 참조하십시오

{

만약 (? Ccparticlesystemquad:: initwithtotalparticles (number of particles)? ) 을 참조하십시오

{

//? 기간? 이 입자 효과의 시간을 설정합니다. KCCParticleDurationInfinity 로 설정된 경우 입자 효과는 영원하며 타이밍 단위는 초입니다.

M_fDuration? = 0.3f

//? 중력? 방법

M_nEmitterMode? =? KCCParticleModeGravity

//? 중력? 모드:? 중력

ModeA. 중력? =? Ccp (0,0);

//? 중력? 모드:? 입자의 방사 속도를 정의합니다.

모델. 속도? =? 80;

ModeA.speedVar? =? 0;

//? 중력? 모드:? 레이디얼 가속도를 설정합니다

ModeA.radialAccel? =? 0;

ModeA.radialAccelVar? =? 0;

//? 중력? 모드:? 접선 가속을 설정합니다

ModeA.tangentialAccel? =? 0;

ModeA.tangentialAccelVar? =? 0;

//? 뿔

네모난 거야? =? 180;

M_fAngleVar? =? 360;

//? 발사기? 위치

CCSize? WinSize? =? Ccdirector:: shareddirector ()-> Getwinsize ();

이-> Setposition (CCP (winsize.width/2, winsize.height/2));

M_tPosVar? =? CCPointZero

//? 인생? 의? 입자? 라이프 사이클의 길이

M_fLife? =? 2;

M_fLifeVar? =? 1;

//? 크기,? 네? 다음 두 pixel 은 입자가 나타나기 시작할 때의 크기가 20.0f 에서 30.0f 사이에 무작위로 생성된다는 것을 의미합니다.

M_fStartSize? =? 20.0f

M_fStartSizeVar? =? 10.0f;

M_fEndSize? =? Kccparticlestartsizeequaltoendsize;

//? 배포? 피터? 둘째

M_fEmissionRate? =? M _ uTotalParticles/m _ fLife;;

//? 색깔? 의? 입자 입자의 초기 색상과 종료 시 색상 진화 과정을 설정합니다.

M_tStartColor.r? =? 0.00f

M_tStartColor.g? =? 1.00f;

M_tStartColor.b? =? 0.00f

M_tStartColor.a? =? 1.0f;

M_tStartColorVar.r? =? 1.0f;

M_tStartColorVar.g? =? 1.0f;

M_tStartColorVar.b? =? 0.0f

M_tStartColorVar.a? =? 1.0f;

M_tEndColor.r? =? 0.0f

M_tEndColor.g? =? 0.0f

M_tEndColor.b? =? 0.0f

M_tEndColor.a? =? 0.01f;

M_tEndColorVar.r? =? 0.0f

M_tEndColorVar.g? =? 0.0f

M_tEndColorVar.b? =? 0.0f

M_tEndColorVar.a? =? 0.0f

//? 첨가제

이-> Setblendeditive (true);

반환? 진실;

}

반환? 가짜;

}

ParticleBoma? *ParticleBoma::create ()

{

ParticleBoma? *? ParticleBoma? =? 새 것? Particleboma ();

만약? (particle boma-& gt;; Init ())

{

Particle boma-& gt;; Autorelease ();

반환? ParticleBoma

}

Cc _ safe _ delete (particle boma);

반환? NULL

}

ParticleBoma? *? ParticleBoma::node ()

{

반환? Create ();

}

그런 다음 HelloWorldScene.cpp 파일에서 이 입자 효과를 사용할 수 있습니다.

무효화? HelloWorld::onEnter ()

{

Cclayer:: onenter ();

재방송 (비어 있음);

}

//폐지의 주요 방법

무효화? 헬로 월드:: 리플리 (ccobject *? PSender) 를 참조하십시오

{

M_emitter? =? Particleboma:: create ();

M _ emitter->; Retain ();

이-> AddChild(m_emitter,10);

M _ emitter->; Settexture (cctexturecache:: sharedtexturecache ()-> Addimage ("16.png");

//이 입자 효과는 부분적으로 설정할 수 있습니다. CPP 이상 또는 이하. 아래에서 set 메서드를 사용한 경우 값이 partial 로 설정됩니다. CPP 가 덮어쓰여집니다.

M _ emitter->; Setlifevar (0);

//입자의 수명 주기 길이를 초 단위로 설정합니다.

M _ emitter->; Setlife (1.0f);

M _ emitter->; Setspeed (100);

M _ emitter->; Set speed var (40);

//입자 방사율? 초당 1000

M _ emitter->; Setemissionrate (1000);

CCSize? 사이즈? =? Ccdirector:: shareddirector ()-> Getwinsize ();

M _ emitter->; SetPosition(ccp (크기. 폭 /2, 크기. 높이/2));

}