投稿記事

カレーライスプランの記事 (558)

Master.typeX 2019/11/19 20:45

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Master.typeX 2019/11/11 21:02

CF2.5講座:第五回「高速ループを把握せよ!」

どうも、Master.typeXです。
ココ数日疲れて倒れてたり頭痛が痛かったりして
なかなかパソ子を起動させる気力が若干失せておりました。

あっふん。

今回の講座はCF2.5のつまづきポイント
高速ループとなります。
覚えてしまえば便利ですよ奥さん。


第五回:「高速ループ」

「高速ループ」とはCF2.5の機能の一つで
ループ名を付けて指定した回数イベントを実行する。
と、言うものなのだが・・・文字じゃわからんわな。

CF25_kouza_v500.zip (108.22kB)

ダウンロード

なので、今回も講座MFAを覗きながら
ひとつひとつ見てみましょ。

高速ループの基本的な使い方

新規アクションの「特別」(歯車アイコン)から使います。
で、先程のように数式エディタで
名前と回数を指定し、今度は条件で
先程名付けたループ名を条件にすることで
そのイベントを回数分実行します。書き方的にはこんな感じです。

ちなみにこの書き方をすると
アクティブの変数Aにはフレーム開始時に1しかたされませんが
高速ループを回した方は変数Bに1を足すを30回行うという処理になります。

とにかく、名付ける→回数指定→それを条件としたイベントを作る。
コレが一連の流れとなります。

ループインデックスの取得

高速ループの基礎的な使い方の一つとして
「ループインデックス」を条件としたイベントです。
数式エディタの「特別」から「高速ループ」「ループインデックスの取得」で
ループ回数を取得します。

ただ、ループインデックスを条件とするには
「特別」の2つの一般値を比較を使います。

これは上の数式と下の数式の結果を比較して条件とするものです。
かなり便利なコマンドなので覚えておきましょう。

で、この場合は「ループ3」のインデックスが「0」の時
という条件になります。

それから、ループインデックスは
0から始まるためそこだけは注意です。
なので、30回回すと0~29を返すという結果になります。
後述する各ループも同様です。

各ループ(ForEach)

高速ループは非常に便利なものですが
オブジェクトの個数分普通に高速ループしても
どのオブジェクトがどのインデックスなのかわからないのである。

そこで使うのが各ループ(ForEach)です。

これはオブジェクトの個数分、指定した名前のループを回すのは同じなのですが
こっちはちゃんとインデックスを取得する方法があり
主にオブジェクトを特定するという使い方をします。

ただ、こちらは「特別」からループを使うのではなく
「ループを回したいオブジェクト」から「カウント」
そして「各ループ」を選択します。

ループインデックスの取得も同様です。

こちらもインデックスは0から始まっていますが
インデックスの開始は一番新しいオブジェクトから始まります。
なので、古しいオブジェクトになると一番大きい番号になります。
古しい方から始まるには工夫が必要となります。

高速ループを使ったイベント例

講座用MFAに2つほど載せておりますが軽く解説します。

クリックすると増えるオブジェクト
簡単な使い方で「オブジェクトをクリックする」条件を使い
その条件が満たされるとループを3回回してオブジェクトを
ランダムな位置に3つ生成するというものです。

そんな面倒なことしなくてもいいんじゃね?

と、思われそうなので向こうに失敗例も置いてあります。
オブジェクトの生成の後に生成したオブジェクトに対するイベントは

こんな感じに書いても実はうまくいかず
左上にイベントが重なって出来てしまいます。
なぜそうなるかはよくわかってない。(それでいいのか)
でも、とりあえず同じイベント内で複数制作せずに
高速ループを利用したりCF2.5+ならば子イベントを利用するなりしましょう。

ループインデックスを方向に使う
これはよく使われると思われる方法。
CF2.5の方向は0~31までの32方向で指定できます。
(ベクターならば0~360度まで・・・だと思う)

なので32回ループすれば講座用MFAのように
全方位に弾を発射することができるようになります。

方向の指定方法は「方向を変えたいオブジェクト」→「方向」
「方向を選択...」でいかの表示が出たら「1+1」のアイコンを押して
数式エディタを開くことで指定できるようになります。

