したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

作成に関する質問スレ

5000名無しさん:2018/12/10(月) 09:15:11 ID:GyGis2ng
>>4999
ルームに余分にスペース(画面揺れの余白)を作り、
画面を二分割するようビューを設定し、
それぞれ三角関数でゆるやかに上下するよう座標を設定

でどうでしょうか

5001名無しさん:2018/12/11(火) 01:40:39 ID:JWqwh74I
>>5000
そこまでは浮かんだのですが...
そのコードがさっぱりで...(viewは2つ必要?)

コード、ともにその説明を交えて書いていただけると狂喜乱舞します。

5002名無しさん:2018/12/11(火) 21:03:53 ID:bp5PiC0g
>>5001
恐らくなのですが

1. view_xview(view_yview)
2. view_wview(view_hview)

3. view_xport(view_yport)
4. view_wport(view_hport)

この4つの変数をあまり理解していない為に上手くいかないのかなと思います

1と2はルームㅤㅤの"どこを"映すか
3と4はウィンドウの"どこに"映すか

この違いです



ざっくり言うと
1と2はカメラです
view_xviewはカメラの位置
view_wviewはフレームの大きさ

3と4は写真をどこに置くかです
view_xportは写真の位置
view_wportは写真の大きさ
です

view_wviewとview_wportは同じ値にしないと歪みます



よって2分割する方法は
m_xview_size = 400; //room_width /2;
m_yview_size = 304; //room_height/2;

view_xview[0] = 0;
view_yview[0] = 0;
view_xview[1] = m_xview_size;
view_yview[1] = 0;

view_wview[0] = m_xview_size;
view_hview[0] = m_yview_size;
view_wview[1] = m_xview_size;
view_hview[1] = m_yview_size;

//ここは自分で考えてみてください
view_xport[0] = ;
view_yport[0] = ;
view_xport[1] = ;
view_yport[1] = ;
//ここは自分で考えてみてください

view_wport[0] = m_xview_size;
view_hport[0] = m_yview_size;
view_wport[1] = m_xview_size;
view_hport[1] = m_yview_size;

で2分割されます

もうここまでくれば分かると思います

5003名無しさん:2018/12/11(火) 21:26:59 ID:bp5PiC0g
より詳しい説明
(読まなくてもおk)

gamemakerには2つの座標があります

1. ワールド座標
2. スクリーン座標

1. ワールド座標
簡単に言うとルームの座標です
または変数x,yのこと

インスタンスがどこに存在しているのかを表す座標です

2. スクリーン座標
ウィンドウのスクリーンの左上を(0, 0)とする座標です
解像度によってウィンドウの大きさが変わります

よくアイワナで使われている解像度は800x600(または800x608)ですが
スクリーン座標だと
左上が( 0, 0)
右下が(800, 600)
になります



つまり
view_xview,
view_wviewは
ワールド座標のどこからどこまでを
ウィンドウに出すかを設定し

view_xport,
view_wportは
スクリーン座標のどの位置に出すのかを設定します


この4つの変数によって
どのオブジェクトを描画しなければいけないのか を
gamemakerが勝手にで判断して描画してくれるわけです

50045003:2018/12/11(火) 21:28:56 ID:bp5PiC0g
修正
解像度によってウィンドウの大きさが変わります

解像度によってスクリーン座標の右下の値が変わります

5005名無しさん:2018/12/11(火) 21:47:52 ID:JWqwh74I
とても丁寧にありがとうございます。
ものすごくわかりやすかったです!
>>5002,>>5003
を参考にすることでいろいろなviewの使い方を発見しました。
本当にありがとうございました。

5006名無しさん:2018/12/20(木) 23:14:16 ID:pgTmCWwE
うんち

5007名無しさん:2019/01/01(火) 23:58:40 ID:YSJjtW1A
ゲーム中に動画を入れたいと思っていろいろ試してたんですけど動画を入れるのって無理ですか?
一応、動画をコマ送りの連続画像と音声に分けて動画のように表示させられるようにはできたんですけど
やたらと容量重くなっちゃうので何かほかの手段があれば教えてください

5008名無しさん:2019/01/03(木) 10:18:07 ID:bp5PiC0g
>>5007
動画サイズに関しては大きくなってしまうのは
仕方ないと思います
まぁ他のやり方としてはリアルタイムレンダリングでしょうか

……大層なことを書いてますが、
要はマリマリオさん作品のOPみたいに
耐久を作るような感じで作ればいいだけです

耐久っぽく作ればいいだけなので
ハードルも低く、いろいろ資料はありますので
何とかできるかもしれないですね



後はspineやOPTPiX SpriteStudioを使うという方法がありますが
こちらに関しては有料だったり、
GM:S以降のバーションを使わないといけないといった問題が発生します
(Live2Dに関しては対応しているのか不明)


(OPTPiX SpriteStudio for Indieを使えば有料の問題は回避できそうではありますが
困ったことにgamemakerに入れようとすると金が必要に)
marketplace.yoyogames.com/assets/948/tmc-optpix-spritestudio-api



といった感じでもう容量を気にせずに入れてしまうのも
有りなのではないかと思います

そこはもう我慢してもらう感じで

5009名無しさん:2019/01/03(木) 20:55:07 ID:ZVAgfU3M
>>5007
俺はgifつっこんだ

5010名無しさん:2019/01/03(木) 23:57:46 ID:YSJjtW1A
回答ありがとう
動画ってのはアニメの一部を切り取って…みたいな感じの物なのでリアルタイムレンダリングは無理そうです
gifは最初それでやってみたものの枚数が多すぎたのか読み込んでくれなかったのでバラにして突っ込んであります
そうするともともと動画用の画像等は合計5MB位だったのにGMに入れると何倍も容量食っているみたいです
容量が大きくなってしまうこと自体は諦めも付くんですがPCの問題かソフトの問題かよくわかりませんが
動画を入れてからゲームの保存やデモプレイの時めちゃくちゃ動きが遅くなってしまって固まることもあるので
入れるのを諦めるか、いったん削除して全部作り終えてからそこだけ追加するような感じにしようかと思います

5011名無しさん:2019/01/07(月) 16:56:16 ID:aliNQbPo
うんち弾幕はどう作りますか

5012名無しさん:2019/01/09(水) 00:57:35 ID:bp5PiC0g
>>5010
1つだけ強引なやり方なのですが思いついたのでトライしてみました
gamemaker本体とは別のexeをgamemakerのウィンドウに被せるようにむりやり表示させてみました

ただタイトルバーの高さやウィンドウの枠の幅を取得するためにdllを作った為
8.1proやGM:S以降のみの対応です

ウィンドウがどこにあっても必ず上に覆いかぶさるようにしました
ウィンドウを移動しても追従します

ただ問題がちらほらとあり
・動画再生中だと閉じるボタンが効かなくなる
 
execute_program()で最後の引数をtrueにしていることによる問題です
falseにしてもいいのですが それだとgamemakerだけ落ちて
動画画面だけ残るという現象が起きるのでfalseはしないほうがいいのではないかと思います

現状では動画再生中はEscape, Alt+F4で動画再生を中断してgamemakerに戻ります



・注意しないと爆音でBGM再生

これが一番問題です
exeが別のせいで音量が別々に区別されるので急に爆音でなりだします
もちろん音がgamemakerから出ているものではありませんので
いくらgamemakerの音量レベルをいじろうが音量は変わりません

動画の音声を調節すればいいと思われるかもしれませんが
まぁ逆にそれが問題で小さすぎるといったことにもなりそうです

音量ミキサーの情報を取得してgamemaker側と音量レベルを
同じにする手段があるにはあるみたいなのですが
流石にどうすれば出来るのかが良く分かりませんでした



現状BGMがあるmp4の動画は非推奨となるんですけども
もしよければ見てください
(一応BGM付きのmp4の動画を添付しておきます
何か他にいい案が思い浮かぶかもしれませんので)

www.mediafire.com/file/cq2421obwb3qcu6/gamemaker_movie_viwer.zip

50135012:2019/01/10(木) 00:24:30 ID:bp5PiC0g
スクリプトの部分をミスってたので上げなおし
音量問題が無事に解決したらアイワナ公開所に上げるかもしれないです

www.mediafire.com/file/bxza6jgyw7j9452/gamemaker+movie+viwer.zip

5014名無しさん:2019/01/14(月) 23:08:43 ID:YSJjtW1A
わざわざありがとう
試してみます

5015名無しさん:2019/02/02(土) 16:51:55 ID:YSJjtW1A
自機を追尾してくる敵を作り、自機が死んだら動きが止まるようにしています。
向きは常に自機の方でいてほしいので画像を何枚か作り自機に対する位置によって画像が変わるようにしました。
このあたりは問題ないんですが、自機が死ぬと左上に判定がいってしまうので死ぬと必ず左上を向いた状態になります。
これだと若干違和感あるので、自機が死んだ瞬間にその方向を向いた状態で固定したいんですが、どうすればいいでしょうか?

5016名無しさん:2019/02/07(木) 20:37:12 ID:bp5PiC0g
>>5015
それは設定によるものですね
Global Game Settings においてErrorの項目で
Treat uninitialized variables value 0にチェックが入っていることによるものです

playerが居なくなってしまったことにより
playerが居ない→じゃあ0にしよう とするため
座標(0, 0)を参照して左上を見ます

instance_exists()で該当のインスタンスが存在してなければ
処理をしないとすると上手くいくはずです

if (...) { exit; }
とstepの最初においておけば上手くいくでしょう

5017名無しさん:2019/02/14(木) 15:13:46 ID:T552jAlI
うんちぶり

5018名無しさん:2019/02/15(金) 21:39:42 ID:KarPUizg
うんちの描画の仕方を教えてください
surfaceです

5019名無しさん:2019/02/16(土) 21:43:08 ID:cgFEPnCA
kamilia とか boshyとかにある
画面を揺らすのはどうすればできますか?

5020名無しさん:2019/02/17(日) 02:54:06 ID:w0x7uIRg
viewをガガガって動かす

5021名無しさん:2019/02/17(日) 22:03:39 ID:cgFEPnCA
メドレーアイワナに使うアイワナって許可とったほうがいいですか?

5022名無しさん:2019/02/17(日) 23:47:25 ID:HkYr5o8k
外野から何も言われたくないなら取ったほうがいいし、気にしないってならとらなくていいよ。

5023名無しさん:2019/02/18(月) 00:59:13 ID:w0x7uIRg
BGMやら耐久の曲やら許可取ってない人がほとんどなのに、自分の耐久使われると怒るやつほんま草

