Example #1
0
void MODEL :: display(){
	/*DrawCapsule3D(	VGet(x+600*sinf(rotateY), y+y0+200.0f-500*sinf(rotateX), z+600*cosf(rotateY)),
					VGet(x-200*sinf(rotateY), y+y0+200.0f+500*sinf(rotateX), z-200*cosf(rotateY)),
					210.0f, 2, GetColor(255,255,255), GetColor(255,255,255), FALSE);*/
	playTime += 200.0f;
	if(playTime >= animTime)
		playTime = 0.0f;
	mS->move();
	mS->display();
	MV1RefreshCollInfo(ModelHandle, 39);
	MATRIX rot = MMult(MMult(MGetRotX(rotateX), MGetRotZ(rotateZ)),MGetRotY(rotateY));
	MATRIX trans = MGetTranslate(VGet(x+x0, y+y0, z+z0));
	MV1SetMatrix(ModelHandle, MMult(rot, trans));
	MV1SetAttachAnimTime(ModelHandle, attachIndex, playTime);
	MV1DrawModel(ModelHandle);
}
Example #2
0
//	ボスのアニメーション全般
void Boss::Move(){
	static float fall = 0;
	if (flag & APPEAR){
		
		timer--;
		
		if (y >= -19){
			flag &= ~APPEAR;
			SetAnimPattern(appear);
			flag |= STANBY;
		}
		else{
			AnimTime -= AnimSpeed;
			y++;
		}
	}
	else if (flag & STANBY){
		timer--;
		if (AnimTime >= TotalTime - 1){
			flag &= ~STANBY;
			flag |= HORIZONTAL;
			SetAnimPattern(stand);
		}
	}
	else if(life >= 1){
		y = y + sin(PI * 2 / 120 * timer);
	}
	else if(life == 0 && !(flag & DEAD)){
		flag |= DEAD;
		SetAnimPattern(dead);
		fall = 0;
	}
	if (flag & DEAD){
		y -= fall;
		fall += 0.8;
	}
	if (!(flag & CROSS) && life <= LIFE / 2){
		AnimSpeed = 1.0f;
		ShotSpeed = 2.0f;
		flag |= CROSS;
	}
	MV1RefreshCollInfo(graph, -1);
	if (flag & ATTACK)
	{
		
	}
}