32以上はどうなるかよく覚えてない。(おい)


とまあ、こんな感じでザックリと説明してみました。
この高速ループ、今後もちょいちょい出てくると思うので
その時はココやMFAを覗いて復習しておいてくださいまし。

次回は・・・次回は・・・

思いつかん!
(ダメじゃねーか)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Master.typeX 2019/11/08 21:33

CF2.5講座:第四回「超簡単なゲームを作ってみよう!」【追記あり】

どうも、Master.typeXです。
今回はいきなりですが
超簡単なゲームを作るということになります。

後にブロック崩しも作りますが
今回はそのためのスモールステップだと思ってください。

では行ってみよう。


第四回:「クリックゲームを作る」

今回作るゲーム

今回作るゲームは上記のリンクにある
クリックでアクティブオブジェクトを血祭りにあげるゲームです。

すっごい簡素だけどこの程度ならば
30分程度で作れちゃいます。

ちなみに行数はたった30行。フレームの遷移などもなし!
まあ、お手軽ですよ奥さん!

今回は講座用MFAを覗きながら進めるといいでしょう。

CF25_kouza_v400.zip (103.34kB)

ダウンロード

工程1:必要なオブジェクトを作る

まずは2つのオブジェクトを作りましょう。
作るオブジェクトは「計算用」と「アクティブ」です。
画像は変更せずにそのままです。

名前を変更するには、作ったオブジェクトを
右クリックした時のメニューにある
「名前を変更」で変えることが出来ます。
多分、アクティブと続けて作ると
名前が「アクティブ 2」というのができるので
そっちを「計算用」にリネームしてやりましょう。

次に作るのは「カウンターオブジェクト」を2つです。
カウンターはリスト内の「データ」のところに分類されています。
こっちは名前を変えないでおきましょう。

そして「文字列」を3つ。こちらも名前は変更しません。
文字列はリスト内の「テキスト」のところに分類されています。

工程2:オブジェクトの設定を変える

次は作った各オブジェクトの設定を変更していきましょう。
オブジェクトを左クリックすると画面左下の「プロパティ」が開きます。

ここでオブジェクトの動作設定や
変数やフラグの作成やリネームなど他にも色々と出来ます。

ちょっと駆け足になりますが
各オブジェクトのプロパティを変えていきましょう。

「計算用」
「値」のタブ(A-Zのアイコン)を開き
「OV_カウント」「OV_出現時間」の変数を作りましょう。
フラグも「フラグ 0」を作ってください。
次に「ランタイムオプション」のタブ(紙の上に赤い矢印のアイコン)を開き
「オブジェクトが動作領域から離れている場合破壊」のチェックを無くし
「表示領域から離れすぎている場合オブジェクトを無効」を「いいえ」に変更します。
その後、オブジェクトを白いエリアの外の適当な位置に移動させて完了です。
白いエリア内にいると見えてしまうので。

オプションの「破壊」や「無効」はおまじないみたいなものだと思ってください。
今のところは。

「アクティブ」
こちらは「ランタイムオプション」で計算用と同じ設定にして
「開始時に作成」のチェックを外してください。
そうするとフレームが開始されても
イベントで作成しない限りオブジェクトが作成されないようになります。
それが終わったら白いエリア外に移動させましょう。

「文字列」・「カウンター」
「設定」タブ(紙の上にチェックマークのアイコン)を開き
「パラクラフ1」に「壊したオブジェクトの数」と書いておき
白いエリア内の左上あたりに置きましょう。
その少し横に「カウンター」を移動させます。

「文字列 2」・「カウンター 2」
先程の文字列同様「設定」タブを開き
「パラクラフ1」に「現在のオブジェクトの数」と書き
「文字列」の少し下辺りに置きましょう。
さらにその隣に「カウンター 2」を移動させておきます。

「文字列 3」
こちらは「サイズ/位置」タブ(四角と矢印のアイコン)を開き
「位置」をX:0、Y:0に指定して移動させます。
その後、「サイズ」を幅:640、高さ:480に設定し
「設定」タブを開き「パラクラフ1」に
「げーむおーばー」とでも書いておきましょう。
【追記】「ランタイムオプション」で「開始時に作成」チェックを切っておきましょう。メチャクチャ忘れてた。


