GameMaker 日本語掲示板

views
16 フォロー
962 件中 121 から 160 までを表示しています。
2

ご回答ありがとうございます!!
紹介されたスレッド参考にします。

1

前に似たスレッドがありましたので共有します。
https://zawazawa.jp/gamemaker_jp/topic/81
もし、まだわからないことがあれば聞いてください

4
あっばあばばぁ 2023/09/16 (土) 12:00:33

なるほど、確かにクラスの概念がなかったりプレハブがなかったりすると作業量が多くなるほどに大変になるというのはなんとなく想像できますね。
ありがとうございます。とりあえず少し触ってみようと思います。

3
生高橋 2023/09/16 (土) 02:00:45 >> 2

最新のアプデで修正されたみたいです。

3
asa 2023/09/15 (金) 16:32:39 修正

Unityを使ったことがないので比較はできないですが、
GameMakerはGML(Game Maker Language)という独自の言語でプログラミングします(コードを書かないモードで作ることもできますが)。
GMLは型とかクラスとかアクセス修飾子などのプログラミングの難しいあれこれが簡略化されてる分、入門者でも簡単に取っつきやすいと言われています。だれでもすぐにゲームを作り始めることができます。
裏を返すとそれらが使えないのでゲームが複雑かつ大規模になるほど作るのが難しくなる可能性があるのかなと思います。

2
生高橋 2023/09/15 (金) 14:50:13

APIの制約に関しては通常の2Dゲームを作る分にはそこまで不便に感じてませんが、
大ボリュームのゲームや3Dゲーム、物理演算のゲームをつくろうとするとそういった制約が気になってくると思います。

1
生高橋 2023/09/15 (金) 14:46:33

UnityやUnrealみたいな実行中に値を確認したり変更したりできるSceneView、プレハブなどの機能がないのでパラメーター調整やステージ作成がUnityとかに比べると大変です。

2

Win環境で、Alt+F4のウインドウクローズが効かなくなるバグがあるそうです。
テストプレイのウインドウを当該ショートカットで消していたユーザーが発狂していました。

1

IDEを長時間使ってると動作が重くなって、
その状態だとタブが勝手に新しいウィンドウに切り離されちゃうことがよくあったんですが、
その新しいウィンドウに切り離す機能が廃止されたようで誤動作も起きなくなったらしいです。
代わりにタブ右クリックで切り離すコマンドができました。

4

質問があるとこの掲示板も更新されるのでありがたいです。
他の人のためにもなりますので、遠慮なく投稿してください!

3
program_suck 2023/08/21 (月) 16:03:37

すみません、ページはroomの誤字です。
いつも質問に答えてくださりありがとうございます。

2

すいません、タイトルにroomとありますね。roomでしたら、

変数Aにroomを入れて記憶してからroomを移動する

移動先のroomで変数Aに記憶したroomに戻る処理をする
でできます。

ただ、roomを移動するとroom中のインスタンスも破棄されますので、変数をroom間で受け渡すことが出来ません。
情報をroom間で受け渡すには、

  • グローバル変数に記憶する
  • 永続オブジェクト(persistent object)の変数に記憶する
  • 永続roomを使う
    方法があります。
1

ページが何なのか分からないので一般的な回答になりますが、

変数にページを入れてからページを移動する

移動先のページで保存したページに戻る処理をする

でできます。

1
asa 2023/08/05 (土) 12:11:38 修正

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ウィンドウに出力されます
2

上下回転させたい場合はyscaleでしょうか?

1

Drawイベントに何も書いてないか、draw_self();と書いてあると仮定します。

CreateやStepなど、どれかのイベントにて、image_xscale = -1;とします。
これで左右反転します。

2
program_suck 2023/08/03 (木) 22:48:39

ありがとうございます!

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;
}
3
asa 2023/07/11 (火) 20:50:47 修正 >> 2

この後でさらに再現条件を見つけました。
roomサイズがwidth928px, height832pxの時に再現します。他の値に変えると再現しなくなる。
roomサイズが何の関係があるのか訳が分かりませんが、roomサイズで再現するしないが変わるのは事実です。
もちろん、これはただの擬似相関かもしれません。

