投稿

5月, 2021の投稿を表示しています

GDevelop で年月日や時間などを取得する方法

イメージ
GDevelop は Javascript で動いてるんだから、Javascript の Date オブジェクトと同等の機能がアクションで利用できるもんだと勝手に思っていたのですが、意外とそうでもなかったのでちょっと調べてみました。 GDevelop 5.0.0-beta110 の時点では、年月日や時間を取得するには Time() 式を利用します。 ※ アクションや条件は用意されていません。 Time() 式はパラメーターによって得られる値が変わります。 利用できるパラメーターは以下のとおりです。 year:1900年からの経過年数 mon:月(0オリジン) mday:日 yday:年間通算日(1月1日=1) wday:曜日(日曜=0) hour:時 min:分 sec:秒 timestamp:タイムスタンプ(ミリ秒) 参考: Wiki の「式リファレンス」ページ ちなみに「timestamp」以外は 全て地方時(日本時間)の値 が返されます。 さて、初っ端の「year」から面倒くさいことになっています。 Time("year") で返される値は 1900年からの経過年数なので、例えば 2021年なら 121 が返ってきます。うわめんどっw しかもこの挙動は、既に非推奨となっている Javascript の  Date.prototype.getYear() と同じです……😰大丈夫なん? 大丈夫でした。既に getFullYear() を使用していて、そこからわざわざ -1900 して返しています。(それもどーかとw) 続く「mon」も 0オリジン、つまり 1月が 0 で 2月 が 1 ……というアホっぷりです。 まあ、これは古いプログラミング言語ではよくあることなのですが、そんなことを GDevelop で再現する必要はないわけで……😢改善希望です。 それ以外は期待通りの値が返ってくるので、特に困ることもないかと思います。 (曜日は配列とか利用して希望する表記に変更しましょう) しかし日付計算など、もう少し高度なことをしたい場合は、Javascript を利用したほうが良いですね。 使い方例1:テキストオブジェクトで日付を表示する 「2021年5月28日」という具合に表示したい場合は、次の画像のように設定します。 値には以下のように記述し

GDevelop v5.0.0-beta110 がリリースされました。

イメージ
問題の発見された beta109 を飛ばして GDevelop v5.0.0-beta110 がリリースされました。 今回も色々追加されたので、個人的に気になった更新内容をピックアップしてご紹介します! ✨ 新機能 ・ビットマップテキストオブジェクトの追加 新しく「ビットマップテキスト(Bitmap Text)」オブジェクトが、実験的なオブジェクトとして追加されました。 このオブジェクトを使用することで  BMFont や bmGlyph などのソフトウェアで生成された、ビットマップフォントを表示できるようになります。 ビットマップフォントは、デザインされた文字を予め画像として保存したものを利用するので、これまでは表現できなかった文字の装飾などが可能になります。 また、従来のテキストオブジェクトより描画にかかる負荷が軽く、頻繁に更新されるテキスト(例えばスコアなど)での利用に向いています。 対して画像なので、拡大すると画質は下がってしまう点と、用意していない文字は表示できない点に注意が必要です。 ・オブジェクトの中心が利用しやすくなりました オブジェクトの中心を取得したり、中心を利用して位置を指定するための、アクション、条件、および式が追加されました。 今までもスプライトオブジェクトは Point("Center") で Center 位置は取得できましたが、それ以外のオブジェクトの中心位置も簡単に取得できるようなりました。 また、中心位置を基準にした位置指定も可能になりました。 💝 改善点 ・衝突マスクエディタとポイントエディタを刷新 編集画面が大きく表示されるようになり、かなり使いやすくなりました! プレビューと設定欄の分割はドラッグすることができます。 ポイントにカーソルを合わせると、ツールチップにポイント名が表示されます。 ポイントや衝突マスクの頂点を画像より外側にドラッグしても、カーソルに追従し続けるようになりました。(衝突マスクは画像より外側には設定できません) 衝突マスクの設定欄を折りたためるようになりました。 スプライトの衝突マスクがたくさんある場合に便利です。 エディターの市松模様の背景も、選択したテーマに合わせて異なる色を使用するようになりました。 ・ビヘイビアの設定が折りたためるようになりました もぉビヘイビアをたくさ

【GDevelop】式の中に登場するオブジェクトは絞り込みの対象じゃないゾ!

