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); }
// 実行内容 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); }
// 実行内容 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); }
// 実行内容 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); } }
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); }
// 実行内容 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); } }
// 実行内容 public override bool Execute(GameLayerManager GML, ScriptMachine SM) { // Scriptの内容をリロードする。 SM.Reload(Utilities.String.Script + target_); return(true); }
// test public override void ReloadScript(string filename) { scriptMachine_ = new ScriptMachine(filename); }
// 実行内容 public override bool Execute(GameLayerManager GML, ScriptMachine SM) { GML.ChangeLayerMessageText(""); return(true); }
public virtual bool Execute(GameLayerManager GML, ScriptMachine SM) { return(true); }
public override bool Execute(GameLayerManager GML, ScriptMachine SM) { return(false); }
// 実行内容 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); }