5024名無しさん:2019/02/18(月) 02:00:57 ID:VA8z8KBk
勝手に使われて文句言うやつも謎だけど
許可取ったんですか?とか他人が言うのも謎

5025名無しさん:2019/02/19(火) 01:50:16 ID:czr9.C/Y
著作権違反してる作品をパクっても著作権違反になるよ。しかも元のパクッてた部分と、新たにその人のオリジナル部分の二重で。

5026名無しさん:2019/02/19(火) 08:58:44 ID:pwN.Qq66
そりゃそうだろ
今更なんだよ

5027名無しさん:2019/02/19(火) 13:42:01 ID:OoYEHfBM
>>5025
許可取れ厨はすぐにそう言うがちょっと待った

"それでは論破できていない"

著作権侵害してる奴が著作権侵害されたからといって、自分がしてるから、してきた奴を批判したら
自分がしたのを批判することになるから批判をする資格は無い
山へ帰れ

5028名無しさん:2019/02/20(水) 01:08:13 ID:czr9.C/Y
>>5027
別に論破とかしてないけど…
ただ事実を言っただけでそれを見てどうするかは勝手にしたら良いさ

5029名無しさん:2019/02/20(水) 01:22:45 ID:4X5Wao9Q
著作権とか言うからおかしくなる
原作者が怒るかどうかだけの話だろうが

5030名無しさん:2019/02/25(月) 00:13:39 ID:w0x7uIRg
いいぞー争えー

5031名無しさん:2019/02/27(水) 22:36:43 ID:w0x7uIRg
3D耐久とかアイワナ侮辱してるのか?

5032名無しさん:2019/02/27(水) 23:49:26 ID:K0fTZ7oE
>>5031
チュッ!

5033名無しさん:2019/02/28(木) 01:37:09 ID:w0x7uIRg
>>5032
アイヤー!!

5034名無しさん:2019/03/01(金) 21:47:00 ID:Aln3yfBg
sorariku98の作った3D耐久の内容じゃなくて3D耐久っていう試み事態批判してるとこ懐古厨くせえわ

5035名無しさん:2019/03/02(土) 01:20:00 ID:w0x7uIRg
うんこのAA貼ってるやつが何言っとんねんw

5036Mokuteki:2019/03/02(土) 15:02:28 ID:Aln3yfBg
この掲示板IPからID生成してるのか知らんけど、暗号化の文字列が変わらないから私がMokutekiだとすぐ特定可能なのが辛いとこですね・・・

5037名無しさん:2019/03/03(日) 17:06:59 ID:YeEMAAEY
>>5036
特定されて困る事でもあるんですか?悪い事してなければ困る事無いとは思いますが…

5039名無しさん:2019/03/21(木) 19:28:50 ID:/zuJ8fEU
絶対なりすましだろw

5040名無しさん:2019/06/04(火) 21:32:15 ID:hG2q3XgU
プレイ中にBGMがループするときに画面が一瞬カク付くんですけど、これはBGMの容量が大きいってことでしょうか?

5041<削除>:<削除>
<削除>

5042名無しさん:2019/08/10(土) 01:51:46 ID:2BeYEjKI
>>5041
ゆううつエンジンをそのまま移植するのであれば、
①プレイヤーのstepイベントの一番下にある 重力が反転してたらプレイヤー2に変える の機能をいれる
②saveGameのスクリプトのようにプレイヤー2の座標を保存する
③saveGameのスクリプトのように重力の状態を保存する
といったことが必要だと思いますよ

5043<削除>:<削除>
<削除>

5044名無しさん:2019/08/10(土) 22:29:53 ID:2BeYEjKI
>>5043
「バグが起こり」とありますが、それが何なのか、どういった現象が起きているのか記載することが解決への第一歩です。
ゲームが起動すらしないのか プレイヤーが勝手に落下してしまうのか エラーメッセージが出て終了してしまうの(そのメッセージにはなんと書いてあるのか)など

グローバル変数の保存についてはアイワナ製作@基本・応用wikiの「データのセーブについて」など、やり方を掲載しているサイトがありますよ。

5045<削除>:<削除>
<削除>

5046名無しさん:2019/08/10(土) 23:32:29 ID:hG2q3XgU
GM8で日本語を描写したかったのでいろいろ調べてたんですけど不可能って認識で大丈夫でしょうか?
ある程度ゲームを作った後なので今更それが可能なバージョンに移植しようと思っても1から作り直しになりますよね?
一応メッセージウィンドウなら日本語も出てくるんでそれでどうにかなる範囲で我慢しようとは思ってますが…
もしできる方法があるなら教えていただきたいです

5047名無しさん:2019/08/11(日) 07:34:57 ID:2BeYEjKI
>>5045
あまり連続で質問されると「マナーが悪い」「少しは自分で考えろ」と言われかねないのでお気を付けください。
…とはいえ今ここを利用している人が少ないので問題ではないでしょうが。

前回お伝えした①のところに、プレイヤー2に変えるときにy座標を-9だかしてると思います。
下げてなお埋まるのであれば埋まらない程度に、かつ浮かない程度に数値を下げてみたらどうでしょうか。

>>5046
 >>2311
 mbtextでTwitter検索してみるとやってる人たち出てきたりします。

5048<削除>:<削除>
<削除>

5049名無しさん:2019/08/11(日) 15:58:19 ID:2BeYEjKI
>>5048
画面上のキャプションで正しく表記されているならきちんと保存されているはずですね。

セーブデータのdrawイベントのコードはどうなっていますか?正しくdeath数、タイムを取得できていますか?

5050<削除>:<削除>
<削除>

5051やっくー:2019/08/12(月) 22:16:45 ID:A1k3LEZA
過去の自分のコメントを消していますが、気にしないでください。

>>5049

var i,j,strTime,t,bosx,bosy;

for(i=1; i<=3; i+=1) {
// Data1とかData2とか
draw_set_font(font40);
draw_text(x + (i-1)*240, y, str[i]);

draw_set_font(font12);

// 死亡回数
draw_text(x + (i-1)*240 + 8, y+50,"Death");
draw_text(x + (i-1)*240 + 120-string_width(string(menuDeath[i])), y+50, string(menuDeath[i]));

// 時間
draw_text(x + (i-1)*240 + 8, y+70,"Time");
t = menuTime[i];
strTime = string(floor(t/3600))+":"; t = t mod 3600;
strTime += string(floor(t/ 600)) ; t = t mod 600;
strTime += string(floor(t/ 60))+":"; t = t mod 60;
strTime += string(floor(t/ 10)) ; t = t mod 10;
strTime += string(floor(t )) ;
draw_text(x + (i-1)*240 + 120-string_width(strTime), y+70, string(strTime));

// 選択表示
if (i == select){
for (j=0; j<4; j+=1) {
draw_sprite(sprSpikeUp, -1, x + (i-1)*240 + j*32, y+310);
}
}

bossIconNumber[0,4] = 1; bossIconSprite[0,4] = sprBossIcon01;
bossIconNumber[1,4] = 2; bossIconSprite[1,4] = sprBossIcon02;
bossIconNumber[2,4] = 3; bossIconSprite[2,4] = sprBossIcon03;
bossIconNumber[3,4] = 4; bossIconSprite[3,4] = sprBossIcon04;

for (bosy=0; bosy<8; bosy+=1) {
for (bosx=0; bosx<4; bosx+=1) {
if (bossIconNumber[bosx,bosy]!=0 && bossIconSprite[bosx,bosy]!=0) {
if (menuBoss[i, bossIconNumber[bosx,bosy]]) {
draw_sprite(bossIconSprite[bosx,bosy], -1, x + (i-1)*240 + bosx*32, y + bosy*32);
}
}
}
}

}

このようになっておりますが、どこが悪いのでしょうか。解説していただいたら嬉しいです。
(バグは1デスするごとにメニュー画面のデス数と時間が+0デス、+4660時間20分16秒されるというバグです。ただし、画面上のデス数と時間は正確です。)

また、>>2791のように反転した状態で死ぬと反転した状態でセーブしていないのに反転します。解説を見ましたが、分からず。。。
誰か解説していただいたら嬉しいです。

5052名無しさん:2019/08/13(火) 03:37:00 ID:2BeYEjKI
>>5051
質問とその回答は後で見た方が同じ疑問にぶつかったときの解決の手助けになります。
あなたも過去の質問と回答を見ていますよね?なので質問を消されると困ります。
自己の利益だけ手に入れて周りへ協力しないというのであれば私も協力したくないので
これ以降は他の方が善意で答えてくださるのをお待ちください。

メニュー表記の件、中身をいじってないのであればmenuDeath[i]とmenuTime[i]の取得する数値が誤っていることになるので、
新たなグローバル変数を保存した際に読み込む位置がずれてしまったのでしょう。
「アイワナ 実績」とでも検索してグローバル変数の保存について学んでください。

>>2791 の件はそのまま流れを追って解決しているようなので、あの流れの通りで大丈夫だと思います。

5053やっくー:2019/08/14(水) 13:59:03 ID:A1k3LEZA
>>5052
すみませんでした。個人情報関係で削除しました。一応、過去のコメントの内容を書かせていただきます。

>>5041
ゆううつから移植してねころんで反転させるにはどうすればいいか。

>>5043
>>5042の③がバグが起こり出来ない。どうすればいいか。

>>5045
成功したが、反転セーブにセーブした後リスタートすると足が埋まる。どうすればいいか。

>>5048
成功したが、メニュー画面のデス数と時間が>>5051のようになった。どうすればいいか。

>>5051
>>5052に同じ。

こんなことしか解決策が思いつかなくてすみません。もっとGameMakerについて学びたいと思います。

5054やっくー:2019/08/14(水) 14:01:37 ID:A1k3LEZA
>>5053
訂正
誤:
>>5051
>>5052に同じ。
正:
>>5050
>>5051に同じ。
すみませんでした。

5055やっくー:2019/08/21(水) 22:18:46 ID:A1k3LEZA
連投すみません。前の件はすみませんでした。

ねころんで反転を保存したいのですが、loadGameの中にsaveExeがあるためにロード時の状態(反転しているかしていないか)で始まってしまいます。
しかし、ゆううつを見るとloadGameの中にsaveExeがあるにもかかわらずセーブ時の状態で始まります。
なぜこうなるのかが本当に分からず困っています。
愚問ですが、ご回答していただいたら嬉しいです。

5056名無しさん:2019/08/25(日) 23:12:38 ID:R6PZefn2
>>5055
saveGameではなくsaveExeですよ?中身をちゃんと見てみましょう。

