Exemplo n.º 1
0
        public NovelState(Form form, int width, int height, string filename)
        {
            GML_        = new GameLayerManager();
            form.KeyUp += new KeyEventHandler(this.OnKeyUp);
            Control[] con = form.Controls.Find("drawImage", true);
            con[0].MouseUp += new MouseEventHandler(this.MouseUp);

            scriptMachine_ = new ScriptMachine(filename);
            Debug.Items.Instance.ParamAdd("ScriptMachine", scriptMachine_);
            Debug.Items.Instance.ParamAdd("Key", Utilities.Keybord.Instance);
        }
Exemplo n.º 2
0
 // 実行内容
 public override bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     if (startTime_ == 0)
     {
         startTime_ = System.Environment.TickCount;
     }
     if (IsExecutingTime())
     {
         Utilities.ControlReturn.Instance.Flag = false;
         return(false);
     }
     Logger.Message(ElapsedTime() + "ms待ちました。");
     Utilities.ControlReturn.Instance.Flag = true;
     return(true);
 }
Exemplo n.º 3
0
 public void Execute(GameLayerManager GML)
 {
     // ここでScriptに応じた処理を書く
     if (scriptBody_[currentLabel_].Count > 0)
     {
         // bool flag = scriptBody_[currentLabel_].Peek().Execute(GML,this);
         // if(flag)
         if (scriptBody_[currentLabel_].Peek().Execute(GML, this))
         {
             Utilities.Logger.Message(currentLabel_ + ":" + scriptBody_[currentLabel_].Dequeue().ToString());
         }
     }
     else
     {
         // Console.WriteLine("Finish");
     }
 }
Exemplo n.º 4
0
        // 実行内容
        public override bool Execute(GameLayerManager GML, ScriptMachine SM)
        {
            // 画像を配置する座標を計算。
            // 基準となる大きさの何倍かで判断。
            float l = left_ * Utilities.Config.Instance.Width;
            float t = top_ * Utilities.Config.Instance.Height;

            // どちらか片方がゼロでないなら、座標も変更する。
            if (l != 0f || t != 0f)
            {
                GML.ChangeLayerPoint(currentLayreId_, new Point((int)l, (int)t));
                Logger.Change(currentLayreId_ + ":(" + l + "," + t + ")");
            }
            // レイヤーIDの画像を差し替える。
            GML.ChangeLayerImage(currentLayreId_, Const.Image.GetImage(filename_));
            Logger.Change(currentLayreId_ + ":[" + filename_ + "]");
            return(true);
        }
Exemplo n.º 5
0
 // 実行内容
 public override bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     // セリフが表示しきり、次の実行に遷移していいかを判断。
     if (GML.IsTextCountMax() && GML.IsNextMessage)
     {
         GML.IsNextMessage = false;
         return(true);
     }
     else
     {
         // 初回ロードのみ、セリフの内容を転写する。
         if (isFirstLoad_)
         {
             GML.ChangeLayerMessageText(drawMessage_);
             isFirstLoad_ = false;
             return(false);
         }
         return(false);
     }
 }
Exemplo n.º 6
0
        public override bool Execute(GameLayerManager GML, ScriptMachine SM)
        {
            // レイヤーID
            string index = "ChoiceLayer" + (Choice.Count++).ToString();
            // 選択肢レイヤーを準備
            var layer = new Layers.ChoiceLayer(
                Choice.LEFT,
                Choice.TOP * Choice.Count,
                Choice.Count - 1,
                target_,
                value_
                );

            // 選択肢レイヤーを追加
            GML.AddLayer(index, layer);

            // 選択肢内容をデバッグ画面でできるように追加
            Debug.Items.Instance.ParamAdd(index, layer);

            return(true);
        }
Exemplo n.º 7
0
        // 実行内容
        public override bool Execute(GameLayerManager GML, ScriptMachine SM)
        {
            // 選択肢選択されるまで、待機。
            if (Const.Choice.IsSelect)
            {
                // 選択肢がレイヤーにあるか。
                if (GML.ContainsLayer("ChoiceLayer0"))
                {
                    // 選択されたIDをLog出力
                    Utilities.Logger.Message("Select Index is " + Const.Choice.INDEX + ".");
                    // 選択された選択肢の遷移先のラベルに変更。
                    SM.CurrentLabel = GML.GetLayer("ChoiceLayer" + Const.Choice.INDEX.ToString()).Target;

                    // レイヤー削除
                    GML.RemoveLayer("ChoiceLayer0");
                    GML.RemoveLayer("ChoiceLayer1");
                    GML.RemoveLayer("ChoiceLayer2");

                    GML.IsNextMessage = false;

                    // デバッグ画面からも削除
                    Debug.Items.Instance.ParamRemove("ChoiceLayer0");
                    Debug.Items.Instance.ParamRemove("ChoiceLayer1");
                    Debug.Items.Instance.ParamRemove("ChoiceLayer2");

                    // 選択肢の定数をリセット
                    Const.Choice.Count    = 0;
                    Const.Choice.INDEX    = 0;
                    Const.Choice.IsSelect = false;
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 8
0
 // 実行内容
 public override bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     // Scriptの内容をリロードする。
     SM.Reload(Utilities.String.Script + target_);
     return(true);
 }
Exemplo n.º 9
0
 // 実行内容
 public override bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     GML.ChangeLayerMessageText("");
     return(true);
 }
Exemplo n.º 10
0
 public virtual bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     return(true);
 }
