ありがとうございます!
バッククォートを3つ コード バッククォートを3つ
でこうなります
abc
あれ、皆様みたいに枠内にソースを入れるのってどうすれば良いのでしょう??
簡単ですいませんがビューの真ん中の座標を返すスクリプト
/=============================================================================== 描画の対象となるビューのX方向の中央にスプライトやテキストを描画するための X座標を返すスクリプト。引数に対象となるビューの番号と描画対象物の横幅を入れる。 ================================================================================/
function center_xpos(view_number, width){ var xpos = view_get_wport(view_number) /2 - width /2 return xpos }
きっとよくなる!!
公式コミュニティの、公式発表への反応 https://forum.yoyogames.com/index.php?threads/yoyo-games-is-now-part-of-opera.82893/#post-493513
Automaton記事 https://automaton-media.com/articles/newsjp/20210121-149601/
Operaからのアナウンス https://blogs.opera.com/news/2021/01/opera-yoyo-games-gamemaker/?utm_source=social&utm_medium=tw_gl&utm_campaign=opera_gaming_blog
公式発表きました https://www.yoyogames.com/blog/597/yoyo-games-is-now-part-of-opera
youtubeでGMSのチュートリアルされてるShaun Spaldingさんが、「PLAYTECHはどーしよーもない会社だったから、今回の買収でいい方向に進んでほしい」的なことつぶやいてましたね。彼はもとYOYOに勤めてたみたいなので、けっこう内情ご存知なのかもしれません。 いずれにせよ、これからもGameMakerには継続した発展を期待したいです。
1月12日のロイターの記事。 https://www.reuters.com/article/playtech-outlook/update-1-playtech-sees-2020-ahead-of-expectations-as-lockdowns-boost-gaming-idUSL4N2JN1PG
YoYoGamesフォーラムのスレッドはスタッフによって強制クローズされてしまいました。「憶測だから閉じます」と。 (こういうのは、感じ悪いですよね)
「Operaが買収した」とは公式に発表されていないようですが、いろんな情報から「買収したのはOperaだろう」ということのようです。
どうなるんでしょうかね……
問題はどうなるのかなんですよね...
こういうのはどんどん報告してOKです! 他の人も同じ問題を抱えている可能性がありますので!
こちら自己解決しました。Exstensionsフォルダ内に以前導入したGMLiveというライブコーデイングのプログラムでエラーが出ていたようでした。それを削除することでコンパイルできました。
気が付いた経緯は、ログの「Output」タブを読むとで上記エラーがExstensionsのコンパイル中に起こったということを発見したので、Exstensionsフォルダ内唯一のファイルだったのGMLiveを削除することで解決しました。
お騒がせしました。
質問や情報共有があるとGamemakerユーザーみんなの役に立ちますので 気になさらず気楽にサクサクっと投稿してください! 原因がはっきりするといいですね(もしよければ投稿していただけるとうれしいです)。
FriendlyCosmonautさんのシステムは結構複雑ですね。 私は取り入れてませんが、一度これをやってみるのは勉強のチャレンジとしてもいいと思います。
お返事が遅くなってしまい申し訳ありません。 新規に作ったプロジェクトで検証したところdepth=-50;でもオブジェクトは表示されました。 なので、私の作り方の問題ですね...。
asaさん、SUPPYさん、makiさん。 お時間を取って調べていただきありがとうございました。 投稿する前に、問題を切り分けて考えられよう、気を付けます。
>FriendlyCosmonautによるdepth systemのチュートリアル >depth = -y;に比べるとかなりコード量は増えますが、レイヤー機能との両立が可能です。 ざっと見たところ、なかなか複雑そうですね。 でもちゃんとやるならば、これ位必要なんですね。 ありがとうございました。
Backgroundは知らないことだらけなのでとても勉強になります。 まさかそんな仕様があったなんて。ありがとうございます。
自分も同じ環境(IDE v2.3.1.542、Runtime v2.3.1.409)で試してみましたが再現しませんでした。
ちなみに、room内にBackground layerがある場合、オブジェクトのdepthの値がBackground layerのdepthの値より大きくなると、オブジェクトはBackground layerで上書きされてしまうため表示されません。 新規プロジェクトの場合、Background layerのデフォルトのdepthは100なので、SUPPYさんの投稿の後半で書かれているような現象が起きます。 これはバグではなく仕様だと思います。 Background layerやAsset layer、Tile layerを使用している場合、念のためそれらのdepthの値を確認してみてください。
GMS1の頃はdepth = -y;のテクニックは広く使われていたようですが、GMS2になりレイヤーの機能が導入されてからは、上で述べたようにdepth = -y;を使っても思い通りの結果が得られない場合があります。 ねこたみんさんの投稿で書かれているようにdepth = room_height - y;のような方法でもこの問題は解決できますが、room外にまでプレイヤーを移動できるようにしたい場合にはdepth = room_height - y;の方法だと上で述べたのと同じ問題が発生します。 そのような場合は、次の動画で紹介されているような手法を使う必要があります。
depth = -y;
depth = room_height - y;
depth = -y;に比べるとかなりコード量は増えますが、レイヤー機能との両立が可能です。
IDE v2.3.1.542 Runtime v2.3.1.409 新規プロジェクトを作成し、room内のランダムな座標に、ランダム(-50以下になるよう)depthを持たせて、 適当なオブジェクトを配置してみましたが、再現できませんでした。
参考になるかは分かりませんが、depthの値を正にした場合、ある値を境に画像が描画されなくなるようです。 新規プロジェクトの場合100以上、作成用のプロジェクトだと300以上で描画されなくなりました。
IDEが2.2xなので自分で確かめられないのですが、 新規プロジェクトの何もないroomにdepthを-50以下にしたオブジェクトを1つ置いたら表示されるでしょうか。 表示されなければバグなのかなと思います。
英語がわからなくてバグ報告がおっくうなんすよねぇ... でもこれかなり致命的なので雰囲気で送ってみようと思いやす。
症状にてるんですけど、解決法てきなやつやってみたんですがダメでした
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サイズのことでしょうかね?
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
ありがとうございます!
バッククォートを3つ
コード
バッククォートを3つ
でこうなります
あれ、皆様みたいに枠内にソースを入れるのってどうすれば良いのでしょう??
簡単ですいませんがビューの真ん中の座標を返すスクリプト
/===============================================================================
描画の対象となるビューのX方向の中央にスプライトやテキストを描画するための
X座標を返すスクリプト。引数に対象となるビューの番号と描画対象物の横幅を入れる。
================================================================================/
function center_xpos(view_number, width){
var xpos = view_get_wport(view_number) /2 - width /2
return xpos
}
きっとよくなる!!
公式コミュニティの、公式発表への反応
https://forum.yoyogames.com/index.php?threads/yoyo-games-is-now-part-of-opera.82893/#post-493513
Automaton記事
https://automaton-media.com/articles/newsjp/20210121-149601/
Operaからのアナウンス
https://blogs.opera.com/news/2021/01/opera-yoyo-games-gamemaker/?utm_source=social&utm_medium=tw_gl&utm_campaign=opera_gaming_blog
公式発表きました
https://www.yoyogames.com/blog/597/yoyo-games-is-now-part-of-opera
youtubeでGMSのチュートリアルされてるShaun Spaldingさんが、「PLAYTECHはどーしよーもない会社だったから、今回の買収でいい方向に進んでほしい」的なことつぶやいてましたね。彼はもとYOYOに勤めてたみたいなので、けっこう内情ご存知なのかもしれません。
いずれにせよ、これからもGameMakerには継続した発展を期待したいです。
1月12日のロイターの記事。
https://www.reuters.com/article/playtech-outlook/update-1-playtech-sees-2020-ahead-of-expectations-as-lockdowns-boost-gaming-idUSL4N2JN1PG
YoYoGamesフォーラムのスレッドはスタッフによって強制クローズされてしまいました。「憶測だから閉じます」と。
(こういうのは、感じ悪いですよね)
「Operaが買収した」とは公式に発表されていないようですが、いろんな情報から「買収したのはOperaだろう」ということのようです。
どうなるんでしょうかね……
問題はどうなるのかなんですよね...
こういうのはどんどん報告してOKです!
他の人も同じ問題を抱えている可能性がありますので!
こちら自己解決しました。Exstensionsフォルダ内に以前導入したGMLiveというライブコーデイングのプログラムでエラーが出ていたようでした。それを削除することでコンパイルできました。
気が付いた経緯は、ログの「Output」タブを読むとで上記エラーがExstensionsのコンパイル中に起こったということを発見したので、Exstensionsフォルダ内唯一のファイルだったのGMLiveを削除することで解決しました。
お騒がせしました。
質問や情報共有があるとGamemakerユーザーみんなの役に立ちますので
気になさらず気楽にサクサクっと投稿してください!
原因がはっきりするといいですね(もしよければ投稿していただけるとうれしいです)。
FriendlyCosmonautさんのシステムは結構複雑ですね。
私は取り入れてませんが、一度これをやってみるのは勉強のチャレンジとしてもいいと思います。
お返事が遅くなってしまい申し訳ありません。
新規に作ったプロジェクトで検証したところdepth=-50;でもオブジェクトは表示されました。
なので、私の作り方の問題ですね...。
asaさん、SUPPYさん、makiさん。
お時間を取って調べていただきありがとうございました。
投稿する前に、問題を切り分けて考えられよう、気を付けます。
>FriendlyCosmonautによるdepth systemのチュートリアル
>depth = -y;に比べるとかなりコード量は増えますが、レイヤー機能との両立が可能です。
ざっと見たところ、なかなか複雑そうですね。
でもちゃんとやるならば、これ位必要なんですね。
ありがとうございました。
Backgroundは知らないことだらけなのでとても勉強になります。
まさかそんな仕様があったなんて。ありがとうございます。
自分も同じ環境(IDE v2.3.1.542、Runtime v2.3.1.409)で試してみましたが再現しませんでした。
ちなみに、room内にBackground layerがある場合、オブジェクトのdepthの値がBackground layerのdepthの値より大きくなると、オブジェクトはBackground layerで上書きされてしまうため表示されません。
新規プロジェクトの場合、Background layerのデフォルトのdepthは100なので、SUPPYさんの投稿の後半で書かれているような現象が起きます。
これはバグではなく仕様だと思います。
Background layerやAsset layer、Tile layerを使用している場合、念のためそれらのdepthの値を確認してみてください。
GMS1の頃は
depth = -y;
のテクニックは広く使われていたようですが、GMS2になりレイヤーの機能が導入されてからは、上で述べたようにdepth = -y;
を使っても思い通りの結果が得られない場合があります。ねこたみんさんの投稿で書かれているように
depth = room_height - y;
のような方法でもこの問題は解決できますが、room外にまでプレイヤーを移動できるようにしたい場合にはdepth = room_height - y;
の方法だと上で述べたのと同じ問題が発生します。そのような場合は、次の動画で紹介されているような手法を使う必要があります。
depth = -y;
に比べるとかなりコード量は増えますが、レイヤー機能との両立が可能です。IDE v2.3.1.542
Runtime v2.3.1.409
新規プロジェクトを作成し、room内のランダムな座標に、ランダム(-50以下になるよう)depthを持たせて、
適当なオブジェクトを配置してみましたが、再現できませんでした。
参考になるかは分かりませんが、depthの値を正にした場合、ある値を境に画像が描画されなくなるようです。
新規プロジェクトの場合100以上、作成用のプロジェクトだと300以上で描画されなくなりました。
IDEが2.2xなので自分で確かめられないのですが、
新規プロジェクトの何もないroomにdepthを-50以下にしたオブジェクトを1つ置いたら表示されるでしょうか。
表示されなければバグなのかなと思います。
英語がわからなくてバグ報告がおっくうなんすよねぇ...
でもこれかなり致命的なので雰囲気で送ってみようと思いやす。
症状にてるんですけど、解決法てきなやつやってみたんですがダメでした
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サイズのことでしょうかね?