5057名無しさん:2019/08/28(水) 10:03:34 ID:v/HvJKlU
>>5055
中身見れば分かるけどゆううつエンジンの方のsaveExeの中身はセーブ処理なんて一切してない

5058やっくー:2019/08/30(金) 17:44:23 ID:A1k3LEZA
>>5056>>5057
ありがとうございます。

ご指摘の通り、僕は大きな勘違いをしておりました。
原因はkillPlayerとworldのEventsのpress R-keyにあるsaveGame(true)でした。
これらを消すと反転がきちんと保存されましたが、もちろんこのsaveGame(true)には意味があり、
消してしまうとゲームリスタート時にデス数とタイムが保存されません。
その為、ゆううつのScriptsのsaveDeathTimeを参考に次のように変更しました。

①saveGameとsaveExeとObjectsのmenuSelectのデス数とタイムの保存、読み出しの位置を一番最後に持っていく。
②saveDeathTimeを作り、そこに次のように入力する。
var f,tem,i;
f=file_bin_open("save"+string(global.savenum)+".dat",1);
file_bin_seek(f,8);
tem = global.death;
for (i=4; i>0; i-=1) {
file_bin_write_byte(f, min(tem div power(256, i-1), 255));
tem = tem mod power(256, i-1);
}
tem = global.time;
for (i=4; i>0; i-=1) {
file_bin_write_byte(f, min(tem div power(256, i-1), 255));
tem = tem mod power(256, i-1);
}
file_bin_close(f);
③killPlayerとworldのEventsのpress R-keyのsaveGame(true)をsaveDeathTime(true)に変える。
これでいけると思ったのですが、残念ながらデス数とタイムは保存されませんでした。
どうすればいいでしょうか。質問ばかりすみません。

5059名無しさん:2019/08/30(金) 23:29:04 ID:R6PZefn2
>>5508
それ以前に反転情報を保存したうえで、ロード時に反転情報を読み出せていないのが問題なのではないでしょうか?

5060やっくー:2019/08/31(土) 17:25:34 ID:A1k3LEZA
>>5059
ありがとうございます。

おそらくこれまでも反転状態は読み出せていたのですが、>>5058にあるように、
killPlayerとworldのEventsのPress R-keyにあるsaveGame(true)で死ぬ時とロード時に保存してしまった為に
ロード時の状態で始まってしまったのだと思います。
saveGame(true)を消すときちんとした反転状態でスタートしたので、おそらく反転状態の読み出しには成功していると思います。

引き続き>>5058の回答待っています。頭が悪くてすみません。

5061名無しさん:2019/08/31(土) 19:30:56 ID:R6PZefn2
>>5060
(true)の時とセーブをショットした時の(0)とでは何が違うか理解できていますか?

5062やっくー:2019/09/01(日) 12:21:42 ID:A1k3LEZA
>>5061
ありがとうございます。

そういえば理解していませんでした。真と偽だと思いますが、if文でも無いのに書いているので意味がよく分かりません。
saveGame(0)はsaveGameの情報がもしも偽ならsaveGameを実行するという意味でしょうか?
またsaveGame()と何も書いてないこともありますが、それとは何が違うのでしょうか。
調べてもよく分からないので、教えていただければ嬉しいです。

5063名無しさん:2019/09/01(日) 14:32:13 ID:R6PZefn2
>>5062
全部説明しますね。()の中身は引数です。
例えば instance_create(x,y,object) で「(x,y)の座標にobjectを生成する」となりますよね。
この()の中身を変えることで関数の結果が変わってくるわけですが、saveGame()などのscriptは言わば自作関数のように使えます。

script(argument0,argument1, ... ,argument15) で16個まで任意の引数を格納できます。
もちろん引数を使わずscriptの中身だけ実行することも可能なので中身無しの()があるわけです。

それらの引数はscript内のコードでそれぞれ argument0、argument1 といった変数として使われています。
ねころんエンジンのsaveGameの場合、6行目に dyingSave = argument0 と書いてありますね。
つまりtrueと0はこの dyingSave の中に1を入れるか0を入れるか分けています。

そしてscriptの先をみていくと if(!dyingSave) と括られていると思います。
このエクスクラメーションマークは 偽 を表しますので、日本語にするなら
「もしdyingSaveが偽(0)の場合、以下を実行する」となります。

セーブをショットした場合に実行されるのはsaveGame(0)なので、
このif文が実行されルームや座標の保存がなされます。

一方、Rキーイベント等にあるのはsaveGame(true)なので、
このif文が実行されません。つまりルームや座標を保存せず、
デス数やタイム、ボスやアイテムだけ保存する設定になっています。

ここまで説明したら反転の保存をどう設定するかみえてきますか?

scriptと引数について学びましょう。

5064名無しさん:2019/09/01(日) 14:57:42 ID:3OCyoRgc
やっぱりCの勉強ってプログラミングの基礎なんだなあ

5065やっくー:2019/09/01(日) 16:11:04 ID:A1k3LEZA
>>5063
丁寧なご説明ありがとうございました。
無事デス数もタイムもそして反転状態も保存することができました!
感謝してもしきれないです!ありがとうございました!

5066名無しさん:2019/09/17(火) 18:17:50 ID:sJ4uw8Lc
コードを使って画面全体をモノクロにする事って可能ですか?

5067名無しさん:2019/09/18(水) 09:57:15 ID:bp5PiC0g
>>5066
Gamemaker Studioでは出来ます
レンダーターゲットに対してシェーダーを付ければいいので

8.0/8.1に関してはできなさそうです
検索をかけてもStudio以降のページしか見つからなかったです

無理やりスプライトを変えるしかなさそう



以下grayscale shader

// <vertex>
attribute vec3 in_Position; // (x,y,z)
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)

varying vec2 v_vTexcoord;
varying vec4 v_vColour;

void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;

v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}



// <fragment>
varying vec2 v_vTexcoord;
varying vec4 v_vColour;

void main() {

vec4 tex = texture2D(gm_BaseTexture, v_vTexcoord);
float avg = (tex.r + tex.g + tex.b) / 3.0;

gl_FragColor = v_vColour * vec4(avg, avg, avg, tex.a);



// こっちのほうが良い感じに見えるらしい
// vec4 tex = texture2D(gm_BaseTexture, v_vTexcoord);
// float l = dot(tex.rgb, vec3(0.3, 0.59, 0.11));

// gl_FragColor = v_vColour * vec4(l,l,l,tex.a);
}

5068名無しさん:2019/09/18(水) 13:13:30 ID:sJ4uw8Lc
>>5067
8.0なので出来ないみたいなのですね…地道に頑張っていこうと思います。ありがとうございます!
drawやblend等は情報量が少ないのが痛い…ググったりつべ等で調べてみても全然出てこなかったので質問させていただきました

5069名無しさん:2019/09/25(水) 22:10:22 ID:Pfs5GU/s
>>5066
これを使えば多分いける

Shader Extension 1.4 -
gmc.yoyogames.com/index.php?showtopic=492876

詳しい使い方はデモがあるのでそれを見て参考に
あとはサーフェスで上手く描画すればおk

モノクロ以外にもセピア調にも出来たりするから応用が利く
スプライトもこれを使って描画すればimage_blendからさらに広がる

5070名無しさん:2019/10/30(水) 21:34:10 ID:ejWO7y6k
ゆううつエンジンのtimelimitobjectをルームを跨いで使う方法はありますか?
global変数をつかえば出来るのでしょうか?

5071名無しさん:2019/10/31(木) 22:47:51 ID:UZ/4P.AE
>>5070
オブジェクトを開いてPersistentに✔をいれたらどうでしょうか?

5072名無しさん:2019/11/01(金) 20:05:22 ID:ejWO7y6k
>>5071
ありがとうございます!! 出来ました...が、
オブジェクトのpersistentだけだとフリーズしてしまいました。
global変数を用いることによってしっかりと動かすことが出来ました。

5073名無しさん:2019/11/01(金) 23:26:53 ID:UZ/4P.AE
>>5072
フリーズというのはルーム移動した際にゲームが止まってしまって動作しなくなるということですか?
global変数はどのように用いたのかよかったらお聞かせください。

5074名無しさん:2019/11/02(土) 22:04:14 ID:ejWO7y6k
>>5073
そういうことです。
global変数は、

if(global.timelimit=1){
timelimitobject.persistent = true}
if(global.timelimit=0){
timelimitobject.persistent = false} とし、

timelimitcollisionのcollisionイベントで1。
timelimitstopcollisinで0
適用させたいルームのcreation codeで1
その他のルームは0
といった風にしました

5075名無しさん:2020/01/12(日) 10:33:52 ID:g6M8Pi3o
すご

5076名無しさん:2020/03/10(火) 00:42:44 ID:wtgFHAMU
お久しぶりです

5077名無しさん:2020/03/10(火) 19:10:12 ID:dVuuQZ/A
おーい!誰も見てないの?

5078名無しさん:2020/05/24(日) 23:03:03 ID:B5I9KmJ6
自分と同じオブジェクトが複数ある状態で、自分を除いた自分と同じオブジェクトの距離をdistanceに代入したいのですが、
以下のように書いてしまうとdistance=0になってしまいます。助言いただけないでしょうか。

var near = instance_nearest(x,y,Stage02Object);
distance = point_distance(near.x,near.y,x,y);

5079名無しさん:2020/06/02(火) 12:06:42 ID:yPZq.BL.
instance_nearestでは自分を除外できないため自分との距離0が代入されてしまっています
自分を除いた最も近い同じオブジェクトを探索する機能を自前で作るしかありません


コード

distance = 100000;//最小距離を初期化 有り得ない大きい値を入れておく
near = noone;//一番近いオブジェクト(念のため)

//オブジェクト全てを総当たり
with(Stage02Object){
dis = point_distance(other.x,other.y,x,y);//元のオブジェクトとの距離
if(other.distance > dis && id != other.id){//それまでで最も近いかつ元のオブジェクト自身でない場合
other.distance = dis;//最小距離を更新
other.near = id;//一番近いオブジェクトのidに自身を代入
}
}

//distanceに目的の距離の値が代入されている


これで実現できると思います

5080名無しさん:2020/06/07(日) 10:51:57 ID:bp5PiC0g
もっと楽な方法として自身を場外に飛ばしてからinstance_nearestもありかと
var _x; _x = x;
var _y; _y = y;
x += 100000;
y += 100000;

var near = instance_nearest(_x, _y, Stage02Object);
x = _x;
y = _y;

5081名無しさん:2020/06/27(土) 21:52:01 ID:B5I9KmJ6
なるほど!他からの距離を全部確かめて最も短いものですね。
思いつきませんでした。勉強になります。(返信大幅に遅れました。)

