私は今、ステージセレクトのプログラムを組んでおります。
ソースを転記しておきます。
/==============================================
// 列挙型
==============================================/
public enum STAGESELECT_MODE{
STAGE, SHOP, MODE, DIFFICULTY,
}
public enum STAGE{
STAGE1, STAGE2, STAGE3,MAX_STAGE
}
public enum DIFFICULTY{
EASY,NORMAL,HARD
}
public STAGESELECT_MODE stageselect_Mode = STAGESELECT_MODE.STAGE;
public STAGE stage_No = STAGE.STAGE1;
public DIFFICULTY difficulty_No = DIFFICULTY.EASY;
/// <summary>
/// ステージセレクトの主な動き
/// </summary>
public void StageSelect_Main()
{
switch(stageselect_Mode)
{
case STAGESELECT_MODE.STAGE:
StageSelect_Stage();
break;
case STAGESELECT_MODE.DIFFICULTY: break; } } /// <summary> /// ステージセレクトのステージ・おみせ・モード画面の選択 /// </summary> public void StageSelect_Stage() { if (Input.GetKeyDown(KeyCode.UpArrow)) { if (stageselect_Mode == STAGESELECT_MODE.SHOP) { stageselect_Mode = STAGESELECT_MODE.STAGE; stage_No = STAGE.STAGE1; cursor.MoveCursol(cursor_pos_x[0], cursor_pos_y[0]); } else if (stageselect_Mode == STAGESELECT_MODE.MODE) { stageselect_Mode = STAGESELECT_MODE.STAGE; stage_No = STAGE.STAGE3; cursor.MoveCursol(cursor_pos_x[2], cursor_pos_y[2]); } } if (Input.GetKeyDown(KeyCode.DownArrow)) { if (stageselect_Mode == STAGESELECT_MODE.STAGE) { if (stage_No == STAGE.STAGE1 || stage_No == STAGE.STAGE2) { stageselect_Mode = STAGESELECT_MODE.SHOP; cursor.MoveCursol(cursor_pos_x[3], cursor_pos_y[3]); } else if (stage_No == STAGE.STAGE3) { stageselect_Mode = STAGESELECT_MODE.MODE; cursor.MoveCursol(cursor_pos_x[4], cursor_pos_y[4]); } } } if (Input.GetKeyDown(KeyCode.LeftArrow)) { if (stageselect_Mode == STAGESELECT_MODE.STAGE) { if (stage_No == STAGE.STAGE2) { stage_No = STAGE.STAGE1; cursor.MoveCursol(cursor_pos_x[0], cursor_pos_y[0]); } else if (stage_No == STAGE.STAGE3) { stage_No = STAGE.STAGE2; cursor.MoveCursol(cursor_pos_x[1], cursor_pos_y[1]); } } else if(stageselect_Mode == STAGESELECT_MODE.MODE) { stageselect_Mode = STAGESELECT_MODE.SHOP; cursor.MoveCursol(cursor_pos_x[3], cursor_pos_y[3]); } } if (Input.GetKeyDown(KeyCode.RightArrow)) { if (stageselect_Mode == STAGESELECT_MODE.STAGE) { if (stage_No == STAGE.STAGE1) { stage_No = STAGE.STAGE2; cursor.MoveCursol(cursor_pos_x[1], cursor_pos_y[1]); } else if (stage_No == STAGE.STAGE2) { stage_No = STAGE.STAGE3; cursor.MoveCursol(cursor_pos_x[2], cursor_pos_y[2]); } } else if (stageselect_Mode == STAGESELECT_MODE.SHOP) { stageselect_Mode = STAGESELECT_MODE.MODE; cursor.MoveCursol(cursor_pos_x[4], cursor_pos_y[4]); } } //決定キーで難易度選択へ if (Input.GetKeyDown(KeyCode.Keypad5) || Input.GetKeyDown(KeyCode.Alpha5)) { stageselect_Mode = STAGESELECT_MODE.DIFFICULTY; } }
cursor.MoveCursolはカーソルを指定した場所に動かすプログラム。
今回のとは関係はないとみられるので割愛。
このプログラムですと、stageselect_ModeがSTAGESELECT_MODE.STAGEの場合は作動するのですが、stageselect_Modeがstageselect_Mode = STAGESELECT_MODE.MODEやstageselect_Mode == STAGESELECT_MODE.SHOPになると入力しているのにも関わらず、ちゃんと作動しないのです。
このような原因はどのようなことが考えられますか?教えて頂けないでしょうか?
詳しい解説並びにソースを書いていただくと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/05/26 07:26