ご回答ありがとうございます!! 紹介されたスレッド参考にします。
前に似たスレッドがありましたので共有します。 https://zawazawa.jp/gamemaker_jp/topic/81 もし、まだわからないことがあれば聞いてください
なるほど、確かにクラスの概念がなかったりプレハブがなかったりすると作業量が多くなるほどに大変になるというのはなんとなく想像できますね。 ありがとうございます。とりあえず少し触ってみようと思います。
最新のアプデで修正されたみたいです。
Unityを使ったことがないので比較はできないですが、 GameMakerはGML(Game Maker Language)という独自の言語でプログラミングします(コードを書かないモードで作ることもできますが)。 GMLは型とかクラスとかアクセス修飾子などのプログラミングの難しいあれこれが簡略化されてる分、入門者でも簡単に取っつきやすいと言われています。だれでもすぐにゲームを作り始めることができます。 裏を返すとそれらが使えないのでゲームが複雑かつ大規模になるほど作るのが難しくなる可能性があるのかなと思います。
APIの制約に関しては通常の2Dゲームを作る分にはそこまで不便に感じてませんが、 大ボリュームのゲームや3Dゲーム、物理演算のゲームをつくろうとするとそういった制約が気になってくると思います。
UnityやUnrealみたいな実行中に値を確認したり変更したりできるSceneView、プレハブなどの機能がないのでパラメーター調整やステージ作成がUnityとかに比べると大変です。
Win環境で、Alt+F4のウインドウクローズが効かなくなるバグがあるそうです。 テストプレイのウインドウを当該ショートカットで消していたユーザーが発狂していました。
IDEを長時間使ってると動作が重くなって、 その状態だとタブが勝手に新しいウィンドウに切り離されちゃうことがよくあったんですが、 その新しいウィンドウに切り離す機能が廃止されたようで誤動作も起きなくなったらしいです。 代わりにタブ右クリックで切り離すコマンドができました。
質問があるとこの掲示板も更新されるのでありがたいです。 他の人のためにもなりますので、遠慮なく投稿してください!
すみません、ページはroomの誤字です。 いつも質問に答えてくださりありがとうございます。
すいません、タイトルにroomとありますね。roomでしたら、
変数Aにroomを入れて記憶してからroomを移動する ↓ 移動先のroomで変数Aに記憶したroomに戻る処理をする でできます。
ただ、roomを移動するとroom中のインスタンスも破棄されますので、変数をroom間で受け渡すことが出来ません。 情報をroom間で受け渡すには、
ページが何なのか分からないので一般的な回答になりますが、
変数にページを入れてからページを移動する ↓ 移動先のページで保存したページに戻る処理をする
でできます。
ありがとうございます!
room中にobjAとobjBがあるとします。
objAが1つしかないなら、objBでobjA.vspと書いて参照できます。 with (objA) vsp でも参照できます。 例 objBで
show_debug_message(objA.vsp); // 値がoutputウィンドウに出力されます
objAが複数あるなら参照したい1つを特定しないといけません。 1つを特定してそのインスタンスidを取得することで参照できるようになります。 objBにおいて、条件を満たすobjAのインスタンスIDを変数instに入れてinst.vspで参照できます。 with (instanceid) vsp でも参照できます。 例 objBで
inst = instance_place(x, y, objA); // ここではobjBと重なるobjAのインスタンスIDを取得 show_debug_message(inst.vsp); // 値がoutputウィンドウに出力されます
上下回転させたい場合はyscaleでしょうか?
Drawイベントに何も書いてないか、draw_self();と書いてあると仮定します。
CreateやStepなど、どれかのイベントにて、image_xscale = -1;とします。 これで左右反転します。
いろいろやり方がありますが、下記のような方法もできると思います。これが正解というわけではなく、1つの方法として参考になればと思います。
ノーマル状態とぶつかり状態があり、それぞれにspriteをセットしています。
STEPイベント
switch (state) { case "normal": if (place_meeting(x, y, objB)) { sprite_index = Player_colision; state = "butsukari"; } break; case "butsukari": // ぶつかり状態の処理 if (ぶつかり状態の終了条件) { state = "normal"; sprite_index = Player_normal; } break; }
この後でさらに再現条件を見つけました。 roomサイズがwidth928px, height832pxの時に再現します。他の値に変えると再現しなくなる。 roomサイズが何の関係があるのか訳が分かりませんが、roomサイズで再現するしないが変わるのは事実です。 もちろん、これはただの擬似相関かもしれません。
まとめると
この条件が重なるとゲームがクラッシュまたはフリーズします。
たぶん、このバージョンからだと思いますが、 Path移動中に、room_goto(), room_restart(), game_restart()などでゲームまたはroomを再ロードしようとすると ゲームがクラッシュしたりフリーズします。 再現のタイミングは一定せず、10回ビルドしたらその内の2回~10回という頻度で起こる感じです。
ランタイムのバージョンを2023.4に下げると起こらなくなります。
今日再現プロジェクトを送ってバグ報告しました。
ユーザーの投稿によると、ローカルパッケージの作成とインポートの挙動が変わったらしいです。 自分は以前からこの機能をちゃんと理解できず振り回されてプロジェクトをおかしくしたりしたので 今は怖くてテストしませんが…
指定範囲を0 ~ 1の間に正規化する関数
//Normalizeの略 function norm(value,minValue,maxValue) { return (value - minValue) / (maxValue - minValue); }
指定xy位置がspriteの中央位置になるように表示します (spriteの原点を無視します)
原点がバラバラの複数の画像を上下左右中央揃えで表示するのに使ってます
// 指定xy位置がspriteの中央位置になるように表示する /// @param {Asset.GMSprite} sprite /// @param {Real} image_index /// @param {Real} x /// @param {Real} y /// @param {Real} image_xscale /// @param {Real} image_yscale /// @param {Real} image_angle /// @param {Real} image_blend /// @param {Real} image_alpha function scr_draw_sprite_ext_vcentered(_spr, _idx, _x, _y, _xscl, _yscl, _angle, _color, _alpha) { var _offsetx = (sprite_get_xoffset(_spr) - sprite_get_width(_spr)/2) * _xscl; var _offsety = (sprite_get_yoffset(_spr) - sprite_get_height(_spr)/2) * _yscl; draw_sprite_ext(_spr, _idx, _x+_offsetx, _y+_offsety, _xscl, _yscl, _angle, _color, _alpha); }
2023/06/28: 拡大率を反映させるよう修正
1000は多いなぁ...w
再インストールしても駄目だったのですが、リンク先の跡形もなく消すソフトを試したら直りました!! ありがとうございます!
謎ですね。 たぶんこれと同じ原因のFeatherの問題をバグ報告しましたので、今後の修正を待ちたいと思います。
Createイベントを編集してみたら、見事に警告が復活しました。
なんとも謎と思える動きですね。
検証ありがとうございます!
構造体MyDataの_dataを別の名前にしましたが私の環境では消えませんでした。
一回警告が消えた後でo_testのCreateイベントを適当にいじって更新させるとどうなるでしょうか。また警告出ませんか? Featherのスキャンのタイミングの関係で消えたり出たりするようなので。
構造体の引数にある_dataを別の名前にして、test()を消してから、またtest()を入れるとどうなるでしょうか? こちらだと、上記の方法で警告は消えました。
Featherの警告の認識が微妙という気がします。
出ましたか! 再現性があることが分かっただけでもちょっともやもやが晴れました ありがとうございます!
再度同じ条件で試してみましたが、たしかにその警告でました! ただ、これに関しては確かに謎ですね... 単純なバグっぽいきがしますけれど
私のバージョンも同じで IDE v2023.4.084 Runtime v2023.4.0113 です。
PCの環境が関係してるんでしょうかね?
じぶんのところで再現してみましたが、警告はでませんでしたね。
バージョンは次の通りです。 IDE v2023.4.084 Runtime v2023.4.0113
再インストールしたほうがいいかもですね。既にやってたらすみません。 このあたりもご参考にどうぞ。 https://zawazawa.jp/gamemaker_jp/topic/86
これはスゲー!!
何が加わって何が変更されたのかをちゃんと把握できる仕組みがほしいですね
公式にマニュアルの差分をわかるようにしてくれーって注文してみようかなぁ
はやく教えてよー公式~! マニュアルの差分をすべて読むなんて不可能だから、こういう情報ほんとにありがたいです!
なるほど。やはりYouTubeなどで解説されている通りこのソフトはだいぶ優しい方なのですね…。確かに言われてみればYouTubeの公式チュートリアルも参考になるかもしれません。今まで英語が苦手なので敬遠していましたが、実際に画面を動かしてくれるのでそれを真似るだけでも勉強になるかもですしね。アドバイスありがとうございます!地道に頑張って、とりあえずアホみたいな質問をしてしまわないレベルにはなりたいと思います!
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
ご回答ありがとうございます!!
紹介されたスレッド参考にします。
前に似たスレッドがありましたので共有します。
https://zawazawa.jp/gamemaker_jp/topic/81
もし、まだわからないことがあれば聞いてください
なるほど、確かにクラスの概念がなかったりプレハブがなかったりすると作業量が多くなるほどに大変になるというのはなんとなく想像できますね。
ありがとうございます。とりあえず少し触ってみようと思います。
最新のアプデで修正されたみたいです。
Unityを使ったことがないので比較はできないですが、
GameMakerはGML(Game Maker Language)という独自の言語でプログラミングします(コードを書かないモードで作ることもできますが)。
GMLは型とかクラスとかアクセス修飾子などのプログラミングの難しいあれこれが簡略化されてる分、入門者でも簡単に取っつきやすいと言われています。だれでもすぐにゲームを作り始めることができます。
裏を返すとそれらが使えないのでゲームが複雑かつ大規模になるほど作るのが難しくなる可能性があるのかなと思います。
APIの制約に関しては通常の2Dゲームを作る分にはそこまで不便に感じてませんが、
大ボリュームのゲームや3Dゲーム、物理演算のゲームをつくろうとするとそういった制約が気になってくると思います。
UnityやUnrealみたいな実行中に値を確認したり変更したりできるSceneView、プレハブなどの機能がないのでパラメーター調整やステージ作成がUnityとかに比べると大変です。
Win環境で、Alt+F4のウインドウクローズが効かなくなるバグがあるそうです。
テストプレイのウインドウを当該ショートカットで消していたユーザーが発狂していました。
IDEを長時間使ってると動作が重くなって、
その状態だとタブが勝手に新しいウィンドウに切り離されちゃうことがよくあったんですが、
その新しいウィンドウに切り離す機能が廃止されたようで誤動作も起きなくなったらしいです。
代わりにタブ右クリックで切り離すコマンドができました。
質問があるとこの掲示板も更新されるのでありがたいです。
他の人のためにもなりますので、遠慮なく投稿してください!
すみません、ページはroomの誤字です。
いつも質問に答えてくださりありがとうございます。
すいません、タイトルにroomとありますね。roomでしたら、
変数Aにroomを入れて記憶してからroomを移動する
↓
移動先のroomで変数Aに記憶したroomに戻る処理をする
でできます。
ただ、roomを移動するとroom中のインスタンスも破棄されますので、変数をroom間で受け渡すことが出来ません。
情報をroom間で受け渡すには、
方法があります。
ページが何なのか分からないので一般的な回答になりますが、
変数にページを入れてからページを移動する
↓
移動先のページで保存したページに戻る処理をする
でできます。
ありがとうございます!
room中にobjAとobjBがあるとします。
objAが1つしかないなら、objBでobjA.vspと書いて参照できます。
with (objA) vsp でも参照できます。
例
objBで
objAが複数あるなら参照したい1つを特定しないといけません。
1つを特定してそのインスタンスidを取得することで参照できるようになります。
objBにおいて、条件を満たすobjAのインスタンスIDを変数instに入れてinst.vspで参照できます。
with (instanceid) vsp でも参照できます。
例
objBで
上下回転させたい場合はyscaleでしょうか?
Drawイベントに何も書いてないか、draw_self();と書いてあると仮定します。
CreateやStepなど、どれかのイベントにて、image_xscale = -1;とします。
これで左右反転します。
ありがとうございます!
いろいろやり方がありますが、下記のような方法もできると思います。これが正解というわけではなく、1つの方法として参考になればと思います。
ノーマル状態とぶつかり状態があり、それぞれにspriteをセットしています。
STEPイベント
この後でさらに再現条件を見つけました。
roomサイズがwidth928px, height832pxの時に再現します。他の値に変えると再現しなくなる。
roomサイズが何の関係があるのか訳が分かりませんが、roomサイズで再現するしないが変わるのは事実です。
もちろん、これはただの擬似相関かもしれません。
まとめると
この条件が重なるとゲームがクラッシュまたはフリーズします。
たぶん、このバージョンからだと思いますが、
Path移動中に、room_goto(), room_restart(), game_restart()などでゲームまたはroomを再ロードしようとすると
ゲームがクラッシュしたりフリーズします。
再現のタイミングは一定せず、10回ビルドしたらその内の2回~10回という頻度で起こる感じです。
ランタイムのバージョンを2023.4に下げると起こらなくなります。
今日再現プロジェクトを送ってバグ報告しました。
ユーザーの投稿によると、ローカルパッケージの作成とインポートの挙動が変わったらしいです。
自分は以前からこの機能をちゃんと理解できず振り回されてプロジェクトをおかしくしたりしたので
今は怖くてテストしませんが…
指定範囲を0 ~ 1の間に正規化する関数
指定xy位置がspriteの中央位置になるように表示します
(spriteの原点を無視します)
原点がバラバラの複数の画像を上下左右中央揃えで表示するのに使ってます
2023/06/28: 拡大率を反映させるよう修正
1000は多いなぁ...w
再インストールしても駄目だったのですが、リンク先の跡形もなく消すソフトを試したら直りました!!
ありがとうございます!
謎ですね。
たぶんこれと同じ原因のFeatherの問題をバグ報告しましたので、今後の修正を待ちたいと思います。
Createイベントを編集してみたら、見事に警告が復活しました。
なんとも謎と思える動きですね。
検証ありがとうございます!
構造体MyDataの_dataを別の名前にしましたが私の環境では消えませんでした。
一回警告が消えた後でo_testのCreateイベントを適当にいじって更新させるとどうなるでしょうか。また警告出ませんか?
Featherのスキャンのタイミングの関係で消えたり出たりするようなので。
構造体の引数にある_dataを別の名前にして、test()を消してから、またtest()を入れるとどうなるでしょうか?
こちらだと、上記の方法で警告は消えました。
Featherの警告の認識が微妙という気がします。
出ましたか!
再現性があることが分かっただけでもちょっともやもやが晴れました
ありがとうございます!
再度同じ条件で試してみましたが、たしかにその警告でました!
ただ、これに関しては確かに謎ですね...
単純なバグっぽいきがしますけれど
検証ありがとうございます!
私のバージョンも同じで
IDE v2023.4.084
Runtime v2023.4.0113
です。
PCの環境が関係してるんでしょうかね?
じぶんのところで再現してみましたが、警告はでませんでしたね。
バージョンは次の通りです。
IDE v2023.4.084
Runtime v2023.4.0113
再インストールしたほうがいいかもですね。既にやってたらすみません。
このあたりもご参考にどうぞ。
https://zawazawa.jp/gamemaker_jp/topic/86
これはスゲー!!
何が加わって何が変更されたのかをちゃんと把握できる仕組みがほしいですね
公式にマニュアルの差分をわかるようにしてくれーって注文してみようかなぁ
はやく教えてよー公式~!
マニュアルの差分をすべて読むなんて不可能だから、こういう情報ほんとにありがたいです!
なるほど。やはりYouTubeなどで解説されている通りこのソフトはだいぶ優しい方なのですね…。確かに言われてみればYouTubeの公式チュートリアルも参考になるかもしれません。今まで英語が苦手なので敬遠していましたが、実際に画面を動かしてくれるのでそれを真似るだけでも勉強になるかもですしね。アドバイスありがとうございます!地道に頑張って、とりあえずアホみたいな質問をしてしまわないレベルにはなりたいと思います!