5082名無しさん:2020/09/07(月) 22:04:22 ID:fYow.exM
質問です。横に動くリフトを作成しているのですが、乗るとキッド君がリフトに乗り続けられず、おちてしまいます・・・
どうしたらリフトに乗り続けられるでしょうか。

5083名無しさん:2020/09/07(月) 22:30:12 ID:fYow.exM
リフトにのったまま移動ができました。しかし、複雑な動きのルートがまだつくれません。(現状、障害物にあたって切り返すだけの状態)pathを組み込めませんか?

5084名無しさん:2020/09/08(火) 18:35:57 ID:z9xkpscM
プレイヤーが付いて行かないのはhspeed,vspeedが0になっているからです
こちらから合わせてあげればOKです

Spriteを普通のリフトと同じにします
parentをmovingPlatformにします

Createイベント:
path_start(path_name,1,1,false);//例

Stepイベント:
event_inherited();

End stepイベント:
hspeed = x - xprevious;
vspeed_ = y - yprevious;

if (vspeed_ < 0) {
yspeed = vspeed_;
vspeed = 0;
}
else if (vspeed_ > 0) {
vspeed = vspeed_;
yspeed = 0;
}
else{
vspeed = 0;
yspeed = 0;
}

5085名無しさん:2020/09/08(火) 18:44:17 ID:z9xkpscM
hspeed,vspeedが0とは限りませんでした
とにかく実際の移動速度と異なっているためです

