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); }
// ボスのアニメーション全般 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) { } }