var val = gameData[?"time"];
if (is_undefined(val)) time = 100;
else time = val;
// 三項演算子でもいいが……
var val = gameData[?"time"];
time = is_undefined(val) ? 100 : val;
// こうするとシンプル
// gameData[?"time"]がundefinedなら100が代入される
time = gameData[?"time"] ?? 100;
ただしnooneは-4の定数なのでNull合体演算子(??)は使えない
var val1 = noone;
var val2 = val1 ?? 100; // val2には-4が代入される
とてもとてもありがたいチュートリアルです!
一番最初のチュートリアルはいくつかあるのですが、
作り始めてから、こんなことしたい、あんなことしたいっていう部分がなかなかなくて、
GMLの情報をあつめつつも、わからないことだらけで・・
ここにたどり着けたので、
とりいそぎチュートリアル記事を全部読もうと思います!
そのような関数が追加されていたのですね!
重複もないので使えそうです。
ありがとうございます。
ds_listのようなデータ構造は今後構造体とかになりそうな予感がしてます。
配列の関数がかなり充実して何でもできるようになってきてるので、DS_Listを使わなくてもよくなってきてますね
指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されてましたね。
indexを探すfor文は書かなくて済みそうです。
GameMaker最新版の2023.1から指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されました。
もし配列の中身に重複がなければ使えると思います。
サンプルコードです。
よかったです。
surface_copyのほうがシンプルだったかもしれませんね。
サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました!
考え方を知れたのでうまく実装することができました。
surface_copyとか使わないんですね・・・。
複数オブジェクトでの実装方法を書いておきます。
Createイベント
objSurface1(レイヤーが一番下)のStepイベント
objSurface3(レイヤーが一番上)のDrawGUIイベント
シェーダーを複数回かけるマルチパスのことですかね。
とりあえずサンプルプロジェクトを用意しましたので、参考にどうぞ。
こちらからダウンロード
バージョンは以下で作成してます。バージョンが古いともしかしたら動かないかもしれません。
IDE 2022.11.1.56
Runtime v2022.11.1.75
内容は次の3つのシェーダーを画面全体に重ね掛けするというものです。
・歪みシェーダー
・グレースケールシェーダー
・色収差シェーダー
1,2,3キーでシェーダーの効果をオン、オフできます。
大まかな流れは次のとおりです。
となっています。
サンプルを見てなにかわからないことがあれば聞いてください。
最後のUnityの話で思い当たることがありまして、
他のエンジンでの仕様や決まりごとに、ゲーム作りに役立つ概念がたくさんありますね。
関数の中身、勉強になりそう!
おかげさまで実装できました!ありがとうございます。
GameMakerまとめWikiには載ってなかったのでやっぱり英語でも調べないと駄目だなと実感しました…
window_has_focus関数で検知できます
例:
stepイベント
これはいつかお世話になりそうな情報。ありがとうございます!🙏
おそらく自作が必要で、
といった流れになりそうな気がします
フォントの質問についてはちょっと分からないのでテキスト表示の処理を考えました。
これで文字間と行間を指定できます。こういう方法はいかがでしょうか。
Draw GUI(Drawでも動きます)に貼り付けて「フォント」を使いたいフォントアセットに書き換えてください。
こんにちは!
文字間隔を調整できるフォントの作成の調査をしています。
font_add_sprite()で各文字の幅を指定できるようですが、べースとなるスプライトが必要とあります。
JIS 第一・第二水準を含む美咲ゴシックを導入したいのですが、可能でしょうか?(サイズが大きい気がしまして。)
現在は美咲ゴシック(JIS 第一・第二水準)をフォントアセットに取り込んでテキストを表示しているので、このフォントに対して文字間隔を指定する方法があればいいのですが・・・。
何かヒントでもいただければ幸いです。
よろしくお願いいたします。
やはりそうですよねえ。今日たまたまドキュメントを見たら載ってたstring_split()を「こんな関数あったっけ」と思いつつやってみたら使えなかったので、新しい機能なんだと思います。→→→ランタイムのリリースノートに載ってますねえ。いやあーん失礼しました!
LTSは2022.9をベースにしてますので、これより後にリリースされた仕様は実装されないものと認識してます
string系のアプデ気になりますね!
LTSのほうでstring_split()が動かないのですが、ひょっとしてLTSにはまだ実装されてなくて、そちらに来てるのかも
ランタイムを個別にインストールできるようになった。
エフェクトが増えた。オールドフィルムとか。
値の桁や区切りとしてアンダーバー<_>が使えるようになった。10000 = 10_000
string系の関数がアップデートされた?
配列を使用するときに便利な関数が用意された?
キャッチアップするの大変だ('ω')
海外フォーラムでも検索しましたが、カーニングを指定できる関数はなさそうですね。
1文字ずつ描画する関数の自作を研究してみます!
ありがとうございました('ω')
私の知る限り、文字間隔を指定できる関数は無いので(行間隔はdraw_text_ext()でできますが)
1文字ずつ描画する関数を自作する形になるでしょうかね。
自作関数なら1文字単位で文字間隔を変えることもできます。
私は文字単位で色を変えるために自作しました。
フォント単位で固定でいいなら、フォントの素材画像をスペース込みで作成する方法もあります。
しばらくってどれくらいなのか気になりますが、出ないことはないようで安心です!ありがとうございます
紹介記事によると、しばらくの間フィードバックを集めた後に出るとあります。
https://gamemaker.io/en/blog/release-2022-0
質問です、これはSteam版もリリースされますか?
ずっとLTS欲しかったので、とりあえずめでたいです
返事が遅くなってしまいすみません。
教えていただいた方法でdrawイベントを使って描画のみ拡大したところ、期待していた通りの実装が行うことができました!ありがとうございます!
collision maskは、ビルトイン変数であるimage_xscale、image_yscale、image_angleに連動して変化します。
なのでこれらを使わずに
img_xscale, img_yscaleなどの自前の変数(変数名は何でもいいです)を使って拡大縮小させるといいですよ。
こんな感じで。
あざます!
PCを買い替えたのとIDEのバージョンを上げたのが同時なので何が影響してるのか分かりませんが、
コードを書いてるとIDEがどんどん重くなっていく問題は感じられなくなりました。
公式が用意してくれるなら不要かもですが、昔作った自動改行(正確には文字列分割して、for文で draw_text() する想定) のスクリプトを添付しておきますね。
分割文字 (sep) が見つかればそれで改行 (分割) できますし、warpに文字の幅を指定すれば string_width() で文字幅を計算して改行するようにできます。
これも追加で
Null合体演算子(??)を使ってシンプルに
ただしnooneは-4の定数なのでNull合体演算子(??)は使えない
行頭、行末文字までやりだすとわかりにくく、他の言語の同様のルールに対応しなくちゃならないので大変かと思いますし、draw_text_ext() を日本語に対応させるだけでそこそこ大変な気がするので、まずはそこで十分な気が。
プロの現場とかでも、行頭、行末に関しては手入力というのがほとんどでしたし(機能がない場合と、よみやすさにこだわると手動改行になってしまう場合の二種類)。
返信が遅くなってすみません。
ネットで検索しても同じような症状の人が見つからず心配だったので、レスポンスをいただいて助かります。
Mac版特有のバグなんですね・・・。
とりあえずYoYoGamesさんにバグ報告をして、修正される間はコピペで凌ごうと思います。
本当に助かりました。ありがとうございます!
Ctrl+Tで出すGOTOメニューでキーワードが部分一致しても検索結果に出て来ないのでバグ報告しました。
(再現できないって言ってきたので日本語環境だけまたは自分の環境だけのことかも)
自分は9個くらいありましたw
自分の場合はおそらく別のPCでログインしたり、別のインターネットでログインしたりしたせいかもしれません。
私の場合IPアドレスは自分のもの1つだけで、暗号みたいな英数字の羅列の名前がいくつかありました(IPが自分のものもそうなってました)。
今Opera関係でその辺をごっそり作り直してるところなので変なバグがあるのかもしれません。
原因がわからない場合は報告した方がいいと思いますね。
ごめんなさい。初めて投稿したものですから、変なリンクが付いてしまいました。
これをクリックしてもpage not foundで何もありません。
GameMakerは現在は日本語も公式にサポートしてますのでバグ報告するといいと思います。
正直YoYoGamesへのバグ報告は疲れるし失望することが多くてしんどいですけど、
しないと修正もされないし、そもそも彼らは日本語の問題を認識できないので、
ユーザーががんばるしかない部分ではあります。