5086名無しさん:2020/09/10(木) 22:41:38 ID:fYow.exM
pathを組み込んだ状態でリフトを動かしてもキッド君がおちなくなりました!ご回答ありがとうございました(*´ω`*)

5087名無しさん:2020/09/11(金) 22:07:41 ID:fYow.exM
テストプレイをしようとして難易度を選択するwarpに入ろうとすると、
___________________________________________
FATAL ERROR in
action number 1
of Collision Event with object player
for object roomChanger:

Unexisting room number: 745

といったエラーがでて動きません・・・


また、起動時に画面が真っ暗で、キッド君が画面の左上で動けない状態になったりもします・・・

原因がわかる方、教えてください(*- -)(*_ _)ペコリ

5088名無しさん:2020/09/12(土) 15:14:21 ID:z9xkpscM
前者は存在しないルームを移動先に指定しているということです
yuutu editionなら難易度選択のワープの先、つまりゲーム開始地点のルームはScriptsのSetGlobalOptionの中身 global.Game_Start_Room = ○○で指定されています

後者は詳しい原因は分かりませんが、真っ暗ということは最初に読み込まれるrInitの画面から抜け出せていない可能性はないでしょうか
左上ということは座標が(0,0)になっています。未定義の変数を指定するとエンジンの設定で0と扱われるのでその場合が非常に多いです

5089名無しさん:2020/09/13(日) 22:10:33 ID:fYow.exM
最初に入るマップ名を変えて例のスクリプトに入れたらなぜか両方直りました。ご回答ありがとうございました。

5090名無し:2020/09/16(水) 23:31:55 ID:R3ML97O.
耐久ボスを作っているのですが
16方向に均等にリンゴを飛ばす方法が分かりません。
どのようにしたらいいでしょうか?
因みにタイムラインなしで作成しています。

5091名無しさん:2020/09/17(木) 08:45:33 ID:hEKvfvHk
for文かrepeat文で角度をたしつつ16回まわしましょう

5092名無し:2020/09/17(木) 21:58:22 ID:R3ML97O.
返信ありがとうございます。
repeat文での角度調整の方法が分かりません。
repeat文のページの応用wikiで見てみたのですが、特に記載がないので詳しいことを教えては頂けないでしょうか。

5093名無しさん:2020/09/18(金) 08:34:03 ID:/hzgCb32
>>5092
それでしたら、
repeat(16){
a=instance_create(x,y,obj)
a.direction=i*(360/16)
a.speed=5
i+=1
}

で、いかがでしょうか
ループ回すごとに角度の値を変えています

5094名無しさん:2020/09/18(金) 22:58:57 ID:fYow.exM
本家アイワナ、I WANNA BE THE GUYにおいて、
最初のマップから1つ下のマップに進んだところにある仕掛け、ブロックが次々と瞬間移動を繰り返していくもので、
それ自体は作れたのですが、
実際にやってみるルートと見ていたルートが途中から異なっていて、
初見では落っこちてしまいそうになるワナの作り方が思いつかないので、
教えていただけると助かります。


(ちなみにタイムラインを使用してブロックをうごかしています。)

5095名無し:2020/09/19(土) 00:25:01 ID:R3ML97O.
ありがとうございます!
見ていて気になったことがあったので質問させていただきます。
a.direction=i*(360/16)
a.speed=5
のところなのですが。
a.direction=i*(360/16);
a.speed=5;
のように『;』はつけなくてよいのでしょうか。
変な質問だったらすみません、、、

5096名無しさん:2020/09/23(水) 22:39:29 ID:fYow.exM
>5094について、自己解決できました。

>5095番さんの質問についてですが、自分もアイワナを作っていて、「;」をつけなくても問題なく動いてるので
大丈夫だと思います。

5097名無し:2020/09/24(木) 22:25:03 ID:R3ML97O.
>5096番さんありがとうございます!!

5098名無しさん:2020/10/28(水) 20:41:19 ID:UUXFINC.
5090番の質問と似ていますが8方向に均等にリンゴを飛ばす方法が分からないです

repeat(16){a=instance_create(x,y,obj)a.direction=i*(360/16)a.speed=5i+=1}
これを使うと何故かバグりました
使用しているエンジンはゆううつエンジンです

5099名無しさん:2020/11/02(月) 20:35:29 ID:bp5PiC0g
>>5098
・どのようなバグが発生したのかを書いてください

レスから推測される事

1. そのコードは1行で書かれたものでしょうか?
もしその場合はa.speed=5i+=1のせいでおかしくなっている場合があります。
a.speed=5;i+=1としてみてください


2. objやiが正しく定義されていますか?
タイプミスなのでobjやiが0になっていないでしょうか
確認してみてください

コードが複雑になっていて分からない場合は
以下のコードを確認したい部分の前に書いてみてください。
if(!variable_local_exists("obj")) { show_message("local variable[obj] is not defined.") }
メッセージが出現したらobjが定義されていません。


3. objがオブジェクト名などになっていませんか?
なっている場合は変更してください。
意図しないオブジェクトが生成されたり、エラー文が出現します。

5100名無しさん:2020/11/03(火) 15:17:38 ID:UUXFINC.
>>5099 a.speed=5i+=1の所をa.speed=5;i+=1に変えてオブジェクト名を変えたら出来ました! ありがとうございます!

5101名無しさん:2020/11/25(水) 11:05:29 ID:lh/CIE2.


5102名無しさん:2020/12/08(火) 09:47:29 ID:JJjJww8w
みんな、耐久作ってるかい?

5103名無しさん:2020/12/10(木) 22:27:53 ID:JQ1Np3Po
データを選ぶときにボスを倒した後に出るアイテムのアイコンがなぜかプレイヤーのアイコンになるのですがどうすれば良いでしょうか

5104名無しさん:2020/12/11(金) 15:03:48 ID:a68mr7Bg
>>5103
存在しないオブジェクトの場合、デフォルトでキッドくんになる
今一度オブジェクト名の確認を

5105名無しさん:2020/12/11(金) 17:01:17 ID:JQ1Np3Po
>>5104アイテムのオブジェクト名をbossiconにしたらちゃんと表示されました ありがとうございます!

5106名無しさん:2020/12/26(土) 08:58:17 ID:FIh5NQIE
「gms2」で他ルームにあるインスタンスの情報を取得できる方法を探しています
gms2のバージョン: 2.3.1.542(IDE)

layer_set_target_room(room2)
var e = layer_get_all_elements("Instances")

for(var i = 0; i < array_length(e); i++)
{
if(layer_get_element_type(e[i]) == layerelementtype_instance)
{
var a = layer_instance_get_instance(e[i])
show_message("(" + string(a.x) + ", " + string(a.y) + ")")
}
}
layer_reset_target_room()

room1からroom2に配置されているインスタンスを取得して座標を表示させようとしていますが
a.xの部分でエラーが起きてしまいます

どうやら現在のルームがroom1なので、参照しようとすると
room1には変数aのインスタンスが無いからエラーがでてしまうようです

一応似たような手順でスプライトの場合であれば座標を持ってこれますが
対象のオブジェクトには少しばかりコードが書かれている為、できるのであればインスタンスのまま座標を持っていきたいです

どのようにすれば他ルームにあるインスタンスの座標の情報を持ってこれるでしょうか?
誰か情報をお持ちでしたらお願いします

5107名無しさん:2021/01/06(水) 02:33:05 ID:j8eoQjpc
規制かけすぎなんだよ

5108名無しさん:2021/01/06(水) 08:13:33 ID:j8eoQjpc
>>5106
global変数じゃダメ?

5109名無しさん:2021/01/07(木) 12:20:36 ID:FIh5NQIE
>>5108
出来なくはないです
ただ、もう少し状況を詳しく書くと検索対象のインスタンスは様々なルームに配置されています
そして1つのルームに複数個設置してある可能性もあります

そのような状況なので1つずつ座標を指定すると間違いなく入力ミス等が発生する為
このような事をしています

5110名無しさん:2021/01/07(木) 14:14:27 ID:rudh8ZSg
>>5109
それはglobal変数に座標保持しようとしてますか?
もしそれならインスタンスを保持ではやりづらい?
インスタンスの事いってるなら申し訳ない

5111名無しさん:2021/01/07(木) 21:11:49 ID:FIh5NQIE
>>5110
そもそもの話、インスタンスから座標を取得しようとするとエラーが起きるのでどうするかって話ですね
インスタンス自体は別のルームにあって現在のルームにないので、保持したところで結果は同じになるだろうという事です

(もう一度書くと、別のルームにあるインスタンスの座標を使って、現在いるルームであれこれするのが目的)

5112名無しさん:2021/01/08(金) 14:34:51 ID:kGXXKlOs
>>5111
別のルームにあるってことはcreate自体はされてるんですよね?
例えば、
global.obj=instance_create(略)
を予めした場合、他のルームであってもglobal.objから座標取得できますが認識間違ってます?

5113名無しさん:2021/01/09(土) 10:47:29 ID:FIh5NQIE
>>5112
どうやらこちらの勘違いのようです
申し訳ないです

自分が取得したい情報はインスタンスの座標ではなく、
特定のルームで特定のインスタンスが配置される座標だったようです
(layer_instance_get_instanceで対象のインスタンスのIDが取得できるので、それで勘違いをしてしまったようです)

もう少し書きますとルームエディターでオブジェクトを配置すると思いますが
その配置した座標のデータを取得しようとしています

それがスプライトの場合であれば(gms2ではスプライトをそのままルームに配置することができる)
layer_sprite_get_xによってその座標のデータを取得することができますが
インスタンスの場合ではlayer_sprite_get_xに相当する関数が見つからなく
他に代替できるような方法がないのか?といった感じです

ルームによっては全く遷移していない可能性があるため
対象のインスタンスが1度も生成されていない場合もあります

5114名無しさん:2021/03/23(火) 09:59:57 ID:nZpU4Om6
質問どうぞ

5115名無しさん:2021/04/20(火) 13:07:10 ID:rvV.vJJg
質問どうぞ

5116名無しさん:2021/05/08(土) 10:34:11 ID:3kB8ES5k
Game Overになった時はBGMがそのまま流れるけどリスタートしたらBGMが最初から流れるのですがどうすればいいでしょうか
ゆううつエンジンです

5117名無しさん:2021/05/10(月) 10:46:09 ID:S45qufug
>>5116
このスレで「BGM」で検索してみるといいよ

5118名無しさん:2021/05/10(月) 17:07:02 ID:3kB8ES5k
>>5117検索したら見つかりました ありがとうございます!

5119名無しさん:2021/08/22(日) 02:32:06 ID:jMcKF6dc
クリボー的な敵を作っているのですが、下にブロックがないときは折り返すといった動作はどのようにすればよいのでしょうか

5120名無しさん:2021/08/24(火) 10:42:10 ID:OaWVGAGg
>>5119
見えないオブジェクトを横に置き、それに触れたら(コリジョンイベント)逆方向にするというのが一番簡単かと思います

5121名無しさん:2021/08/27(金) 01:36:18 ID:jMcKF6dc
>>5120
ありがとうございます!

5122名無しさん:2021/09/15(水) 21:49:42 ID:jMcKF6dc
連投になってしまって本当に申し訳ありません
「マウスが触れている」時は○○するといった動作はどのようにするのでしょうか

一応「gamemaker mouse collision」で調べては見たのですが、少し内容がそれてると感じたため質問しました

5123名無しさん:2021/09/16(木) 09:52:30 ID:oeG5Sn8I
>>5122
もう少し詳しくお願いします

やりたいことは
・マウスが触れている間ずっと○○する

調査した結果
・マウスが触れた瞬間のイベントは検知できるが、ずっと○○させることができない

こんな感じでしょうか?

もし相違があるようでしたら、少し内容がそれる部分の説明があると答えやすいかと思います

5124名無しさん:2021/09/17(金) 18:37:48 ID:jMcKF6dc
不備がありすみません

やりたいことは「マウスが触れたら一度だけ」音を鳴らすで、
調べたら説明は難しいのですがttps://www.reddit.com/r/gamemaker/comments/5ombvx/beginner_mouse_collision_with_solid_object_help/ のようにそれてしまいます

5125名無しさん:2021/09/18(土) 16:00:19 ID:aP43WAZM
Createイベントなどを選べるメニューからMouse→Mouse enterで触れた時一度だけ実行されるイベントになりますがいかがでしょうか

5126名無しさん:2021/09/18(土) 21:09:54 ID:jMcKF6dc
ありがとうございます!
無事できました!
しっかり調査できずにすみませんm(_ _)m

5127小野寺:2021/09/22(水) 07:36:24 ID:kfYuhWa.
デバッグ用で一時的に”死”を無効にする(死の概念が書かれたプログラムを無効化)する方法または死の概念が書かれた場所はどこにありますか?教えてください
エンジンはゆううつです

5128名無しさん:2021/09/22(水) 10:35:02 ID:CqSqDTKM
>>5127
script内のkillplayerです

5129小野寺:2021/09/23(木) 05:58:14 ID:kfYuhWa.
ありがとうございます!
大変助かりました。

5130小野寺:2021/09/23(木) 09:24:16 ID:kfYuhWa.
画面の半分だけリンゴ(さくらんぼ)を降らせたくて
a=instance_create(random(400),0,ringo)
a.vspeed=2
というプログラムをstepに書いたのですが、想像以上にリンゴの密度が高くなってしまいました。
そこで密度を減らす書き方やプログラムはありますか?やはり地道にtime lineにコピペしないといけないのでしょうか?教えてください。

5131名無しさん:2021/09/24(金) 10:50:09 ID:HGOUh1fs
if (random(100) < 10)
{
a=instance_create(random(400),0,ringo)
a.vspeed=2
}
こんな感じでどうでしょう

5132小野寺:2021/09/24(金) 12:29:23 ID:kfYuhWa.
なるほど、そういう書き方がありましたか、勉強になりました!
ありがとうございます。

5133小野寺:2021/09/24(金) 13:01:03 ID:kfYuhWa.
すみません上で5131さんに
if (random(100) < 10)
{
a=instance_create(random(400),0,ringo)
a.vspeed=2
}
というプログラムを教えてもらったのですが少し問題(私の知識不足)があり、教えてもらいたいのですが
x座標400から800までのあいだにリンゴの雨(上記のプログラム)を降らせたいのですが
randomではどうも0〜?のランダムな実数値を返すようでx座標400から800ということができなくて困っています。
どなたか教えてくださると幸いです。

5134小野寺:2021/09/24(金) 13:13:55 ID:kfYuhWa.
連投失礼します
私が作ろうとしている弾幕の詳細を説明しておきます。
そのほうが教えてくださる側も教えやすいと思いますので、
リンゴの雨が降ってくる→リンゴ止まる→リンゴが中心(正確にはx座標350〜450)を避けるようにして左右に分かれる→その後リンゴが再度下に落ちてゆく

5135名無しさん:2021/09/25(土) 06:56:36 ID:HGOUh1fs
random()+200とかでx座標を調節すればいいですよ。

5136名無しさん:2021/09/25(土) 13:46:52 ID:jMcKF6dc
>>5133
random_range(最小値,最大値)にすれば、最小値〜最大値でランダムな数が選ばれます

5137小野寺:2021/09/25(土) 15:17:13 ID:kfYuhWa.
5135さん 5136さん助言ありがとうございます。今回はrandom_rangeを採用させていただきます。
大変助かりました!ありがとうございます!

5138小野寺:2021/09/26(日) 19:20:38 ID:kfYuhWa.
stepに

if (random(100) < 10)
{
a=instance_create(random(400),0,ringo)
a.vspeed=2
}
alarm[0] = 10

alarm0に

a.vspeed=0

と書いたのですがvspeedの値が何故か0にならず弾幕が停止しません。
alarmの使い方を改めて調べてもあってるように見えるのですが、どこか間違っているのでしょうか?
教えてください。
(又time lines上でspeedなどの値を0にする方法もあれば教えてくださると助かります)

5139名無しさん:2021/09/26(日) 20:45:38 ID:HGOUh1fs
stepイベントに書いているので常にalarm[0] = 10でリセットされています。
ringoのcreateイベントに書いてはどうでしょう。

time lines上でもオブジェクト名やインスタンス名を指定すれば変更出来ます。
ただし、同名のインスタンスがある場合は最後に作成されたインスタンスにしか適用されません。

5140小野寺:2021/09/27(月) 13:43:07 ID:kfYuhWa.
なるほど、失念してました。ありがとうございます。

5141小野寺:2021/09/27(月) 13:59:02 ID:kfYuhWa.
連投失礼します。
ringoのcreateイベントに書くのはa.vspeed=0ってことですか?(これじゃ止まらないので多分私の理解不足だと思いますが)
こういう止まる弾幕を作るのは初めてなのでもう少し助言をいただけると幸いです。
(コロナワクチン接種の翌日で意識がはっきりとしてないので言い回しがおかしいところがあるかもしれません。ご了承ください。)

5142名無しさん:2021/09/28(火) 08:01:45 ID:HGOUh1fs
ringoのcreateイベントに書くのはalarm[0] = 10です。

5143小野寺:2021/09/28(火) 17:26:38 ID:kfYuhWa.
ringoのcreateイベントalarm[0] = 10を書いても止まりませんでした。
現在の状況を報告しておきますね。

ringoのcreateイベントに
image_speed=0

alarm[0] = 5

リンゴの雨を降らす(名ringoame)のalarm0に

a.vspeed=0

stepに
if (random(100) < 10)
{
a=instance_create(random(400),0,ringo1)
a.vspeed=2
}


ringoのcreateイベントに
image_speed=0

alarm[0] = 5

alarm0に
a.vspeed=0

リンゴの雨を降らす(名ringoame)のstepに
if (random(100) < 10)
{
a=instance_create(random(400),0,ringo1)
a.vspeed=2
}
の場合もやってみましたが同様に止まりませんでした。
何か解釈違いやプログラムミスがあるのでしょうか?教えてください

5144名無しさん:2021/09/28(火) 17:50:59 ID:zGdu82tg
>>5143
aの変数はringoame内であってringo内ではないんじゃない?
それなら、a.vspeedの下にalarmを設定してringoameのアラームイベントでvspeed=0でいいかも

5145小野寺:2021/09/28(火) 19:56:45 ID:kfYuhWa.
a.vspeedの下にalarmを設定とはringo内でしょうか?それともringoameでしょうか?
もしringoame内の話なら5138と同じ結末になる気がするのですが、
(現在頭痛薬を服用して頭が回ってないので明日もう一度5144さんの助言読み直したいと思います。)

5146名無しさん:2021/09/28(火) 22:13:40 ID:aP43WAZM
>>5143
前者はアラームをセットしたオブジェクトがringoなのにアラームイベントがあるオブジェクトがringoameで異なるのでalarm[0]は動きません
後者は変数aがringoameオブジェクト内で宣言されているのでringoオブジェクトの中には存在していません
それともringo1オブジェクトがringoオブジェクトの間違いでしょうか?
質問ですが、林檎が止まる→分かれる→下に落ちるという流れは全ての林檎に一斉に適用されるのか、それとも落ちてき次第別々に動くのでしょうか?どっちにしてももう少し複雑なコードになると思います
アラームをセットする場所ですが、stepイベントは毎フレーム実行され続けるので別の場所で設定する必要があります

5147名無しさん:2021/09/29(水) 05:11:08 ID:zGdu82tg
>>5145
アラームは一回だけ設定ね
1step毎にalarmが設定されてるから動かない

5148小野寺:2021/09/29(水) 06:21:08 ID:kfYuhWa.
すみませんこれは私のミスです。おっしゃっている通りringo1はringoオブジェクトのことです。

ここから質問返答です

実際に書き起こすと考えに矛盾があったので質問を最後に書きます。
以下矛盾ありの文
1.そうですねすべてのリンゴに一斉(ringoameの弾幕だけ)に適用するようにしたいですね。
2.詳細にいうと林檎が止まる(この時点でリンゴの雨を降らす必要がないのでringoameをinstance_destroy()で消す。)→
3.分かれる(x座標350〜450を中心に停止したリンゴがよける←の部分について、私の発想ではringoame1(x座標0から400にリンゴの雨)とringoame2(座標400から800にリンゴの雨)を作り、指定した時間になったらhspeed でringoame1と2をx座標350〜450を中心によけるように調整する。)→
4.下に落ちる(これはvspeed で下に落とすだけでよいと思います。)

質問

2でこの時点でリンゴの雨を降らす必要がないのでringoameをinstance_destroy()で消す。と書いたのですが、ここでringoame1と2を消してしまうと3で言っていた指定した時間に座標コントロールができなくなってしまいます。なのでringoameのリンゴの雨を降らすコマンドだけを無効にする方法などありますか?
回答漏れがあったら教えてください

長文失礼しました

5149名無しさん:2021/09/29(水) 07:30:06 ID:HGOUh1fs
ringoameの弾幕だけ止めるということは、画面内にそれ以外のリンゴがあるということですか?
それによって変わってきますね。ないのならフラグで管理する方法がありますね。

5150名無しさん:2021/09/29(水) 13:26:59 ID:Do866OFs
>>5134
>>5138
stepの中身は1ステップごとに上から順に行われていきます。

一行ずつプログラムを日本語に翻訳していくと、

「もしrandom(100)※0~100の中で選ばれたランダムな数字 が10未満だったなら、

座標(random(400),0)にringoオブジェクトを生成
そのvspeedは2」
alarm[0]を10step後に起動

これを毎ステップやっているので、alarm[0]は毎ステップ10step後起動を命令されてずっと10step待機状態が無限に続きます。

random(100)の内容も毎ステップやっているのでだいたい10stepに1回くらいは条件を満たしてvspeedが2になります。
その後特に命令されていないのでずっとvspeedは2のままです。


一気に全部作ろうとせず、段階に分けて作り上げていくとどこができていないのかわかるので、初回に限り懇切丁寧に説明します。

①ringoとは別にringoを降らせるオブジェクトを作る
オブジェクトringo_furasu(仮名 を作り
create eventでalarm[0]=1にして、alarm[0]には

a=instance_create(random(400),0,ringo)
a.vspeed=2
alarm[0]=10//この数字を増やせば作る間隔が長くなり密度が減ります

【テストプレイで実験】部屋にこのオブジェクトだけ置いて起動して好みの密度になるか試す

②ringoを止める部分を作る
これは止め方によりますが、全部のringoを同時に止めると仮定すると with を使うと楽です。
降り始めから止めるまでの時間が決まっているのであれば、さっきのringo_furasuのcreate eventにalarm[1]=200(止めたいステップ数)を書いておいて
alarm[1]の中身に

with(ringo){
speed=0
}//ringo止める

【テストプレイで実験】
これで"すでに画面に出ている"ringoのスピードが0になります。ただしずっとringo_furasuが作り続けているので上からじゃんじゃん降ってきます

③ringoの生産をやめる
ringoが作られているのはringo_furasuのalarm[0]が起動しているせいなので、alarmを止める場合はalarm[0]=0と設定すると起動しなくなります。
さっきのに追加で

alarm[1]の中身に

alarm[0]=0//作るの止める
with(ringo){
speed=0
}//ringo止める

【テストプレイで実験】
これで新たに作られず、画面上のringoも止まった状態になります。

④左右に分ける
中心の座標に幅があるのが謎ですがx座標400を中心に左右分けるとして、
(そもそもrandom(400)のせいで左側にしかないですが、全体降らせるなら元の生成をrandom(800)とかでも可)

左右に分けるタイミングが決まっているなら止める時と同様にalarm[2]=起動時間 でcreate eventに書くか、alarm[1]で止めたところに alarm[2]で書いてもいいです。
alarm[2]の中身に

with(ringo){
 if(x>400){
  hspeed=2//任意の速度
 }//もし自分のx座標が400以上なら右に
 else{
  hspeed=-2//以下略
 }//もしそれ以外なら左に
}

【テストプレイで実験】
これで左右に動くと思います。止まりませんが

⑤再度降らす(下方向に変える)
次のalarmでhspeedを0にしてvspeedをいれてください(雑

【テストプレイで実験】
希望のものは作れたでしょうか


こんな感じで作業を分解して作ってチェックするのと、メインのオブジェクトを管理して動かすオブジェクトを作ると楽かなと自分は考えています。

5151名無しさん:2021/09/29(水) 13:39:33 ID:P2kQxxrw
要はアラームの動かし方がわかってないのが問題じゃないかな
上にも書いてあるとおりstepで常に設定すると動かないということを理解できれば上手くいくはず

5152名無しさん:2021/09/29(水) 17:24:49 ID:aP43WAZM
10フレームに1回という条件は何も乱数を使わなくても
<Createイベント>
time = 0;

<stepイベント>
if(time mod 10 == 0){
 //省略
}
time += 1;
とすればきっかり10フレームに1回になります

5153小野寺:2021/09/29(水) 18:52:35 ID:kfYuhWa.
5150さん

①〜④は想像どうりの動きで感謝してもしきれません。特に④はとても勉強になりました。
質問なんですが、⑤についてalarm[3]に
hspeed=0
vspeed=2
と適当に入れ、その後createにalarm[3] = 300(alarmのなかで一番長いstep)と書き込んだのですが
hspeedは0にならないし、vspeed=2すら働かないんですけどこれじゃダメなんですかね?私はこの方法しか知らないのですが、、、
speed達を働かせるにはどうすれば良いのでしょう?

5151さん

基礎の基礎はわかっているが応用が利いていない感じですね。
どの動画やサイトを見ても「alarmは指定した時間にコマンドを実行するもの」的なことしか言っていないので実際こういう場で学ぶしかないと思っております。

5152さん

time modなるものがあるのですか、、、勉強になりました


最後に私の意識の違いがあるか確認したいのですが、

createは1回だけ中に書いたプログラムを実行するもの
alarmは時間指定できるcreateのようなもの

と認識しているのですがもしかして間違っていますか?
教えてください。

5154名無しさん:2021/09/29(水) 19:02:43 ID:HGOUh1fs
>>5153
それだとringoameのスピードになるので、ringo.hspeed=0にしてください。

5155名無しさん:2021/09/29(水) 20:53:51 ID:Do866OFs
>>5153
どのスピードを変えたいか ですね。
先の通り ringo のspeedを変えるには with でオブジェクトを指定する必要があります。
ただ hspeed=〜 としても動くのはそのオブジェクト自身であるringo_frasu ですので。
>>5154 さんのやり方でもできますが、複数ある場合は一番新しく生成されたインスタンスにのみ適用されるので、with が適しているのかなと思います。

ついでに最後の質問についてですが、

・createは生成されたそのstepでのみ1度だけコードが実行されます。ほぼすべての中で一番最初に処理されます。
・stepは1step毎に実行されます。毎度実行されるので条件をつけることで回数を制限できます
例)if(FLAG=0){
instance_create(x,y,ringo)
FLAG+=1
}
これで1回しか作られなくなります。条件を(FLAG<10)とかに変えれば10回だけ とかもできます。

・alarmは指定のタイミングで個別に実行できます。コード内に再度同じalarmを指定すれば自動で繰り返しが可能ですし、違うalarmを指定すれば耐久も作れます。
 しかし1つのオブジェクトにつき0〜11までの12個しか作れません。
・それを無限大に作れるのがtimelineで、何個でも作ることができます。しかし同じコードを繰り返しするにはその都度処理stepを追加していかなければなりません。
繰り返し使うなら別途オブジェクトを作ってalarmの方が制御は楽かなと思います(今回のringo_furasu的な)

5156小野寺:2021/09/29(水) 22:45:12 ID:kfYuhWa.
なるほどwithですで指定してやればよかったんですね。
それにstepに条件を付けて回数制限などもできるのですね、大変勉強になりました!
最後に皆様のおかげで想像どうりの弾幕が作れました。
また今後も質問をしに来るのでその時も助言などを下さると有難いです。

5157小野寺:2021/10/08(金) 16:20:40 ID:kfYuhWa.
背景(?)などを一時的に差し替える方法
又は画面の一部を一時的に明るくする方法を教えてください。

説明ではわかりにくいのでイメージ参考URLを張っておきます。

://youtu.be/iQFq5Bw1DoU?t=157
://youtu.be/7hvG7opfHC8?t=94

※前の文字を消しているので追加してください

5158名無しさん:2021/10/10(日) 09:42:48 ID:HGOUh1fs
オブジェクトで明るい円をつくって、depthで奥に設置して動かせば動画のように出来ます。

5159小野寺:2021/10/10(日) 23:11:09 ID:kfYuhWa.
調べたのですが、明るい円の作り方がどうしてものっていません教えてもらえませんか??

5160名無しさん:2021/10/10(日) 23:34:56 ID:HGOUh1fs
>>5159
円の画像をネットで探すか、自分で描いて取込むだけです

5161小野寺:2021/10/11(月) 00:00:10 ID:kfYuhWa.
なるほど、普通に半透明の白円を追加してやればよかったのですね

5162小野寺:2021/10/22(金) 20:37:32 ID:kfYuhWa.
よく耐久などで見るリンゴなどでマークや文字などを書いて飛ばしたり動かすというのがありますが、あれはどうやってるのでしょうか?
線や円などはわかりますが、複雑な ?のマークや文字などはどうやって作っているのでしょうか?
instance_createやtime loneなどでちまちまやってるのでしょうか?
わかる方教えてください

5163名無しさん:2021/10/23(土) 13:49:57 ID:jMcKF6dc
>>5162
もういい加減、自分で解決しようとは思わないのでしょうか?
>>5159 なんて、さすがに自分で考えた末わからなかったから質問したようには見えません。
たしかにあなたの質問した内容は調べたら載っていませんが、他wikiなどを見てそれを応用すれば簡単にできる内容です。

では上記を踏まえて質問に答えますが、関数を使ってやるのではなく、外部ソフトを使ってやる場合が多いです。
その外部ソフトはご自分で探してください。

5164名無しさん:2021/10/23(土) 15:36:55 ID:aP43WAZM
>>5163さんの言う通り質問をする前にまずは自分で徹底的に調べるのものだと思います
ですが、>>5162さんは外部ツールではなく、アイワナである以上最終的にはゲームメーカー内の関数で実装することを想定しているのではないでしょうか
外部ツールを補助的に使うのであれば、えるなちゃんさんの図形作成ツールなどが役に立つと思います

5165名無しさん:2021/10/23(土) 18:33:50 ID:jMcKF6dc
>>5164
すみません、私も外部ツールの使用を中で実装することを想定にしていました、説明不足だったためにすみません

5166名無しさん:2021/10/23(土) 18:35:29 ID:jMcKF6dc
誤字&連投すみません
「外部ツールの使用を関数で実装することを想定にしていました」
です。

5167名無しさん:2021/10/23(土) 21:27:22 ID:jMcKF6dc
再誤字&再連投すみません
「外部ツールの使用し、後に関数で実装することを想定にしていました」
です。

5168小野寺:2021/10/29(金) 20:19:07 ID:kfYuhWa.
多忙で返信遅くなりました。
5163さんへ
5159に関しては当時spritesに画像を入れてオブジェクト(当たり判定のある何か)を作る。という概念しかなく、他に何か方法があるものだと思っていました。不快にさせてしまったのであれば大変申し訳ありません。

5164さんへ
元々I wanna create a bossという海外の方が作った図形や文字を書ける外部ツールを使っているのですが、リンゴなどを飛ばすことしかできなく、図形だけを書いてその後の操作(プログラム)を弄ることは大変難しくなっていて、それなら自分で文字を書くプログラムを打ったほうがいいのかなと思い質問させていただきました。
皆さん外部ツールではなく自分でプログラムしているものだと思い込んでしまっていました申し訳ありません。
(えるなちゃんさんの図形作成ツールのも存じ上げていました。)

最後に作成に関する質問スレの皆様、私の質問が皆様を不快にしてしまったこと大変申し訳ありませんでした。

5169名無しさん:2021/11/02(火) 08:47:41 ID:n7Sdpaks
メニュー画面などのGUI作る時ってみなさんどうやってますか?

専用のツールなど出来る限り楽に作る方法があれば教えて欲しいなと思いまして
(可変する部分があるのでルームエディタ内だけで完結することができないんですよねぇ……)

5170名無しさん:2021/11/02(火) 13:26:18 ID:XCSlEkoE
自分は外部ツールはあるのかすらわからないから自分で作ったな
可変する部分があるならルームに1つ可変部分を制御するオブジェクトの置くのはダメ?

5171名無しさん:2021/11/02(火) 21:27:26 ID:n7Sdpaks
制御するオブジェクト……んまぁそれが無難ですよね
ステートマシンの設計とかも含めていろいろと模索するしかないか

ありがとうございます

5172名無しさん:2021/11/10(水) 15:41:11 ID:pvDQllJo
トリガーで画面を一瞬光らせるオブジェクトの作り方教えてもらえないでしょうか

5173名無しさん:2021/11/10(水) 19:05:05 ID:pvDQllJo
解決しました

5174名無しさん:2021/11/12(金) 14:13:57 ID:pvDQllJo
Roomごとに死んだときRキーでBGMがリセットされる部屋と流れ続ける部屋を分ける方法を教えて下さい

5175名無しさん:2021/11/12(金) 15:53:23 ID:38c1jrPY
過去ログ参照すればあるはず

5176名無しさん:2021/11/15(月) 17:15:52 ID:pvDQllJo
過去ログを調べてみたのですがそれらしい項目を見つけられませんでした・・・

5177名無しさん:2021/11/15(月) 18:01:59 ID:eXDg2NGU
いろいろとアプローチは考えられます

・特定のルームにいるかを確認する
room == rmTitle && room == rmSelectStage ...
(おすすめはできない テストぐらいまでに留めたほうが良い)

・特定のオブジェクトがあればリトライ時にbgmをリセットする
instance_existsで判断すればいい

・ルーム名に特定のワードがあるかどうかで判断する
string_pos("NonStopBGM" , room_get_name...)
(ルーム名見れば一発で分かるのは良いかもしれないが 名前が冗長になりなすいのとタイプミスなど起きるのでベストかと言えばそうとも言えない
Stage5だけbgmを止めないとかなら普通にアリ)

51785177:2021/11/15(月) 18:58:20 ID:eXDg2NGU
補足
「Stage5だけbgmを止めないとかなら...」
以下のルームの構成を想定しています

rmStage1_1
rmStage1_2
rmStage1_3
rmStage1_Boss
.
.
.
rmStage5_1
rmStage5_2
rmStage5_3
rmStage5_Boss
.
.
.


string_pos("Stage5" , room_get_name...)とするとStage5だけbgmを止めない

5179名無しさん:2021/11/15(月) 19:53:39 ID:pvDQllJo
>>5177
>>5178

ありがとうございます
とても参考になりました!

5180名無しさん:2022/03/17(木) 15:30:05 ID:CWJ75SIg
キッド君の位置を変えずにマップだけ変える方法ってありますか使ってるエンジンはゆううつです

5181名無しさん:2022/03/17(木) 17:24:03 ID:8JYvuZyk
>>5180
変更前の座標を保持して、マップ移動後にその座標をセットしてあげてください

5182名無しさん:2022/04/09(土) 10:53:50 ID:7/aXRBjk
弾幕についての質問です。(使用してるエンジンはyuuutuengineです。)
今、耐久でobjfadecherryをたくさん飛ばしたのですが、なぜか透明にならないです。
そこで、弾幕の数を減らしたのですが、透明にならないものが多いです。
全て透明にするにはどうすればいいでしょうか?
お願いしますm(_ _)m

5183名無しさん:2022/04/09(土) 12:19:02 ID:ikcsywm6
>>5182
同じオブジェクトを使用してるのにも関わらず透明になるものならないものがあるということですか?

5184名無しさん:2022/04/17(日) 05:12:18 ID:NxzlayPI
質問して回答もらったらちゃっちゃと返信しろや

5185名無しさん:2022/04/27(水) 19:20:22 ID:J7yk.lnk
質問ではないが制作に関することなので
とりあえずここに貼っておく

GameMakerの新機能の開発の優先順位についてのアンケートを現在行っている
(このページの一番先頭の投稿にあるURLがアンケートフォーム)
ttps://forum.yoyogames.com/index.php?threads/help-us-prioritise-new-features-in-gamemaker.95223/

新機能の説明
ttps://gamemaker.io/en/blog/gamemaker-update-2022

最新のGameMakerを使っている人がいるのであれば確認するといいかもしれない
(個人的にUIのシステムは早く欲しい……)

5186らーぽい:2022/05/20(金) 20:37:31 ID:xD5xs7Co
質問です。(使用エンジンはyuuutuengine)
一番左の黄色いファイルがいっぱいあるところで、
一番左にある+のボタンが表示されていません。(自分で作ったルーム以外)
どうしたら表示されますか?

5187名無しさん:2022/05/23(月) 15:56:19 ID:J7yk.lnk
>>5186
下にあるスクロールバーを動かしてみてください
単純にウィンドウの幅が狭すぎて隠れているだけだと思われます
(Gamemaker 8.0前提のお話)

5188名無しさん:2022/06/01(水) 17:31:08 ID:AUBx2QTI
なんで質問するやつは回答してもらっても無視なんや?
舐めとんのか

5189名無しさん:2022/08/12(金) 17:12:57 ID:bmIvWxOI
あるオブジェクトに触れた後、ジャンプすると死ぬっていう仕掛けどうやって作るんですか?

5190名無しさん:2022/08/12(金) 18:42:41 ID:wTt6Ablo
>>5189
触れた時にフラグを立てる
ジャンプ時にそのフラグを参照する

5191名無しさん:2022/08/13(土) 10:50:40 ID:bmIvWxOI
ありがとうございます。
>>5190

5192kidくん:2022/08/14(日) 13:54:43 ID:bmIvWxOI
ボスで、ダメージ食らった時の、点滅ってどうやって作るんですか?
そういうスプライトを作るんですか?

5193名無しさん:2022/08/15(月) 17:45:42 ID:kvkZEHuM
>>5192
アラームでフラグを切り替え、image_alphaを0と1切り替える

5194kidくん:2022/08/15(月) 20:27:19 ID:bmIvWxOI
ありがとうございます。
>>5193

5195kidくん:2022/08/29(月) 16:22:09 ID:bmIvWxOI
アイワナを配布する方法を教えてください!

5196名無しさん:2022/09/01(木) 00:43:21 ID:SFcmNi0k
>>5195
フロッピーに入れて欲しい人に送る

5197kidくん:2022/09/04(日) 15:26:42 ID:bmIvWxOI
なるほど、ありがとうございます。

5198名無しさん:2022/10/21(金) 18:39:07 ID:uZrbi1t6
デバックをしようとrun the gameを押すとout of memoryと出てきてデバックできません。
メモリ使用率は11/24GB程度なのでメモリ不足だとは思えないのですが、何か知っている方いませんか?

5199名無しさん:2022/10/21(金) 18:59:42 ID:uZrbi1t6
自己解決しました。

5200名無しさん:2022/10/21(金) 19:06:26 ID:uZrbi1t6
自己解決してませんでした()

5201名無しさん:2022/10/21(金) 20:54:06 ID:uZrbi1t6
いろいろいじったら解決しました。

5202アイブイ:2022/11/15(火) 17:02:12 ID:tJUSFeYU
今制作してるんですが,
文字が出せなくて困ってます。(例えばsave1やhardなど)
でも上のウインドウのデす数表示などはあります。
詳しい方教えてくれると助かります。
ご協力お願いいたします。

5203名無しさん:2022/11/20(日) 13:45:36 ID:CjpBzIUE
フォント関連じゃね?
知らんけど

5204名無しさん:2022/11/21(月) 01:07:22 ID:6ScuDlkE
1つありえるとすれば
draw_set_color(0.0)を設定したままになっている可能性があります
draw_set_color(1.0)を設定すると文字が描画されると思います

ただ毎回
draw_set_alpha(1.0)
draw_set_color(c_black)
draw_set_halign(fa_right)
draw_set_valign(fa_top)
.
.
.
このように初期化するのは面倒なので初期化用のスクリプトを作り
draw_setを呼び出した部分の最後の所で初期化用のスクリプトを実行するのが良いでしょう

また、現行のGameMaker(元GMS2)であれば以下のようなスクリプトが有効です

/// @function draw_config_push() draw_setから始まる描画設定を一時退避します
function draw_config_push()
{
if (!ds_exists(global.g_draw_stack_data, ds_type_stack))
{
global.g_draw_stack_data = ds_stack_create()
}
ds_stack_clear(global.g_draw_stack_data)

ds_stack_push(global.g_draw_stack_data, draw_get_alpha())
ds_stack_push(global.g_draw_stack_data, draw_get_color())
ds_stack_push(global.g_draw_stack_data, draw_get_font())
ds_stack_push(global.g_draw_stack_data, draw_get_halign())
ds_stack_push(global.g_draw_stack_data, draw_get_lighting())
ds_stack_push(global.g_draw_stack_data, draw_get_swf_aa_level())
ds_stack_push(global.g_draw_stack_data, draw_get_valign())
}

/// @function draw_config_pop() 一時退避した描画設定を元に戻します
function draw_config_pop()
{
if (!ds_exists(global.g_draw_stack_data, ds_type_stack)) { return }
if (ds_stack_empty(global.g_draw_stack_data)) { return }

draw_set_valign(ds_stack_pop(global.g_draw_stack_data))
draw_set_swf_aa_level(ds_stack_pop(global.g_draw_stack_data))
draw_set_lighting(ds_stack_pop(global.g_draw_stack_data))
draw_set_halign(ds_stack_pop(global.g_draw_stack_data))
draw_set_font(ds_stack_pop(global.g_draw_stack_data))
draw_set_color(ds_stack_pop(global.g_draw_stack_data))
draw_set_alpha(ds_stack_pop(global.g_draw_stack_data))

ds_stack_clear(global.g_draw_stack_data)
}

(8.0/8.1にはdraw_get_font()以降の関数が存在しない為、このスクリプトと同等の機能が作れない)
この2つをdrawイベントの最初と最後に呼び出すことで別のdrawイベントに影響することなく使えます

5205名無しさん:2022/11/21(月) 16:04:34 ID:6ScuDlkE
訂正
draw_set_color(0.0)を設定したままになっている可能性があります
draw_set_color(1.0)を設定すると文字が描画されると思います

draw_set_alpha(0.0)を設定したままになっている可能性があります
draw_set_alpha(1.0)を設定すると文字が描画されると思います



// draw_config_push / popの使い方の例
draw_config_push()
{ // この中括弧は無くても良いが、あると見やすい
draw_set_color(c_red)
draw_set_alpha(0.5)
draw_text(10, 10, "text1")
}
draw_config_pop()

// デフォルトの設定で描画
draw_text(10, 50, "text2")

// pushとpopの外に書かれているものはデフォルトの設定を変更してしまう
// (特定のワールドのみ変更したい、などという時に使う)
draw_set_color(c_red)

5206アイブイ:2022/11/22(火) 14:46:13 ID:5mlcgW4Y
ありがとうございます!
てか、馬鹿な私なのでそれ修正するの忘れて公開しました

5207アイブイ:2022/11/22(火) 14:46:58 ID:5mlcgW4Y
あと、今もう新しいほうに行ったのですが(作品が)作ってて「テストするかー」と思った矢先

___________________________________________
FATAL ERROR in
action number 1
of Step Event
for object init:

Unexisting room number: 2434838
出ました
どうすればいいのですか

5208アイブイ:2022/11/22(火) 15:14:56 ID:5mlcgW4Y
>>5205
真面目な回答ありがとうございます。
ただ、僕がバカでプログラミング等があまりわからないので、新しくオブジェクトを作ってそれで代わりにやってしまいました。
真面目な回答をしてくれたのに申し訳ございません。

5209アイブイ:2022/11/22(火) 16:26:24 ID:5mlcgW4Y
>>5207
です
自己解決

5210名無しさん:2022/11/23(水) 16:26:22 ID:6ScuDlkE
>>5208
とりあえず言いたいことは文字が出なくなったら
文字を出しているオブジェクトのdrawイベントの最初に
draw_set_alpha(1.0)
draw_set_color(c_black)
を適当に書いてみて文字が出ればOK、的なノリです

後の長い話はどうやって文字を出なくなるバグを出しにくくするか?
みたいな話なので興味なければ無視でいいです

5211アイブイ:2022/12/01(木) 18:04:51 ID:tJUSFeYU
すみません。
重力変更のギミックを作りたいと思っているんですが、動画の解説にあるgravitychangerというのがありませんでした。(yuuutuedition使用)
あったら教えていただきたいです。

5212名無しさん:2022/12/04(日) 07:38:03 ID:6ScuDlkE
>>5211
その動画のgravitychangerの具体的な挙動に関しては分かりませんが
名前から単純に考えるとplayerが触れた瞬間にplayer.gravityを変更してもらえれば
同様の挙動になるのではないかと思います

元に戻す場合は
player.gravity=0.4
とするだけ

5213kidくん:2022/12/08(木) 17:47:23 ID:q1w91ahE
アイテムを取ったら消えるブロックを作ろうと思ってるんですが、
アイテムの方のplyerとのcolisionイベントに

aaa=1(aaaは変数)
instance_destoy;

ブロックの方のcreateイベントに、

if(aaa=1){
instance_destroy()
};

と書きましたが、ブロックが消えません。
どうしたらよいのですか?

5214名無しさん:2022/12/10(土) 20:38:32 ID:6ScuDlkE
aaaはグローバル変数ではないように見えます
global.aaaとしてみてください

あと その書き方の場合はブロックが作られた瞬間だけしか消えるかどうかのチェックをしません
例えばアイテムとそのブロックが同じルーム内にある場合はアイテムを取ってもすぐには消えず
そのルームに入りなおさない限り消えることはありません
特に問題なさそうであれば特に直す必要はないですが 気になるのであれば:

// Stepイベント

if (global.aaa == true) instance_destroy();
// 0と1しか使わないのであればtrue / falseを基本的に使うように心がけてください

と書いてください

5215kidくん:2022/12/17(土) 22:12:19 ID:q1w91ahE
>>5214
本当にありがとうございます。
今後はtrue/falseも使っていこうと思います。

5216アイブイ:2022/12/18(日) 15:24:51 ID:tJUSFeYU
ボスの自機狙い攻撃のやり方を教えてください。
ググって出てきたやつでやってもキッド君が勝手にジャンプしたりリンゴが瞬間移動してキッド君にあたってフリーズしたり・・
ボスの位置に大量にリンゴが出てきたり・・
なのでお願いします!

5217名無しさん:2022/12/18(日) 18:55:19 ID:0A2yC942
>>5216
「gamemaker 自機狙い」と検索すると一番上に出てきましたけど

5218名無しさん:2022/12/19(月) 02:01:01 ID:..rfQbQc
>>5216
さすがにセンスなさすぎやろw

5219kidくん:2022/12/20(火) 20:07:37 ID:q1w91ahE
キッド君が死んだらBGMを途切れず、リセットしても途切れないようにしたんですが、
どこのルームに行っても同じ音楽が流れたままです。
つまり、room1~room5まではこの音楽を死んでもリセットしても途切れず流す、room6~room10はこっちの
音楽を死んでもリセットしても途切れず流す みたいな感じにするためにはどうしたらよいのですか?

5220名無しさん:2022/12/21(水) 13:24:34 ID:xzuNT.vA
>>5219
各ルームに入ったらフラグをたてる
そのフラグを見て流すBGMを決める

5221kidくん:2022/12/21(水) 20:16:50 ID:q1w91ahE
>>5220
すいません。アイワナ制作初心者なので、フラグとか分かりません。
具体的なコードを教えてください。
お願いします<m(__)m>

5222名無しさん:2022/12/21(水) 21:20:02 ID:..rfQbQc
>>5221
初歩中の初歩なのでまずはGMLを勉強することからオススメします

5223名無しさん:2022/12/22(木) 13:37:16 ID:z6yMraCI
>>5221
というか内容違うけど>>5214で教えてもらってるのと変わらないよ
自分で考えてみましょう

5224名無しさん:2022/12/22(木) 16:36:00 ID:0A2yC942
>>5216
質問しといて無視はない

5225名無しさん:2022/12/26(月) 02:42:05 ID:..rfQbQc
無視はいけねぇなぁ

5226アイブイ:2022/12/29(木) 16:36:55 ID:tJUSFeYU
見てませんでした。すみません

5227名無しさん:2022/12/30(金) 13:06:01 ID:iz.v.rUE
見ろよw

5228名無しさん:2022/12/31(土) 15:21:42 ID:0A2yC942
>>5226
で、解決したんですか?

5229名無しさん:2023/02/08(水) 21:07:40 ID:0A2yC942
>>5226
年も開けて1ヶ月も経ったというのに解決の有無さえも言わないのは流石に失礼すぎませんか?
質問する人の態度とは到底思えない

5230名無しさん:2023/02/17(金) 02:52:46 ID:..rfQbQc
二度と質問するな

5231名無しさん:2023/06/25(日) 18:00:27 ID:ieqJ2YJA
ボスを攻撃した時の点滅の作り方を教えてください
repeatを使ってimage_alphaを切り替えようとしたのですが、うまくいきません。
初歩的な質問になりますが、回答お願いします。

5232名無しさん:2023/06/25(日) 23:51:17 ID:..rfQbQc
>>5231
repeatは繰り替えし処理なので使用用途が違います


createイベント
flg=false
alarm[0]=1


alarm[0]イベント
if (flg){
image_alpha=0
}else{
image_alpha=1
}
flg=!flg
alarm[0]=30


イベントや値は調整してみてください

5233名無しさん:2023/06/28(水) 21:05:37 ID:ieqJ2YJA
>>5232 ありがとうございます。無事解決しました。

5234名無しさん:2024/03/21(木) 17:45:14 ID:eR3i94pA
気軽に質問しなよ

5235名無しさん:2024/09/05(木) 12:34:23 ID:NXx/kCGQ
こういうブロックてどうやって作りますか?
ttps://twitter.com/souvenir_iwanna/status/1821859653233602785

5236名無しさん:2024/09/05(木) 14:42:20 ID:IwEVfE1M
>>5235
本人に聞きに行けw

5237名無しさん:2025/07/10(木) 20:20:53 ID:Xb1JkobM
>>5235
これほうずき?

5238名無しさん:2025/07/15(火) 17:15:07 ID:wNYHg.uI
色んなパラメータを設定すると自動でコードを吐き出してくれるツールをどこかで見たんだけど、知ってる人いる?
各パラメータを設定するバーがりんごになっててそれを動かすと軌道も表示されていた

5239名無しさん:2025/07/15(火) 21:50:46 ID:kwrkRFQM
アナル弱男のツールのことならもう非公開になってるよ

5240名無しさん:2025/07/17(木) 01:35:27 ID:iBCN1ORU
スーベニア?


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板