これでオブジェクトの設定は完了です。
次にいよいよイベントを書いていきましょう!


工程3:イベントを書いていく

上部メニューから「イベントリストエディタ」を開きます。
そして、新規条件を選択し以下の順でイベントを組んでいきましょう。
またちょっと駆け足になりますがご容赦くだせぇ・・・

  • フレームが開始
    計算用 : OV_出現時間 を 120 に変更

↑これはフレーム開始時に出現時間をリセットするというものです。

  • 計算用: フラグ 0 が無効
    計算用 : OV_カウント に 1 を追加

↑コレは「計算用」の「フラグ 0」が無効の時の条件です。
この「フラグ 0」は後々使っていきます。
そして、内容は単純に「OV_カウント」に「1」を追加しているという意味です。

  • 計算用: フラグ 0 が無効
    • OV_カウント: 計算用 >= OV_出現時間( "計算用" )
      新規オブジェクト : 次のオブジェクトを作成: アクティブ 場所: (0,0) レイヤー 1
      アクティブ : X 座標を RRandom(32, 608) に変更
      アクティブ : Y 座標を RRandom(32, 448) に変更
      計算用 : OV_カウント を 0 に変更

↑こちらも「計算用」の「フラグ 0」を使用しています。
イベントの内容としてはザックリ説明すると
「アクティブ」を座標X:0、Y:0に作成後
XとY座標をランダムなところに変更し、カウントをリセットする。
というものになっています。

  • ユーザーが 左ボタンをクリック - アクティブ 上
    カウンター : カウンターを 1 増加
    アクティブ : 破壊

↑こちらは「アクティブ」の上で左クリックすると
「カウンター」が増加し、「アクティブ」を破壊する
という処理になります。

  • 常に実行
    カウンター 2 : カウンターを NObjects( "アクティブ" ) にセット

↑こちらは「カウンター 2」の数値を「アクティブ」の数にセットするという処理です。

  • カウンター = 5
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 10
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 15
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 20
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 25
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 30
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 35
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

  • カウンター = 40
    + イベント連続時にアクションを 1 回のみ実行
    計算用 : OV_出現時間 から 10 を引く

↑コレは「カウンター」の数値が5ごとに
「計算用」の「OV_出現時間」から10数値を引いていることになります。
こうすることで出現時間が短くなり、ゲームがスリリングになります。

  • 計算用: フラグ 0 が無効
    + カウンター 2 >= 10
    新規オブジェクト : 次のオブジェクトを作成: 文字列 3 場所: (0,0) レイヤー 1
    計算用 : フラグ 0 を有効に設定

  • "Space" キーを押した時
    + 計算用: フラグ 0 が有効
    ストーリーボードコントロール : 現在のフレームをリスタート

↑最後のコレがゲームオーバーの処理と
再スタートの処理となります。


うん、あれだ
あえて言わなくてもわかりづれぇ!!!

流石に一つ一つ説明していくのも大変なので・・・
どこにそのコマンドあるの?とかあれば
コメント欄にお書きくださいまし・・・すまねぇ・・・

とまあ、でもコレを書いていけば
最初に載せたような簡単なクリックゲームが作れるんです!

そして次第に慣れてしまうと
背景を付け足したり、お邪魔キャラを用意したり
あと、時々爆発するオブジェクトが出てきたり
更にその爆発に巻き込むと誘爆したりなど・・・

それをすべてまとめた結果がコレだよ!!!

なんと酷い・・・

ま、まあそういうことで・・・
とにかくこれで最初のステップは完了だ!
うん!そういうことにしておこう!

次回はシステム面に戻り
CF2.5のつまづきどころの一つ、「高速ループ」をやろうと思います!

コレを覚えれば一気にレベルアップですよ!奥さん!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Master.typeX 2019/11/05 15:36

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Master.typeX 2019/11/05 15:25

CF2.5講座:第三回「数式エディタと変数を知れ!」

どうも、Master.typeXです。
今回は変数と数式エディタの使い方を
ちょっぴり紹介していこうと思います。

どちらもCF2.5でゲームを作る上では
必要なので必修項目です、心してかかれ。

