기금넷 공식사이트 - 금 선물 - Cocos2dx 트레일러 효과는 입자로 만든 건가요?
Cocos2dx 트레일러 효과는 입자로 만든 건가요?
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));
}