まとめると

  1. roomサイズがwidth928px, height832px(cameraは640, 360, viewportは1280, 720)
  2. mp_grid_pathでパス移動しているオブジェクトがある
  3. room_goto(), room_restart(), game_restart()を実行する

この条件が重なるとゲームがクラッシュまたはフリーズします。

2

たぶん、このバージョンからだと思いますが、
Path移動中に、room_goto(), room_restart(), game_restart()などでゲームまたはroomを再ロードしようとすると
ゲームがクラッシュしたりフリーズします。
再現のタイミングは一定せず、10回ビルドしたらその内の2回~10回という頻度で起こる感じです。

ランタイムのバージョンを2023.4に下げると起こらなくなります。

今日再現プロジェクトを送ってバグ報告しました。

1

ユーザーの投稿によると、ローカルパッケージの作成とインポートの挙動が変わったらしいです。
自分は以前からこの機能をちゃんと理解できず振り回されてプロジェクトをおかしくしたりしたので
今は怖くてテストしませんが…

24
生高橋 2023/07/03 (月) 02:15:53

指定範囲を0 ~ 1の間に正規化する関数

//Normalizeの略
function norm(value,minValue,maxValue)
{
	return (value - minValue) / (maxValue - minValue);
}
23
asa 2023/06/27 (火) 18:47:29 修正

指定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: 拡大率を反映させるよう修正

7

再インストールしても駄目だったのですが、リンク先の跡形もなく消すソフトを試したら直りました!!
ありがとうございます!

8

謎ですね。
たぶんこれと同じ原因のFeatherの問題をバグ報告しましたので、今後の修正を待ちたいと思います。

7

Createイベントを編集してみたら、見事に警告が復活しました。

なんとも謎と思える動きですね。

6

検証ありがとうございます!

構造体MyDataの_dataを別の名前にしましたが私の環境では消えませんでした。
画像1

一回警告が消えた後でo_testのCreateイベントを適当にいじって更新させるとどうなるでしょうか。また警告出ませんか?
Featherのスキャンのタイミングの関係で消えたり出たりするようなので。

5

構造体の引数にある_dataを別の名前にして、test()を消してから、またtest()を入れるとどうなるでしょうか?
こちらだと、上記の方法で警告は消えました。

Featherの警告の認識が微妙という気がします。

4

出ましたか!
再現性があることが分かっただけでもちょっともやもやが晴れました
ありがとうございます!

3
生高橋 2023/06/05 (月) 18:38:09

再度同じ条件で試してみましたが、たしかにその警告でました!
ただ、これに関しては確かに謎ですね...
単純なバグっぽいきがしますけれど

2
asa 2023/06/05 (月) 15:58:04 修正

検証ありがとうございます!

私のバージョンも同じで
IDE v2023.4.084
Runtime v2023.4.0113
です。

PCの環境が関係してるんでしょうかね?

?[画像1](//pic.zawazawa.jp/files/gamemaker_jp/643d33f6ad979.png)

1
生高橋 2023/06/05 (月) 12:59:41

じぶんのところで再現してみましたが、警告はでませんでしたね。

バージョンは次の通りです。
IDE v2023.4.084
Runtime v2023.4.0113

6
ぽんでり 2023/06/03 (土) 00:56:09

再インストールしたほうがいいかもですね。既にやってたらすみません。
このあたりもご参考にどうぞ。
https://zawazawa.jp/gamemaker_jp/topic/86

3

何が加わって何が変更されたのかをちゃんと把握できる仕組みがほしいですね

2
生高橋 2023/05/30 (火) 18:54:18

公式にマニュアルの差分をわかるようにしてくれーって注文してみようかなぁ

1

はやく教えてよー公式~!
マニュアルの差分をすべて読むなんて不可能だから、こういう情報ほんとにありがたいです!

6

なるほど。やはりYouTubeなどで解説されている通りこのソフトはだいぶ優しい方なのですね…。確かに言われてみればYouTubeの公式チュートリアルも参考になるかもしれません。今まで英語が苦手なので敬遠していましたが、実際に画面を動かしてくれるのでそれを真似るだけでも勉強になるかもですしね。アドバイスありがとうございます!地道に頑張って、とりあえずアホみたいな質問をしてしまわないレベルにはなりたいと思います!