Example #1
0
File: ui_lua.cpp Project: lrh/SFGE
int Window_( lua_State* L )
{
  UIWindow* window = new UIWindow;

  SetName(L, window);
  SetTopLeftWidthHeight(L, window);
  SetTooltip(L, window);
  SetAnim(L, window, UIPanel::NORMAL_ANIM_, "normalAnim");
  SetAnim(L, window, UIPanel::DISABLED_ANIM_, "disabledAnim");
  SetTextUserData(L, window);

  AddWidget(L, window);

  // 配置关闭按钮

  if (util::HasField(L, "closeBtn"))
  {
    lua_pushstring(L, "closeBtn");
    lua_gettable(L, -2);
    if (lua_istable(L, -1))
      SetButton(L, window->GetCloseButton());
    lua_pop(L, 1);
  }

  SetAlpha(L, window);

  lua_pushlightuserdata(L, window);

  return 1;
}
Example #2
0
int		gere_key(t_game *game, t_sprite *SP, Uint8 *keys)
{
  int		j;
  int		control[2] = {SDLK_LEFT, SDLK_RIGHT};
  Sint16	vec[2][2] = {{-1,0},{1,0}};
  Sint16	speed = 2;
  int		speedanim = 100;
  int		move;

  j = -1;
  move = 0;
  while (++j < 2)
    {
      if (keys[control[j]])
	{
	  move = 1;
	  if (SP->status == STAT_STOP || SP->sens != j)
	    SetAnim(&SP->anim,0 + SP->sprite->nbx * j, 3 ,speedanim);
	  SP->sens = j;
	  SP->pos.x += speed*vec[j][0];
	  SP->pos.y += speed*vec[j][1];
	  SP->status = STAT_WALK;
	}
    }
  if (SP->status == STAT_WALK && !move)
    {
      SetAnim(&SP->anim, 4, 1, 1);
      SP->status = STAT_STOP;
    }
  case_overflow(game, &game->darien.darien);
  return (0);
}
Example #3
0
void Animated::SetAnim(Animated::Anim anim)
{
  if (!m_pModel)
  {
//std::cout << "Warning: Animated: anim set but MD2 model not set yet\n";
    return;
  }

  // These names match order of Anim enum. The strings are the same in the MD2 model.
  // We allow MD2s to have anims in any order, so we look up per-model.
  static const int NUM_ANIMS = 3;
  static const char* ANIM_NAMES[NUM_ANIMS] = 
  {
    "stand",
    "walk",
    "walk" // because no run, TODO
  };
  if (anim >= NUM_ANIMS)
  {
std::cout << "WARNING Bad anim: " << (int)anim << " for Animated!!\n";
    return;
  }
  if (m_pModel->IsValidName(ANIM_NAMES[anim]))
  {
    int animCode = m_pModel->GetAnimationFromName(ANIM_NAMES[anim]);
    SetAnim(animCode);
  }
  else
  {
std::cout << "WARNING Invalid anim name: " << ANIM_NAMES[anim] << " for Animated!\n";
  }
}
Example #4
0
void C_Anim::Setup(long ID,short Type,long AnimID)
{
	SetID(ID);
	SetType(Type);
	SetDefaultFlags();
	SetAnim(AnimID);
}
Example #5
0
bool CGSComboFire::Update(CAnimData& data, float dt, CStateManager& mgr) {
  if (x8_cueAnimId != -1) {
    x0_delay -= dt;
    if (x0_delay <= 0.f) {
      data.EnableLooping(x4_loopState == 1);
      CAnimPlaybackParms aparms(x8_cueAnimId, -1, 1.f, true);
      data.SetAnimation(aparms, false);
      x0_delay = 0.f;
      x8_cueAnimId = -1;
    }
  } else if (!data.IsAnimTimeRemaining(0.001f, "Whole Body")) {
    switch (x4_loopState) {
    case 0:
      SetAnim(data, xc_gunId, 1, mgr, 0.f);
      switch (xc_gunId) {
      case 4:
      case 0:
      case 1:
        x10_24_over = true;
        break;
      default:
        break;
      }
      break;
    case 2:
      x4_loopState = -1;
      return true;
    default:
      break;
    }
  }
  return false;
}
Example #6
0
Pato::Pato(float angulo,float force):GameObject(true,"..//Imagenes//Pato.png",4)
{
	time_lastFrame = 0;
	time_CountPattern = 0;
	time_nextPattern =(float) (rand()%3+4);
	Pato::angulo = angulo;
	Pato::force = force;
	SetAnim(0,2);
	isMorir = false;
}
Example #7
0
File: ui_lua.cpp Project: lrh/SFGE
int Panel(lua_State* L)
{
  UIPanel* panel = new UIPanel;

  SetName(L, panel);
  SetTopLeftWidthHeight(L, panel);
  SetTooltip(L, panel);
  SetAnim(L, panel, UIPanel::NORMAL_ANIM_, "normalAnim");
  SetAnim(L, panel, UIPanel::DISABLED_ANIM_, "disabledAnim");
  SetTextUserData(L, panel);

  AddWidget(L, panel);

  SetAlpha(L, panel);

  lua_pushlightuserdata(L, panel);

  return 1;
}
Example #8
0
CParticle::CParticle(ParticleType type, unsigned x, unsigned y, sf::Image explosion) :
        Animated(true, true, 0.05f)
{
    m_explosion = explosion;
    switch (type)
    {
    case Middle:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(169, 215, 199, 244)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(34, 215, 64, 244)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(171, 69, 201, 99)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(34, 67, 64, 96)));
        break;
    case HorizontalLeft:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(142, 219, 166, 242)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(4, 217, 32, 244)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(139, 69, 169, 96)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(0, 68, 32, 97)));
        break;
    case HorizontalRight:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(234, 219, 258, 240)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(99, 217, 127, 243)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(235, 70, 267, 98)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(99, 67, 129, 96)));
        break;
    case VerticalUp:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(172, 156, 196, 180)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(35, 152, 63, 180)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(171, 5, 200, 34)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(35, 0, 64, 32)));
        break;
    case VerticalDown:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(171, 247, 195, 272)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(35, 247, 62, 276)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(172, 100, 201, 129)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(34, 99, 64, 129)));
        break;
    case Horizontal:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(201, 218, 231, 242)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(66, 216, 97, 243)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(203, 70, 234, 99)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(66, 67, 97, 97)));
        break;
    case Vertical:
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(169, 181, 196, 213)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(34, 182, 63, 213)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(169, 36, 202, 67)));
        m_anim.PushFrame(Frame(&m_explosion, sf::Rect<int>(33, 33, 65, 65)));
        break;
    }
    SetAnim(&m_anim);
    m_type = type;
    SetPosition(x * BLOCK_SIZE, y * BLOCK_SIZE);
    m_x = x;
    m_y = y;
}
Example #9
0
File: ui_lua.cpp Project: lrh/SFGE
int Progressbar(lua_State* L)
{
  UIProgressbar* progressbar = new UIProgressbar;

  SetName(L, progressbar);
  SetTopLeftWidthHeight(L, progressbar);
  SetTooltip(L, progressbar);
  SetAnim(L, progressbar, UIProgressbar::BOTTOM_ANIM_, "bottomAnim");
  SetAnim(L, progressbar, UIProgressbar::MID_ANIM_, "midAnim");
  SetAnim(L, progressbar, UIProgressbar::TOP_ANIM_, "topAnim");
  SetTextUserData(L, progressbar);

  AddWidget(L, progressbar);

  SetAlpha(L, progressbar);

  lua_pushlightuserdata(L, progressbar);

  return 1;
}
Example #10
0
void KaeruKing::_Move()
{

	SetAnim(mStatus);

	// 行動
	switch( mStatus ){
		
		case JUMP:
			MapAtHt();

			if( mAtari[0] == SP->CHIP_AMHIT || mAtari[0] == SP->CHIP_KGHIT || mCurAshiba ){ //下当たってる
				mSpY = 0;
				mSpX = 0;
				mAccX = 0;
				mAccY = 0;
				if( !mCurAshiba )
					mY = mShirabe[0] - sMapAtHanteiY[0][0];
				mStatus = TAIKI;
			}
			else{
				mAccY = SP->GRAVITY;
			}

			if(mAtari[2] == SP->CHIP_HIT || mAtari[2] == SP->CHIP_KGHIT || 
				mAtari[2] == SP->CHIP_GMNGAIRT || mAtari[2] == SP->CHIP_GMNGAILT ){ // 前当たってる
				mMuki = !mMuki;
				mSpX *= -1;
			}
			break;

		case TAIKI:
			WAIT_TIMER(mTaikiTimer, KTAIKI_TIME)
			{
				mStatus = JUMP_START;
				if( mCurAshiba ) {
					mCurAshiba->GetOff(this);
					mCurAshiba = NULL;
				}
			}	
			WAIT_END
			break;


		case JUMP_START:
			WAIT_TIMER(mTaikiTimer, KJUMPSTART_TIME)
			{
				mStatus = JUMP;
				mSpX = (mMuki?1:-1)*KJMPSPX;
				mSpY = -sqrt(2 * SP->GRAVITY * KJMPTAKASA);
				//SE
				if( !IsGamenGai() )
					GAMECONTROL->GetSoundController()->PlaySE("audio\\se\\se_kaeru_junp.wav");
			}	
Example #11
0
File: ui_lua.cpp Project: lrh/SFGE
int Button(lua_State* L)
{
  UIButton* btn = new UIButton;

  SetName(L, btn);
  SetTopLeftWidthHeight(L, btn);
  SetTooltip(L, btn);
  SetAnim(L, btn, UIButton::NORMAL_ANIM_, "normalAnim");
  SetAnim(L, btn, UIButton::HOVERED_ANIM_, "hoveredAnim");
  SetAnim(L, btn, UIButton::PRESSED_ANIM_, "pressedAnim");
  SetAnim(L, btn, UIButton::DISABLED_ANIM_, "disabledAnim");
  SetTextUserData(L, btn);
  SetPressedSoundKey(L, btn);

  AddWidget(L, btn);

  SetAlpha(L, btn);

  lua_pushlightuserdata(L, btn);

  return 1;
}
void LightKobitoBlue::_Move()
{
	LightKobito::_Move();

	SetAnim( mStatus );

	mSpX += mAccX;
	mSpY += mAccY;
	mX += mSpX;
	mY += mSpY;

	Teki::Draw();
}
Example #13
0
CGEnElement* CGEnMain::DrawElement(float x, float y, float z, CGEnAnim *anim, int frame_in_starttime, UI starttime) 
{
	if(!anim) return 0;

	CLightTex *tex = anim->GetFrameTex(0);
	if(!tex) return 0;

	CGEnElement *el = DrawElement(x,y,z,tex);
	if(el){
		SetAnim(el,anim,frame_in_starttime,starttime);
	}
	return el;
}
Example #14
0
CMD2Model::CMD2Model( void )
{
	m_vertices		= 0;
	m_glcmds		= 0;
	m_lightnormals	= 0;

	num_frames		= 0;
	num_xyz			= 0;
	num_glcmds		= 0;

	m_texid			= 0;
	m_scale			= 1.0;

	SetAnim( 0 );
}
Example #15
0
int CGEnMain::SetPicture(CGEnElement *el, CGEnResource *res, int frame_in_starttime, UI starttime)
{
	if(!res||!el) return 0;
	
	eResourceType type = res->GetType();

	if(type==resAnim)
		return SetAnim(el,(CGEnAnim*)res,frame_in_starttime,starttime);
	else
	if(type==resLightTex)
	{
		if(el->mel) el->mel->StopAnim();
		return SetLightTex(el,(CLightTex*)res);
	}

	return 0;
}
Example #16
0
void CSkelMeshViewer::AttachAnimSet()
{
	guard(CSkelMeshViewer::AttachAnimSet);

	FindUE4Animations();

	CSkelMeshInstance *MeshInst = static_cast<CSkelMeshInstance*>(Inst);

	const CAnimSet *PrevAnim = Anim;
	// find next animation set (code is similar to PAGEDOWN handler)
	int looped = 0;
	int ObjIndex = -1;
	bool found = (PrevAnim == NULL);			// whether previous AnimSet was found; NULL -> any
	while (true)
	{
		ObjIndex++;
		if (ObjIndex >= UObject::GObjObjects.Num())
		{
			ObjIndex = 0;
			looped++;
			if (looped > 1) break;				// no other objects
		}
		const UObject *Obj = UObject::GObjObjects[ObjIndex];
		const CAnimSet *NewAnim = GetAnimSet(Obj);
		if (!NewAnim) continue;

		if (NewAnim == PrevAnim)
		{
			if (found) break;					// loop detected
			found = true;
			continue;
		}

		if (found && NewAnim)
		{
			// found desired animation set
			SetAnim(NewAnim);
			AnimIndex = -1;
			appPrintf("Bound %s'%s' to %s'%s'\n", Object->GetClassName(), Object->Name, Obj->GetClassName(), Obj->Name);
			break;
		}
	}

	unguard;
}
Example #17
0
KariudoKen::KariudoKen(int rXPx, int rYPx)
{

	KARIKENSX = GI("KARIKENSX");
	KARIKENSY = GI("KARIKENSY");

	KARIKENSPX = GF("KARIKENSPX");
	KARIKENKGHANI = GF("KARIKENKGHANI");
	KARIKENWTM1 = GF("KARIKENWTM1");
	KARIKENWTM2 = GF("KARIKENWTM2");

	mX = rXPx;
	mY = rYPx - sMapAtHanteiY[0][0] + SP->CHSZY;

	mSizeX = KARIKENSX;
	mSizeY = KARIKENSY;

	mStatus = ARUKI;

	mKgTimer = 0.0f;

	mSeFl = false;

	// 当たり判定	
	AddFrame(FR_KAMAE);
	AddFrame(FR_ZANZOU);
	AddFrame(FR_DOWN);

	AddRect(FR_KAMAE, SP->GRID_BOGYO, 43, 33, 81, 119);
	AddIndexedRect( FR_KAMAE, SP->GRID_BOUND, TBOUND_IDX, 38, 22, 83, 120);
	
	AddRect(FR_ZANZOU, SP->GRID_BOGYO, 43, 33, 81, 119);
	AddCircle(FR_ZANZOU, SP->GRID_KOUGEKI, 38, 43, 35);
	AddCircle(FR_ZANZOU, SP->GRID_KOUGEKI, 33, 69, 35);
	AddIndexedRect( FR_ZANZOU, SP->GRID_BOUND, TBOUND_IDX, 38, 22, 83, 120);

	AddRect(FR_DOWN, SP->GRID_BOGYO, 43, 33, 81, 119);
	AddCircle(FR_DOWN, SP->GRID_BOGYO, 20, 62, 11);
	AddIndexedRect( FR_DOWN, SP->GRID_BOUND, TBOUND_IDX, 38, 22, 83, 120);

	//AddCircle(0, GRID_BOGYO, 60, 60, 30);

	SetAnim(0);
}
Example #18
0
void GBomb::Explode()
{
  if (anim==1) return; // allready exploding

  SetAnim(1);
  
  GAME_MAXOBJS_TYPE fray_slot;
  
  game->IncrementLOID();
  fray_slot = game->FindUnusedSlot();
  game->RebornObject(game->last_oid, fray_slot, ot_fray);
  
  GFray * r1 = (GFray*)game->objs[fray_slot];
  
  r1->owner.Set(owner);
  r1->xpos.Set(xpos);
  r1->ypos.Set(ypos);
  r1->createtime.Set(curtime);
  r1->ExpandFrayX(power);
  r1->SetAnim(0);
  r1->xcenter.Set(xpos);
  r1->ycenter.Set(ypos);
  
  game->IncrementLOID();
  fray_slot = game->FindUnusedSlot();
  game->RebornObject(game->last_oid, fray_slot, ot_fray);
  
  GFray * r2 = (GFray*)game->objs[fray_slot];
  
  r2->owner.Set(owner);
  r2->xpos.Set(xpos);
  r2->ypos.Set(ypos);
  r2->createtime.Set(curtime);
  r2->ExpandFrayY(power);
  r2->SetAnim(1);
  r2->xcenter.Set(xpos);
  r2->ycenter.Set(ypos);
  
  CloneSound(SM_XPLO2, 0, 0);
  
  movementx = 0;
  movementy = 0;
  state = 0;
}
Example #19
0
void Dino::Eat(OnFloorCharacter* pet)
{
  Assert(!IsEating());
  Assert(!IsDead());
  Assert(!pet->IsDead());
  Assert(pet->CanBeEaten());

  SetAnim("eat");

  // Change to eating behaviour
  SetAI(AITurnToFace::NAME);
  m_ai->SetTarget(pet);
  m_ais[AIEatPet::NAME]->SetTarget(pet);

  // Change texture to bloody version.
  BlinkCharacter* bc = dynamic_cast<BlinkCharacter*>(GetSceneNode());
  Assert(bc);
  bc->LoadTextures(m_bloodTex[0], m_bloodTex[1]); 
  // TODO Load the textures up front as this will hit frame rate on first load.

  pet->StartBeingEaten(this);

  // Pause action and zoom camera on Dino??
}
Example #20
0
void Pato::Init_Morir()
{
	SetAnim(2,4);
	currentframe = 2;
	isMorir = false;
}
Example #21
0
CSkelMeshViewer::CSkelMeshViewer(CSkeletalMesh* Mesh0, CApplication* Window)
:	CMeshViewer(Mesh0->OriginalMesh, Window)
,	Mesh(Mesh0)
,	Anim(NULL)
,	AnimIndex(-1)
,	IsFollowingMesh(false)
,	ShowSkel(0)
,	ShowLabels(false)
,	ShowAttach(false)
,	ShowUV(false)
,	bIsUE4Mesh(false)
{
	guard(CSkelMeshViewer::CSkelMeshViewer);

	CSkelMeshInstance *SkelInst = new CSkelMeshInstance();
	Inst = SkelInst;
	SkelInst->SetMesh(Mesh);

	// Automatically attach animation if any
	CAnimSet* AttachAnim = NULL;
	if (GForceAnimSet)
	{
		AttachAnim = GetAnimSet(GForceAnimSet);
		if (!AttachAnim)
		{
			appPrintf("WARNING: specified wrong AnimSet (%s class) object to attach\n", GForceAnimSet->GetClassName());
			GForceAnimSet = NULL;
		}
	}
	else if (Mesh->OriginalMesh->IsA("SkeletalMesh"))	// UE2 class
	{
		const USkeletalMesh *OriginalMesh = static_cast<USkeletalMesh*>(Mesh->OriginalMesh);
		if (OriginalMesh->Animation)
			AttachAnim = OriginalMesh->Animation->ConvertedAnim;
	}
#if UNREAL4
	else if (Mesh->OriginalMesh->IsA("SkeletalMesh4"))
	{
		// UE4 SkeletalMesh has USkeleton reference, which collects all compatible animations in its PostLoad method
		const USkeletalMesh4* OriginalMesh = static_cast<USkeletalMesh4*>(Mesh->OriginalMesh);
		bIsUE4Mesh = true;
		Skeleton = OriginalMesh->Skeleton;
		if (Skeleton)
			AttachAnim = Skeleton->ConvertedAnim;
	}
#endif // UNREAL4
	if (AttachAnim)
		SetAnim(AttachAnim);

	// compute bounds for the current mesh
	CVec3 Mins, Maxs;
	if (Mesh0->Lods.Num())
	{
		const CSkelMeshLod &Lod = Mesh0->Lods[0];
		ComputeBounds(&Lod.Verts[0].Position, Lod.NumVerts, sizeof(CSkelMeshVertex), Mins, Maxs);
		// ... transform bounds
		SkelInst->BaseTransformScaled.UnTransformPoint(Mins, Mins);
		SkelInst->BaseTransformScaled.UnTransformPoint(Maxs, Maxs);
	}
	else
	{
		Mins = Maxs = nullVec3;
	}
	// extend bounds with additional meshes
	for (int i = 0; i < TaggedMeshes.Num(); i++)
	{
		CSkelMeshInstance* Inst = TaggedMeshes[i];
		if (Inst->pMesh != SkelInst->pMesh)
		{
			const CSkeletalMesh *Mesh2 = Inst->pMesh;
			// the same code for Inst
			CVec3 Bounds2[2];
			const CSkelMeshLod &Lod2 = Mesh2->Lods[0];
			ComputeBounds(&Lod2.Verts[0].Position, Lod2.NumVerts, sizeof(CSkelMeshVertex), Bounds2[0], Bounds2[1]);
			Inst->BaseTransformScaled.UnTransformPoint(Bounds2[0], Bounds2[0]);
			Inst->BaseTransformScaled.UnTransformPoint(Bounds2[1], Bounds2[1]);
			ComputeBounds(Bounds2, 2, sizeof(CVec3), Mins, Maxs, true);	// include Bounds2 into Mins/Maxs
		}
		// reset animation for all meshes
		TaggedMeshes[i]->TweenAnim(NULL, 0);
	}
	InitViewerPosition(Mins, Maxs);

#if HIGHLIGHT_CURRENT
	TimeSinceCreate = -2;		// ignore first 2 frames: 1st frame will be called after mesh changing, 2nd frame could load textures etc
#endif

#if SHOW_BOUNDS
	appPrintf("Bounds.min = %g %g %g\n", FVECTOR_ARG(Mesh->BoundingBox.Min));
	appPrintf("Bounds.max = %g %g %g\n", FVECTOR_ARG(Mesh->BoundingBox.Max));
	appPrintf("Origin     = %g %g %g\n", VECTOR_ARG(Mesh->MeshOrigin));
	appPrintf("Sphere     = %g %g %g R=%g\n", FVECTOR_ARG(Mesh->BoundingSphere), Mesh->BoundingSphere.R);
#endif // SHOW_BOUNDS

	unguard;
}
Example #22
0
void KariudoKen::_Move()
{
	SetAnim( mStatus );

	// 自機の位置を取得
	int jx = GAMECONTROL->GetJiki()->GetAtHtPointX();
	int jy = GAMECONTROL->GetJiki()->GetAtHtPointY();

	// ----当たりの処理
	MapAtHt();

	if( mStatus != SHINDA )
		Ataridp();


	switch( mStatus ){
		case ARUKI: {
			// ----自機の位置を確認
			float sax = jx - CenterX();
			float say = jy - CenterY();
			float sa = sqrt(sax*sax + say*say);

			if( sa < KARIKENKGHANI ){
				mStatus = WAIT1;
			}

			break;
		}
		
		case WAIT1:
			mSpX = 0;
			WAIT_TIMER(mKgTimer, KARIKENWTM1);
			mStatus = KOGEKI;
			WAIT_END
			break;

		case KOGEKI:
			if( mAniNoX == 2 &&  !mSeFl ){//SE
				//SE
				if( !IsGamenGai() )
					GAMECONTROL->GetSoundController()->PlaySE("audio\\se\\se_ken_atack.wav");
				mSeFl = true;
			}
			mSpX = 0;
			mMuki = CenterX() < jx;
			if( mDousaEnd ){
				mStatus = WAIT2;
				mSeFl = false;
			}
			break;
	
		case WAIT2:
			mSpX = 0;
			WAIT_TIMER(mKgTimer, KARIKENWTM2);
			mStatus = ARUKI;
			WAIT_END
			break;
	}
	
	Draw();

	mSpX += mAccX;
	mSpY += mAccY;
	mX	 += mSpX + mAshibaSpX;
	mY	 += mSpY;

	// 当たり判定のフレーム
	if( mStatus != SHINDA )
		HtFrame();
}