イメージ
「 GDevelop の「イベント」を正しく理解しよう 」のページでも解説したように、GDevelop のイベントは、条件でオブジェクトの絞り込みをしてくれるのですが、実は絞り込まない場合もあるのです😅 それは、 オブジェクトが式の中に登場している場合 です。 ちなみに「式」とは、条件やアクションの入力画面で  や  が横にくっついてる欄に入力する文字とか数のあれですw(正確には文字列の場合は「文字列式」です) では早速、具体的な例を挙げてみましょう。 例えばこんなシーンが有ったとして↓ こんなイベントを組んだとします↓ 条件で GreyTank1 の X 座標が 480 より小さいかを判定しています。 一見すると、X 座標が 480 より小さい GreyTank1 に絞り込まれ、その条件を満たす左の二輌だけが削除されるように見えますが、実際には全ての GreyTank1 が削除されます。 (またはどの GreyTank1 も削除されません。理由は後記) なぜなら、ここで参照されている GreyTank1 が絞り込みの対象ではないためです。 実は使用している条件が「二つの数値を比べる」であり、GreyTank1 はその 式の中 で参照されています↓ そのため、GreyTank1 は絞り込みの対象では無いのです。 また、この条件の GreyTank1 とは、三輌あるうちの(GDevelop の内部的に)最初の一輌のみを指しています。 もし、その最初の一輌の X 座標が 480 より小さいなら、全ての GreyTank1 (絞り込まれていないため)が削除されるし、480 以上なら条件を満たしていないので、アクションが実行されることはありません。(つまりどの GreyTank1 も消えない) 上記の例では、条件「二つの数値を比べる」ではなく、オブジェクトがもつ条件「オブジェクトの X 位置を比べる」を利用すれば、絞り込まれるようになります↓ しかし、必ずしも希望する条件をオブジェクトが有しているとは限りません。 例えばオブジェクトのポイント位置(PointX() や PointY())を比較する条件は、今のところ用意されていません。 その場合は、条件「二つの数値を比べる」を利用することになりますが、その式に登場するオブジェクトは絞り込みの対象ではありません。 では、ど

GDevelop の条件とかアクションって何?どれのこと?

イメージ
GDevelop って「イベント」とか「条件」とか「アクション」とか、なんか用語が色々あってよく分からん! っという方のために、一発で分かる画像を用意しました。 ではどうぞご覧ください↓ つまり条件とアクションがセットになったものがイベントです。 条件の部分で設定した条件が満たされた場合に、アクションの部分で設定した処理が実行される、という仕組みです。 そう聞くと、プログラム経験者は「なるほど if 文だな完全に理解した」となりがちですが、残念ながらそれは間違いです😅 その点について詳しくは「 GDevelop の「イベント」を正しく理解しよう 」をご覧ください。

GDevelop プロジェクトのバックアップ方法

イメージ
最近は GDevelop エディターもかなり安定してきたので、プロジェクトファイルが壊れてしまうなんてことは、そうそう起こらなくなりましたが、念の為バックアップを取っておくにこしたことはありません。 そこで今回は、GDevelop のプロジェクト(ゲーム)のバックアップ方法を紹介します。 GDevelop プロジェクトのバックアップ方法 その1:まるごとバックアップ そもそもプロジェクトは 1 つのフォルダに収まっているはずです。 なので最も単純なバックアップは、そのフォルダごと複製する方法です😅 この方法であれば、複製した段階を忠実に再現できるため、なにかのファイルを壊してしまったり消してしまったときにも、復旧することができます。  反面、この方法ではリソース(画像とかサウンドとかの)ファイルもすべて複製されるので、大きなプロジェクトの場合は容量を食ってしまう上に、複製にも時間がかかったりします。 その2:プロジェクトファイルだけバックアップ プロジェクトファイルとは GDevelop でゲームを作成する際に生成される JSON ファイル(通常は game.json)です。 このプロジェクトファイルに、ゲームの内容が保存されています。 なので、このファイルを複製しておくだけでも、いちおうバックアップが取れていることになります。 もし、プロジェクトファイルが壊れてしまっても、複製しておいた game.json に差し替えれば、バックアップしたときの状態に戻ることができます。 ただし上記その1の方法とは異なり、リソースファイル、特に他のソフト(例えばダイアログツリーの Yarn やタイルマップの Tiled など)で生成したファイルが壊れてしまった場合には無力なので注意です。 その3:オンラインストレージを利用する 上記1と2とは根本的に異なる方法ですが、Dropbox や OneDrive、Google ドライブなどのオンラインストレージにある「バージョン履歴」機能を利用する方法です。 PC にオンラインストレージサービスのアプリをインストールし、プロジェクトのフォルダを同期させれば、あとは勝手にバックアップしてくれます。 この方法であれば、壊れたファイルだけ数日前のバージョンに戻すことも可能ですし、たとえ PC そのものが爆発炎上大破しても、データはクラウド上に