第三回:「変数と数式エディタ」

と、いうことでまずは
超重要な要素変数を覚えていきましょう。
RPGツクールシリーズでもよく聞くコレ。
CF2.5ではいくつかの種類の変数があります。
変数の概念自体はウェブで調べればそのへんに転がってるので割愛。


オブジェクトで使える変数

変数
各オブジェクトが持つ変数。
名前がつけられるのはA~Zまでの26個まで。
一応それ以上も使用可能だが、それはMFAの中に記載します。
CF2.5+だと名付けられる変数の数が増え
MFAに記載してある方法を利用せずとも使えるようになっている。

入出力のデータ形式は数字となっています。

フラグ
各オブジェクトが持つ
RPGツクールで言うところのスイッチ。
0~31の合計32個まで使用可能。
最近っていうほどではないが
最近名前がつけられるようになり
事前のオンオフも切り替えられるようになった。

入出力のデータ形式は数字0か1のどちらかとなってます。

可変文字列
各オブジェクトが持つことのできる文字列。
最大10個まで使用可能。
しかし、用語集でも触れられたとおり
凄まじく影が薄い。
それどころか同名のアクションのほうが使われる始末。
なんというか、哀れで仕方ない。

入出力のデータ形式は言うまでもなく文字

アプリケーションで使える変数

グローバル変数
アプリケーション全体に影響する変数。
RPGツクールで言うところの変数はコレに値する。
個数はほぼ無制限

入出力のデータ形式は数字となっています。

グローバル文字列
アプリケーション全体に影響する文字列。
可変文字列同様あんまり影が薄い。
こちらもほぼ無制限に作れる。

入出力のデータ形式は文字となっています。


コレ以外にも配列というものもあるんですが
あんまり使ったことがないので今回は割愛。
GMS2じゃ結構使ってるんだけどね。

オブジェクトの変数の利用法としては
アクションゲーの敵の体力とか
獲得できるコインの数値とか
前回講座にあったような移動値として使うなど色々とあります。

フラグに関しては、ちょっと注意として
RPGツクールのように
フレームをまたいで管理するわけではない
ので、そこだけは注意。
どうしてもアッチみたいな使い方したいならグローバル変数を使うのが吉。
(オブジェクトをグローバル化すればいいとは思うがそれはそれで問題が起こる)

文字列は・・・すまん、誰か教えてくれ。俺が知りたい。


続いては変数などを操作する数式エディタを紹介します。

数式エディタ

数式エディタはCF2.5でのデータを編集するためのエディタとなります。
一応、数式程度ならキーボード抜きでも出来なくもないが
文字列では結局使うことになるのでそこのテンキーはいらんやろ
とか言わないように。かわいそう。

テンキー隣のボタン類は
「AをBで割った余り」といった計算をする「Mod」
円周率を代入する「Pi」
三角関数である「Sin」「Cos」「Tan」(サイン・コサイン・タンジェント)
などがよく使われるかと思われる。
累乗である「Pow」も表示はされてないが存在する。

他にも「2つの値の最大値(最小値)を取得する」なんてのや
「乱数」「指定範囲内の乱数」もある。

そして下のリストはオブジェクトから
変数やフラグ、文字列に座標の他色々取得したり
歯車マークの「特別」からは更に特殊なデータを取り出すような
式を出したりなどできる。

主な使い方としては前回も触れたとおり
下のリストから数値を選択して、計算し、その結果が
アクションの方に反映されるという感じです。

色々と複雑な部分があるが
よく使う部分は「乱数生成」「指定範囲内の乱数生成」
「Mod」「Sin」「Cos」「Tan」あたりだと思う。
特別だと絶対値「Abs」とか「Loopindex」かなと。

もっと詳しく知りたいのなら
ココよりもMMF2wikiのほうがより詳しく
どういうコマンドかは書いてあるのでそちらを参照されたし。

MMF2wiki:数式リファレンス
こちらからどうぞ。


とまあ、駆け足で紹介していきました。
次回はいきなりですが超絶簡素なゲームを早速作ります!

次回をまて!

今回の講座MFA

CF25_kouza_v300.zip (101.45kB)

ダウンロード

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索