英語がわからなくてバグ報告がおっくうなんすよねぇ... でもこれかなり致命的なので雰囲気で送ってみようと思いやす。
症状にてるんですけど、解決法てきなやつやってみたんですがダメでした
IMEを切り替えるとFullscreenにする前のサイズのボーダーレスウィンドウみたいになる現象ですよね。 これは共通の現象みたいですね。 自分のプロジェクトでも起こりますし、gamemaker製の市販のゲームでも起こりました。 再現する最小限のプロジェクト作ってバグ報告するのがよさそうです(ダメ元で)。
補足: 自分の環境はIDE v2.2.5.481 Runtime v2.2.5.378 / windows10 / google IME 市販のゲームはTouhou Luna Nights
この不具合とは違いますか? リンク
MarketPlaceを見てたら NSIS Standalone なるものを見つけました。 2.3で動くか試せてないのであれですが、とりあえずの情報共有ということでお願いします。
時間があれば後日試します
解答ありがとうございます。 やっぱりGM2から仕様変わったのですね。 納得です。
gms2になってから仕様が変わり、外部ファイルとしてバンドルされるようになりました。 私の知る限り、これらをexeに含ませることはできないようです。 exeファイルがある場所とは別のデータ用ディレクトリに配置することはできたと思います(たしか)。 暗号化して難読化することも可能です。
昨今のゲームとプレイヤーの関わり方を鑑みて、私の考え方は以下のように変わりました。 (ただしソロで遊ぶゲームに限ります) ● テキストやゲーム内のデータをズルして見たかったら見ればいい、それで損するのはユーザー自身。 ● MOD遊びのように、いじって変えて遊ぶことを楽しむ人も実際いる。好きにすればいい。 ● 結論:見るつもりがないのに見えちゃうような状態じゃない限り問題なし。
1月7日まで1,200円とかになってるそうです。 https://hatenanews.com/articles/2020/12/30/103000
gamemaker studioコース https://www.udemy.com/topic/gamemaker-studio/
お二方ご親切にありがとうございました。マウスのクリックと同じ関数を使うのは想像できませんでした。参考にさせていただきます!
(mobile向けに作ったこと無いので確かなことは分かりません)
yakataさんのようにオブジェクトのstepイベントに処理を書くやり方の他に、 オブジェクトにジェスチャーイベントを追加してそこに処理を書く形もあるようです。 event_dataからタップ位置やドラッグ開始位置、終了位置などを取得して利用できます。
マニュアルではここらが参考になるでしょうか。
ver 2.2.x https://docs2.yoyogames.com/index.html?page=source/_build/2_interface/1_editors/events/gesture_events.html
https://docs2.yoyogames.com/index.html?page=source/_build/2_interface/1_editors/events/gesture_events.html
ver 2.3.x https://manual.yoyogames.com/#t=GameMaker_Language/GML_Reference/Game_Input/Gesture_Input/Gesture_Input.htm&rhsearch=gesture event&rhhlterm=gesture event
https://manual.yoyogames.com/#t=The_Asset_Editors/Object_Properties/Gesture_Events.htm&rhsearch=gesture event
ipadなどのタッチできるデバイスに出力したプログラムでは、マウスのクリックとタップが同じ扱いのようです。 なので mouse_check_button() の関数を使うと、「タップした場合」の挙動が書けました。
また device_mouse_x_to_gui() というマウスの座標を取得する関数を活用すると、 mouse_check_button() や mouse_check_button_released() と組み合わせて、マウスの座標が大きく移動した時を判定することでスワイプを実装できました。
mobileはまだテストで触れただけなの詳しくは分かりませんがで参考になれば幸いです。
おおお、これで何とかなりそうです。ありがとうございます!! 3次元配列が単純にコピーできないのは不具合なのかな・・・。
3次元配列ちょこちょこいじってみました。 配列をコピーした場合でも同様の配列を参照してしまうみたいです。 なので、
// [引数]3次元配列(コピー元) function array_copy3d(_a){ var _b = array_create(0); // コピー先 var _length1 = array_length(_a); for(var i=0; i<_length1; i++){ var _length2 = array_length(_a[i]); _b[i] = array_create(_length2) array_copy(_b[i], 0, _a[i], 0, _length2); } }
このように配列の2次元目をコピーすると別の配列として参照できました。 (3次元目をコピーしてもいけますが、記述が長くなるので2次元目にしました)
コピー先をいじった後、元に返すのは、
// _aコピー元 _bコピー先 var _length1 = array_length(_a); array_copy(_a, 0, _b, 0, _length1); // 戻り値があるなら return _b;
でいけます。
GMSで3次元配列を扱うのはリスキーに思われるので、1次元配列の中に2次元配列を格納する という手法も1つの策かと思われます。 参考になれば幸いです。
1次元配列の中に2次元配列を格納する
ありがとうございます!! Keep aspect と Full scale には全く気が付かなかったので確認してみます!
このように、モニタサイズを超えるroomサイズにすると、モニタサイズに収まるように縮小されました。 (設定がKeep aspect ratioになってる場合)
(ここの設定をFull scaleにすると比率が変えられてモニタサイズにフィットされました)
あ、FHDは1920×1080ですね。
といってもルームがあまりにも大きいとテクスチャ関係かメモリ関係のエラーが出るのではないかと思いますので…… あるいは1980×1080のFHDのディスプレイでビューを2400×1400などにした場合(この場合ルームのサイズはそれ以上)です。
ビューサイズが絡むとうまく説明できないのですけども roomのサイズをディスプレイサイズを超えたサイズにしてビューをOFFにしてるとき、 と思ってくださいませ
解像度というのは、roomサイズのことでしょうかね?
返信、検証ありがとうございます。
どうも1,2次元配列と3次元配列でスクリプトでの扱いに違いがあるみたいで、そこでつまづいています。 3次元配列を使ってこのようなコードを書いてみたのですが、
//オブジェクト Createイベント for(i=2; i>-1; i--){ for(var j=2; j>-1; j--){ for(var l=2; l>-1; l--){ _firld[i][j][l] = 0; } } } Scr_Return_Array(_firld);
//スクリプト function Scr_Return_Array(_a){ _a[0][0][0]=123; }
このように書くとオブジェクトの_firld配列は変更されないはずなのですが、実際には_firld[0][0][0]に123が書き込まれてしまいます。 2次元配列でほぼ同じコードとスクリプトを書くと元の配列に変更は加えられませんでした。 3次元配列をスクリプトに参照ではなく値渡しする方法がわからず困っています。解決法を教えていただければ幸いです。
2.3から仕様が変わったのかと思って簡単に調べました。
IDE:2.3.1.542 Rutime:2.3.1.409 Windows
var _arr1 = [1, 0, 0]; var _arr2 = _arr1; _arr2[1] = 1; show_debug_message(string(_arr1)); show_debug_message(string(_arr2));
結果
[ 1,0,0 ] [ 1,1,0 ]
もし参照になっている場合、_arr2の要素に更新をかけると参照されている_arr1も更新されます。 結果としては元々の仕様通り、配列は値渡し(コピー)になってました。
_arr2
_arr1
「Death's Gambit」もgamemaker製ですね。当時結構びっくりしました
Spineは確かに珍しいですね
しゅんさんありがたい...
たぶんshowcaseにあると思いますが gamemakerはドット絵というイメージがある中で『THE SWORDS OF DITTO』は Spineを使った例として珍しいですね。 (Spine使っても絵の内容はドット絵にもできますが)
snippetの存在も完全に忘れてましたw
最新版で修正入ったぽいです! https://twitter.com/YoYoGames/status/1339601661224865795?s=20
show_debug_message("id="+string(id)+" loc="+string(x)+","+string(y));
など、よく使うのをsnippetに登録するのも便利ですね
こういうの毎回打ち直してたりしてました... 関数のコメントの部分参考になります
インスタンスの情報を表示するスクリプト デバッグのために、drawイベントで使います 表示する項目は適宜追加したりして使ってます。
/// @ desc scr_dev_instance_info(); /// @param {num} x /************************************************************ desc インスタンスの情報を表示する return : n/a ************************************************************/ draw_text(x, y+10, "id: "+string(id)); draw_text(x, y+20, "loc: "+string(x)+","+string(y)); draw_circle(x, y, 2, false);
x座標をグリッドのセンターにスナップさせて返すスクリプト これのy座標版も作って、オブジェクトをグリッド(タイル)の中心に置くときとかに使います GRID_SIZEは定数です(32とか)
/// @ desc scr_x_to_grid_center(); /// @param {num} x /************************************************************ desc 指定したx座標に一番近いグリッドセンターのx座標を返す return : number ************************************************************/ return argument0 div GRID_SIZE * GRID_SIZE + GRID_SIZE/2;
できました! 設定後にコードを開き直すと直ってました。 ずっと悩んでたので助かりました。ありがとうございます!
「環境設定」→「言語」→「GML」の項目の中にある、 「文を折りたたみ領域として扱う」のチェックボックスを外すといけました。
英語だと「Prefarences」→「Languages」→「GML」→「Enable statement folding as regions」 です。
銀行丸めがなんのかわからなくてググりました。 gamemakerのroundそうなってるんですね。これ結構計算処理変わってくるのでびびってますw
gamemakerのround()は銀行丸めですが、四捨五入したいとき。
/// @desc scr_math_round(); /// @param {number} number return (argument0 + 0.5) div 1;
逆に初歩的な質問は大歓迎です。
はじめまして。 GMS2駆け出し手探りの身なので、とても有益な掲示板(しかも日本語!)を作っていただきありがたい限りです! 初歩的な質問をする時もあるかと思いますが、よろしくお願いします!
ぽちっておこうかなと思います
買いました。ちらっと見ましたが分かりやすいです。 しゃべってる英語が全文テキストになってるのもありがたいですね。 内容は初級~中級者向けの基本的なことになってます。
記事や書籍というわけではないのですが、Githubでタグ検索することをおすすめします。 https://github.com/topics/gamemaker
GMSに出力できるツール系なども出てきますが、GameMakerのプロジェクトを公開している人が結構多いです。 GameMaker Discord Communityの公開リポジトリはおすすめです。 https://github.com/GameMakerDiscord (GMEditもここで管理されてたりします)
シェーダーやモジュールなどが中心ですが、飛び抜けた方々のコードを参考にできるのでぜひ。
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
英語がわからなくてバグ報告がおっくうなんすよねぇ...
でもこれかなり致命的なので雰囲気で送ってみようと思いやす。
症状にてるんですけど、解決法てきなやつやってみたんですがダメでした
IMEを切り替えるとFullscreenにする前のサイズのボーダーレスウィンドウみたいになる現象ですよね。
これは共通の現象みたいですね。
自分のプロジェクトでも起こりますし、gamemaker製の市販のゲームでも起こりました。
再現する最小限のプロジェクト作ってバグ報告するのがよさそうです(ダメ元で)。
補足:
自分の環境はIDE v2.2.5.481 Runtime v2.2.5.378 / windows10 / google IME
市販のゲームはTouhou Luna Nights
この不具合とは違いますか?
リンク
MarketPlaceを見てたら NSIS Standalone なるものを見つけました。
2.3で動くか試せてないのであれですが、とりあえずの情報共有ということでお願いします。
時間があれば後日試します
解答ありがとうございます。
やっぱりGM2から仕様変わったのですね。
納得です。
gms2になってから仕様が変わり、外部ファイルとしてバンドルされるようになりました。
私の知る限り、これらをexeに含ませることはできないようです。
exeファイルがある場所とは別のデータ用ディレクトリに配置することはできたと思います(たしか)。
暗号化して難読化することも可能です。
昨今のゲームとプレイヤーの関わり方を鑑みて、私の考え方は以下のように変わりました。
(ただしソロで遊ぶゲームに限ります)
● テキストやゲーム内のデータをズルして見たかったら見ればいい、それで損するのはユーザー自身。
● MOD遊びのように、いじって変えて遊ぶことを楽しむ人も実際いる。好きにすればいい。
● 結論:見るつもりがないのに見えちゃうような状態じゃない限り問題なし。
1月7日まで1,200円とかになってるそうです。
https://hatenanews.com/articles/2020/12/30/103000
gamemaker studioコース
https://www.udemy.com/topic/gamemaker-studio/
お二方ご親切にありがとうございました。マウスのクリックと同じ関数を使うのは想像できませんでした。参考にさせていただきます!
(mobile向けに作ったこと無いので確かなことは分かりません)
yakataさんのようにオブジェクトのstepイベントに処理を書くやり方の他に、
オブジェクトにジェスチャーイベントを追加してそこに処理を書く形もあるようです。
event_dataからタップ位置やドラッグ開始位置、終了位置などを取得して利用できます。
マニュアルではここらが参考になるでしょうか。
ver 2.2.x
https://docs2.yoyogames.com/index.html?page=source/_build/2_interface/1_editors/events/gesture_events.html
https://docs2.yoyogames.com/index.html?page=source/_build/2_interface/1_editors/events/gesture_events.html
ver 2.3.x
https://manual.yoyogames.com/#t=GameMaker_Language/GML_Reference/Game_Input/Gesture_Input/Gesture_Input.htm&rhsearch=gesture event&rhhlterm=gesture event
https://manual.yoyogames.com/#t=The_Asset_Editors/Object_Properties/Gesture_Events.htm&rhsearch=gesture event
ipadなどのタッチできるデバイスに出力したプログラムでは、マウスのクリックとタップが同じ扱いのようです。
なので mouse_check_button() の関数を使うと、「タップした場合」の挙動が書けました。
また device_mouse_x_to_gui() というマウスの座標を取得する関数を活用すると、
mouse_check_button() や mouse_check_button_released() と組み合わせて、マウスの座標が大きく移動した時を判定することでスワイプを実装できました。
mobileはまだテストで触れただけなの詳しくは分かりませんがで参考になれば幸いです。
おおお、これで何とかなりそうです。ありがとうございます!!
3次元配列が単純にコピーできないのは不具合なのかな・・・。
3次元配列ちょこちょこいじってみました。
配列をコピーした場合でも同様の配列を参照してしまうみたいです。
なので、
このように配列の2次元目をコピーすると別の配列として参照できました。
(3次元目をコピーしてもいけますが、記述が長くなるので2次元目にしました)
コピー先をいじった後、元に返すのは、
でいけます。
GMSで3次元配列を扱うのはリスキーに思われるので、
1次元配列の中に2次元配列を格納するという手法も1つの策かと思われます。
参考になれば幸いです。
ありがとうございます!! Keep aspect と Full scale には全く気が付かなかったので確認してみます!
このように、モニタサイズを超えるroomサイズにすると、モニタサイズに収まるように縮小されました。
(設定がKeep aspect ratioになってる場合)
(ここの設定をFull scaleにすると比率が変えられてモニタサイズにフィットされました)
あ、FHDは1920×1080ですね。
といってもルームがあまりにも大きいとテクスチャ関係かメモリ関係のエラーが出るのではないかと思いますので……
あるいは1980×1080のFHDのディスプレイでビューを2400×1400などにした場合(この場合ルームのサイズはそれ以上)です。
ビューサイズが絡むとうまく説明できないのですけども
roomのサイズをディスプレイサイズを超えたサイズにしてビューをOFFにしてるとき、
と思ってくださいませ
解像度というのは、roomサイズのことでしょうかね?
返信、検証ありがとうございます。
どうも1,2次元配列と3次元配列でスクリプトでの扱いに違いがあるみたいで、そこでつまづいています。
3次元配列を使ってこのようなコードを書いてみたのですが、
このように書くとオブジェクトの_firld配列は変更されないはずなのですが、実際には_firld[0][0][0]に123が書き込まれてしまいます。
2次元配列でほぼ同じコードとスクリプトを書くと元の配列に変更は加えられませんでした。
3次元配列をスクリプトに参照ではなく値渡しする方法がわからず困っています。解決法を教えていただければ幸いです。
2.3から仕様が変わったのかと思って簡単に調べました。
IDE:2.3.1.542
Rutime:2.3.1.409
Windows
結果
もし参照になっている場合、
_arr2の要素に更新をかけると参照されている_arr1も更新されます。結果としては元々の仕様通り、配列は値渡し(コピー)になってました。
「Death's Gambit」もgamemaker製ですね。当時結構びっくりしました
Spineは確かに珍しいですね
しゅんさんありがたい...
たぶんshowcaseにあると思いますが
gamemakerはドット絵というイメージがある中で『THE SWORDS OF DITTO』は
Spineを使った例として珍しいですね。
(Spine使っても絵の内容はドット絵にもできますが)
snippetの存在も完全に忘れてましたw
最新版で修正入ったぽいです!
https://twitter.com/YoYoGames/status/1339601661224865795?s=20
など、よく使うのをsnippetに登録するのも便利ですね
こういうの毎回打ち直してたりしてました...
関数のコメントの部分参考になります
インスタンスの情報を表示するスクリプト
デバッグのために、drawイベントで使います
表示する項目は適宜追加したりして使ってます。
x座標をグリッドのセンターにスナップさせて返すスクリプト
これのy座標版も作って、オブジェクトをグリッド(タイル)の中心に置くときとかに使います
GRID_SIZEは定数です(32とか)
できました! 設定後にコードを開き直すと直ってました。
ずっと悩んでたので助かりました。ありがとうございます!
「環境設定」→「言語」→「GML」の項目の中にある、
「文を折りたたみ領域として扱う」のチェックボックスを外すといけました。
英語だと「Prefarences」→「Languages」→「GML」→「Enable statement folding as regions」
です。
銀行丸めがなんのかわからなくてググりました。
gamemakerのroundそうなってるんですね。これ結構計算処理変わってくるのでびびってますw
gamemakerのround()は銀行丸めですが、四捨五入したいとき。
逆に初歩的な質問は大歓迎です。
はじめまして。
GMS2駆け出し手探りの身なので、とても有益な掲示板(しかも日本語!)を作っていただきありがたい限りです!
初歩的な質問をする時もあるかと思いますが、よろしくお願いします!
ぽちっておこうかなと思います
買いました。ちらっと見ましたが分かりやすいです。
しゃべってる英語が全文テキストになってるのもありがたいですね。
内容は初級~中級者向けの基本的なことになってます。
記事や書籍というわけではないのですが、Githubでタグ検索することをおすすめします。
https://github.com/topics/gamemaker
GMSに出力できるツール系なども出てきますが、GameMakerのプロジェクトを公開している人が結構多いです。
GameMaker Discord Communityの公開リポジトリはおすすめです。
https://github.com/GameMakerDiscord
(GMEditもここで管理されてたりします)
シェーダーやモジュールなどが中心ですが、飛び抜けた方々のコードを参考にできるのでぜひ。