Exemplo n.º 11
0
 public MenuManager(GameInfo gameInfo, GameLayerManager controlManager, Action returnToMainMenu)
 {
     ControlManager    = controlManager;
     _gameInfo         = gameInfo;
     _returnToMainMenu = returnToMainMenu;
 }
Exemplo n.º 12
0
 public override bool Execute(GameLayerManager GML, ScriptMachine SM)
 {
     return(false);
 }
Exemplo n.º 13
0
        // 実行内容
        public override bool Execute(GameLayerManager GML, ScriptMachine SM)
        {
            // 遷移前の画像が未定義なら
            // つまり、初回の実行なら
            if (preImage_ == null)
            {
                // 遷移前の画像を取得
                preImage_ = GML.GetImage(Const.Background.NAME);

                // 遷移開始時間を取得
                startTime_ = System.Environment.TickCount;
                Logger.Message("トランジョンを開始しました。");
            }

            // 遷移実行時間中か
            if (IsExecutingTime())
            {
                Utilities.ControlReturn.Instance.Flag = false;
                // メソッドによって処理内容を変更。
                switch (methodType_)
                {
                // メソッドcrossfade
                case (int)MethodTyepe_.Crossfade:
                    g_.DrawImage(
                        nextImage_,
                        0,
                        0,
                        nextImage_.Width,
                        nextImage_.Height
                        );
                    int alpha = (int)(255 * (1 - ElapsedTime() / time_msec_));
                    g_.DrawImage(
                        Utilities.TransMethod.CrossfadeImg(preImage_, alpha),
                        0,
                        0,
                        preImage_.Width,
                        preImage_.Height
                        );
                    GML.ChangeLayerImage(Const.Background.NAME, canvas_);
                    return(false);

                // メソッドscroll
                case (int)MethodTyepe_.Scroll:
                    int border;
                    switch (fromType_)
                    {
                    // 方向上
                    case (int)FromType_.Top:
                        border =
                            (int)(
                                preImage_.Height * ElapsedTime() / time_msec_
                                );
                        g_.DrawImage(
                            Utilities.TransMethod.Scroll(nextImage_, preImage_, border, fromType_),
                            0,
                            0,
                            preImage_.Width,
                            preImage_.Height
                            );
                        GML.ChangeLayerImage(Const.Background.NAME, canvas_);
                        return(false);

                    // 方向下
                    case (int)FromType_.Bottom:
                        border =
                            (int)(
                                preImage_.Height * (1 - ElapsedTime() / time_msec_
                                                    )
                                );
                        g_.DrawImage(
                            Utilities.TransMethod.Scroll(preImage_, nextImage_, border, fromType_),
                            0,
                            0,
                            preImage_.Width,
                            preImage_.Height
                            );
                        GML.ChangeLayerImage(Const.Background.NAME, canvas_);
                        return(false);

                    // 方向右
                    case (int)FromType_.Right:
                        border =
                            (int)(
                                preImage_.Width * (1 - ElapsedTime() / time_msec_
                                                   )
                                );
                        g_.DrawImage(
                            Utilities.TransMethod.Scroll(preImage_, nextImage_, border, fromType_),
                            0,
                            0,
                            preImage_.Width,
                            preImage_.Height
                            );
                        GML.ChangeLayerImage(Const.Background.NAME, canvas_);
                        return(false);

                    // 方向左
                    case (int)FromType_.Left:
                        border =
                            (int)(
                                preImage_.Width * ElapsedTime() / time_msec_
                                );
                        g_.DrawImage(
                            Utilities.TransMethod.Scroll(nextImage_, preImage_, border, fromType_),
                            0,
                            0,
                            preImage_.Width,
                            preImage_.Height
                            );
                        GML.ChangeLayerImage(Const.Background.NAME, canvas_);
                        return(false);
                    }
                    break;
                }
            }
            else
            {
                GML.ChangeLayerImage(Const.Background.NAME, nextImage_);
                Logger.Message(
                    "トランジョンを" + (int)ElapsedTime() + "msで終了しました。"
                    );
                Utilities.ControlReturn.Instance.Flag = true;
                return(true);
            }
            return(true);
        }