【2D】ゲーム作成ツールGameMaker part5【マンセー】at GAMEDEV
【2D】ゲーム作成ツールGameMaker part5【マンセー】 - 暇つぶし2ch2:名前は開発中のものです。
10/12/05 11:29:16 fXXqbtv1
《Game Makerの特徴》
@ コリジョン(当たり判定)/スプライト/マップ/サウンド再生など、2Dゲーム作成にかかせない機能が充実
@ なにかと便利なイメージエディタを内蔵
@ プログラミングの知識はあってもなくてもよい
@ *.exe(単体実行可能)形式でゲームを出力できる
@ 作ったゲームは自己責任の元で自由に配布できる(作ったゲームを売る場合のライセンス料さえ不要!)
@ キーボード、マウス、ジョイスティックからのキー・ボタン入力をサポート
@ イベントドリブン型なのでスマートにゲームを構築できる
@ 組み込みスクリプト言語「GML」により、さらに細かい処理が可能
@ エンジンはDirect X

※有料登録(25ドル・20ユーロ・20ポンド)するとゲーム起動時のロゴ表示が消えて画像の回転や3D、エフェクト機能などが追加されますが、
 基本的に無料で充分使えます。

《Game Makerの欠点》
@ 英語ソフトなので、英語が読めないととっつきにくい
@ 特にver8.0では、コードエディタ内で日本語が文字化けするため更に使いにくい
@ ツクール類とは違い、ゲームの「動き」から設計しなければならない(それがまた長所でもある)

3:名前は開発中のものです。
10/12/05 11:34:45 fXXqbtv1
@最新版の8.0は以下よりダウンロード可能
URLリンク(www.yoyogames.com)

@それ以前のバージョンは以下よりダウンロード可能
URLリンク(wiki.yoyogames.com)

@Gamemaker 6 日本語ヘルプファイル
URLリンク(www.geocities.jp)

4:名前は開発中のものです。
10/12/05 11:56:38 fXXqbtv1
>>1
横から悪いがテンプレ加えといた。

テンプレ書いてるときに見つけたんだが、
8.0のコードエディタ内では日本語が文字化けするけど、アクション入力欄のアクションアイコンにマウスポインタを当てたときには
ちゃんと日本語で表示されるんだな。

5:名前は開発中のものです。
10/12/05 13:10:15 RGI5hH+L
新スレ乙

6:名前は開発中のものです。
10/12/06 17:34:44 XC68WWmx
ごめんなさい。新しくスレが立っているとも知らずスレを重複させてしまいました。
この板は最近知ったばかりなんですが削除依頼はどこに出せば良いのでしょうか?

7:名前は開発中のものです。
10/12/06 22:57:34 nzKpE/ou
そっちの方でレスついてるけど、別に緊急性なかったら削除依頼なんてしないでいいよ
このスレが落ちるまで残ってたらPart6に再利用するだけのこと

8:名前は開発中のものです。
10/12/07 20:08:10 SY2SsIY6
ベルトコンベアとかエアーマンの風みたいに「接触しているときある方向のスピードを加算する」
っていうのを作りたいんだけど接触しなくなったら加算した分を引くのってどうすればいいの?

9:名前は開発中のものです。
10/12/08 19:40:26 ZiSl02p4
スレ立て乙です
>>8
スピードいじるんじゃなくて、接触している間だけ x+=2; みたいにするといいですよ

10:名前は開発中のものです。
10/12/09 02:15:44 30BxC6zJ
あるオブジェクトを1回クリックしたら別のスプライトを表示させ、
それをもう一回クリックしたら元のスプライトを表示させるにはどうすればいいのでしょうか
別のスプライトを表示させることはできますが元に戻すことができないです

11:名前は開発中のものです。
10/12/09 07:39:56 f4bOlIrH
>>9
できました><ありがとうございます

12:名前は開発中のものです。
10/12/09 08:12:28 P19md8Um
>>10
スプライト変更前のsprite_indexを変数で取っておいて、
戻したくなったら取っておいた変数の内容をsprite_indexに代入すれば良いと思う(違っていたらごめんなさい)

例えば
//生成イベント
prevSPR=sprite_index;
//スプライトを元に戻す(スプライト変更前に入れて下さい)
prevSPR=sprite_index;
if(スプライト変える)
sprite_index=hogehoge;
//スプライトを元に戻す時のコード
if(スプライト戻す)
sprite_index=prevSPR;


13:名前は開発中のものです。
10/12/11 17:27:12 0axGmQYz
良スレ保守

14:名前は開発中のものです。
10/12/12 13:17:29 2xqxHWSX
>>1


15:名前は開発中のものです。
10/12/13 00:52:12 qaGq8D1V
前スレで、旧バージョンはレジストできないってレスがあったけど
PC買い換えたりした場合はどうするんでしょう?
GM7で作っていたものをGM8で編集したりとか出来るんでしょうか?

16:名前は開発中のものです。
10/12/14 21:09:34 O6KOvUNg
>>15
PC買い換えたときはよくわからんが、
GM7で作っていたものはGM8でも編集やEXEの書き出しが何も問題なくできるよ。

17:名前は開発中のものです。
10/12/16 00:43:44 q1megrN6
12/31まで25%Offだそうなので、『The Game Maker's Apprentice』のPDF版とか買ってみない?
付属CDのソースは、買ってからメールで問い合わせればリンク送ってきてくれるし。
プロモーショナルコードは
APRESSHOLIDAY2010

18:名前は開発中のものです。
10/12/16 20:59:38 q1megrN6
>>17
URLリンク(apress.com)
>>8(あっちに書き込んだ)
いや、日本語HELP見ようよ。

19:名前は開発中のものです。
10/12/16 21:03:44 jAIlWMzF
書くとこミスったみたいだね

日本語ヘルプってバージョン6みたいだけど
7でも問題ないのか

20:名前は開発中のものです。
10/12/17 10:58:07 6pzznmsP
コード記述の際に文字化けするのが一番厄介だわ

21:名前は開発中のものです。
10/12/17 12:25:33 6pzznmsP
日本語をサポートしてくれマジで

22:名前は開発中のものです。
10/12/17 19:08:03 jpdmeH8B
>>21
激しく同意。
俺に英語力があれば…

23:名前は開発中のものです。
10/12/17 19:23:38 6pzznmsP
英語が読めないのを愚痴ってるんじゃないよ
日本語が使えないことを愚痴ってるんだよ

24:名前は開発中のものです。
10/12/17 19:29:48 0A06wJRF
コメントに日本語が使えたりdraw_textで日本語が使えたら素敵

25:22
10/12/17 22:47:39 jpdmeH8B
>>23
途中で送信してしまった...orz

>>21
激しく同意。
俺に英語力があれば…
Markさんに要望メールやらフォーラムでUnicode対応してくれ。とか言語ファイルに対応してくれ。って発言できるのに・・・orz



26:名前は開発中のものです。
10/12/17 23:51:17 bRjHkJNS
GameMaker6が出たときにdraw_text()で日本語が使えなくなったんで、
メールでunicode対応をお願いしたことあるけど、
即効Unlikely suggestionsに放り込まれてたなぁ。

GameMaker8のベータテストが行われてたときに、
専用フォーラムでコードエディタで言語が表示されない問題について何度か騒がれてたけど、
多言語対応はあまり考えていない態度だったし・・・。

27:名前は開発中のものです。
10/12/18 01:13:01 8UMGoa/m
>>24
それが一番でかいよなー

28:名前は開発中のものです。
10/12/18 16:11:30 hhbGBdSK
絶対に課金なんてしてやらないでござる

29:名前は開発中のものです。
10/12/19 12:15:39 zJFdnArJ
このツール使ってゲーム作ってるやついんの?

30:名前は開発中のものです。
10/12/19 13:53:15 CC+RjO33
いつか作りたいとは思ってる
使いこなせないけど

31:名前は開発中のものです。
10/12/19 14:56:56 zJFdnArJ
じゃあ今からやろうぜ

32:名前は開発中のものです。
10/12/19 20:32:21 vaKw5Tgf
公式のチュートリアルのキャッチ・ザ・クラウンでスピード速くなりすぎて壁突き抜けてルームの外に飛び出してしまうとかいうバグもあるが(それはプログラムの組み方の問題かも)。
それはそうと、参考になりそうなのは、
・アクションゲームの雛型(スプライトは要差し替えだとな気がする)
URLリンク(www.pages.drexel.edu)

・迷路ゲームのサンプル[by Best Games Forever]
URLリンク(www.yoyogames.com)

33:名前は開発中のものです。
10/12/20 06:45:04 RAyn0r8g
皆は効果音って何使ってる?

34:名前は開発中のものです。
10/12/20 10:24:29 oLKCKr2S
無料で使えるものをネットから拾ってきたり
動画から音を抽出して切り貼り、動画は自分でいろんな音作れるからおススメ

35:33
10/12/20 19:26:28 0xbccmIL
>>34
なるほど、動画から音声を抽出して切り張りですか。
けっこう便利そうですね。 ありがとうございます。


36:名前は開発中のものです。
10/12/20 19:59:46 Kn3I1DnX
権利関係は気をつけてな

37:名前は開発中のものです。
10/12/20 21:07:08 DRgOE8ef
2Dゲー特化で作るならHSP使うよりもこれ使ったほうがラク?

38:名前は開発中のものです。
10/12/20 21:22:37 oLKCKr2S
レジストしないと透過処理が1種類だけだったり画像の回転がツール側で出来なかったりとだから
使えるならHSPのがいいんじゃないのか?
簡単なアクションやシューティングなら楽に作れるけど

39:名前は開発中のものです。
10/12/20 21:39:50 JWOmPWTZ
GM8なら透過PNG使えるぞ

40:名前は開発中のものです。
10/12/20 22:24:30 C9i9D3Xx
2Dなら覚えやすさとかそういう点から言ってもHSPには負けないだろうね
細かい所で競うと適わない点もあるだろうけどさ
ネットワークとかは試した事がないからわからん

GMには3Dも期待したい
現状の単純さで3Dが使えるようになれば本当に最強だよ

41:名前は開発中のものです。
10/12/20 23:04:18 0O9ywtXZ
ザ・マッチメイカァズ

42:名前は開発中のものです。
10/12/21 00:01:07 bwT7DjtE
なるほど
つまり画像の回転は使わないからおkかな
簡単にスプライト描画ができてBGが二枚あれば大丈夫

43:名前は開発中のものです。
10/12/21 00:14:25 VmXF8vLA
最大の欠点は日本語だよな
これさえどうにかなれば、ホント最高のツールだと思うんだけど。

44:名前は開発中のものです。
10/12/21 00:26:11 bwT7DjtE
日本語ってのはつまりコメント書くと文字化けするってこと?
よくあるインストール先フォルダの名前が日本語だとまずいなんたらかんたらは関係無い感じかな

45:名前は開発中のものです。
10/12/21 21:42:03 nSADShU7
GM8だとエディタが日本語に対応してないってことじゃ?
ツール自体が英語なのは慣れればどうとでもなるし

46:名前は開発中のものです。
10/12/21 21:44:41 VmXF8vLA
コメントを日本語で書いとけば後ですぐ分かるからな

47:名前は開発中のものです。
10/12/21 21:50:45 cLIQ69Zp
PNGだと中途半端な透過も完全に再現してくれんの?

48:名前は開発中のものです。
10/12/21 22:05:56 fKJY3ZeH
pngを使えば画像の通りに透過される

49:名前は開発中のものです。
10/12/22 01:09:06 i3DvlqiB
インスコしてみた
こりゃすごいな。ほんとすぐにゲームが作れちまう

50:名前は開発中のものです。
10/12/22 01:44:04 axy2ZV9L
凝ったシステムのアクションも作ろうとすれば楽に作れるしナ

51:名前は開発中のものです。
10/12/22 12:03:02 DmoYeflC
プレイヤーを常に画面の中心に据えて、左右移動に合わせてマップをスクロールさせるのってどうやればいいのかな?
バックグラウンドと、キャラの動き回るマップ、敵キャラとプレイヤーは別にする形で

52:名前は開発中のものです。
10/12/22 12:07:51 DmoYeflC
ごちゃごちゃ書いてしまった…
ようは配管工のおっさんのアクションゲームのような挙動を使いたいんです

53:名前は開発中のものです。
10/12/22 12:25:03 K4vaSiZa
room設定でviewを使用して、プレイヤーキャラへの追従速度を一瞬にすればいいんじゃね?
強制スクロールは頑張ってスクリプト組め!

54:名前は開発中のものです。
10/12/22 16:07:07 HSuB3Gym
ありがとう!
強制は全く考えてなかったんだけど、プレイヤー以外のオブジェクトを同じ方向に動かす方針で組めば行けるかな

55:名前は開発中のものです。
10/12/23 11:27:22 IPp8o8kI
viewで表示されてる画面上部にライフとかスコアを表示したいんだけど、移動すると当然のごとく消えちゃう
そこでキー入力に同期させると、今度はプレイヤーが傷害物に引っ掛かってる間に先に行ってしまう
何かいい方法は無いでしょうか?

56:名前は開発中のものです。
10/12/23 11:47:39 RUqf4L1q
表示位置を view_xview、 view_yview 基準にすればいいんじゃないの?

draw_score の
xに view_xview+??
yに view_yview+??
に設定する。もしくは、
drawさせるオブジェクトをstep normal内で、
jump to the position をつかって、
x にview_xview
y にview_yview
とかやって、drawイベントでドローさせたいものをRerativeに設定する、とか。

詳しくは上二つの変数をヘルプで検索してみて。

57:名前は開発中のものです。
10/12/23 11:56:04 IPp8o8kI
ありがとうございます!
やってみます

58:名前は開発中のものです。
10/12/23 15:35:14 cOXsGsXG
yは固定でxを操作キャラと同じにすれば良いんでは

59:名前は開発中のものです。
10/12/24 01:45:56 NfAVrbeQ
あるインスタンスからマウスまで直線を描写したい時に
↓のようにインスタンスから一定の距離をあけて
draw_lineを使って描写するにはどうすればいいでしょうか?
 ●  ―――◎

 | \
 |   \
 |     \
 |      \
 |       ◎
 |
 ◎

60:名前は開発中のものです。
10/12/24 02:14:33 NfAVrbeQ
すいません自己解決しました
lengthdir使えば良かったんですね・・・

61:名前は開発中のものです。
10/12/24 22:36:21 OtuzPt0n
スパゲティコードおいしいれす(^p^)

62:名前は開発中のものです。
10/12/24 22:40:54 OtuzPt0n
自分で関数とか作ってメイン処理はキレイにしたほうがいいのかな
もう何がなにやらで頭痛くなりそう

63:名前は開発中のものです。
10/12/25 03:30:35 nypuM7Gx
矢印キーを短い間に二回入力でダッシュできるかな、と心配だったが出来た。流石だなこのソフト

64:名前は開発中のものです。
10/12/25 11:11:57 LUpn0J8R
移動速度2以上にすると、バグるみたいです。突き抜けて行く...
外枠以外は、ダミーの壁です。
『4方向移動』
URLリンク(www1.axfc.net)

65:名前は開発中のものです。
10/12/25 12:22:53 LLQq49rK
移動元と移動先の間に壁オブジェクトが無いかどうか判定すりゃいいだけの話

66:名前は開発中のものです。
10/12/26 11:04:27 9uZP50NE
GM7で作ったゲームって64bit版windows7で正常に動くのかな?

67:名前は開発中のものです。
10/12/26 21:59:55 G9E+jdVp
triggerの使い方がイマイチわからん

68:名前は開発中のものです。
10/12/27 00:51:08 jvXZTF8r
"Trigger events"の項目を見てみたところ、プロ版のみで使える機能のようです。ユーザー定義イベントだとか。

69:名前は開発中のものです。
10/12/27 01:20:51 yQgqu63i
原理的にはStepイベントに条件文書くのと変わらないと思うんだけど
一度定義したら複数のオブジェクトで使い回したり、
Save/Loadできるから他のゲームでも再利用できるのが利点なのかな。

ヘルプにある例だけど、例えば「Ctrl+Aが押されていたら何かしたい」という場合
普通ならStepイベントあたりで
if (keyboard_check(ord('A') && keyboard_check(vk_control)) {
  // 何かする
}
というコードを書くんだけど、かわりにTriggerで
return (keyboard_check(ord('A') && keyboard_check(vk_control));
という条件式を登録してやれば、Ctrl+Aを押した時にそのイベントが発生する。
ちなみにこの「return 条件式」という文は
「if 条件式 { return true; } else { return false; }」と書くのと同じこと。

使い道としては、標準のイベントにない「ジョイスティックのボタンを押した時・離した時」
というイベントを自分で定義したり、
高速で移動するオブジェクトの衝突判定をcollision_lineでやって
イベントを発生させるってことができそう。

70:名前は開発中のものです。
10/12/29 01:32:19 Wjmtt7s2
GMはwaveファイルとMIDIファイル どちらがメモリを多く使うんだろう


71:名前は開発中のものです。
10/12/30 11:23:31 vMQVDq23
良スレ保守

72:名前は開発中のものです。
11/01/01 14:41:23 0yd+pduY
mp_gridの使い方がイマイチ分からん

73:名前は開発中のものです。
11/01/01 14:55:43 G/Of8DOb
左右にブレる追尾弾とかそんな感じのに使うんじゃね?

74:72
11/01/01 19:32:47 0yd+pduY
>>73
なるほど…そういった使い方が有るのですね 参考になります。

75:名前は開発中のものです。
11/01/01 19:54:51 G/Of8DOb
ごめん、てきとう言った

76:名前は開発中のものです。
11/01/01 22:06:23 Kdg9cEaB
SLGとかでユニットが障害物をよけながら目的地に行く時用だな

77:名前は開発中のものです。
11/01/02 01:47:21 ZVF81cqy
効果音の再生スピードとか変更できないのか。
スローモーション演出作ろうかと思ったけど、音だけ普通なままになっちゃうな。

78:名前は開発中のものです。
11/01/02 02:28:32 pPbuHyFM
sound_background_tempoはどうなのよ、使ったこと無いけど

79:名前は開発中のものです。
11/01/03 12:17:53 qbE7BDdi
ここのチュートリアルはよさそうじゃないか?
『Game maker 7 video tutorials』
URLリンク(www.roencia.com)

80:名前は開発中のものです。
11/01/03 16:22:09 qbE7BDdi
RPG作るのに参考になりそうなのは、ココらへん?
画像がアウトですが、
・[dia] Final Fantasy Tactics Engine (gm6/gm7)
URLリンク(gmc.yoyogames.com)
・Zelda Engine Lite
URLリンク(gmc.yoyogames.com)
・Zelda Engine!
URLリンク(gmc.yoyogames.com)

81:名前は開発中のものです。
11/01/05 11:43:10 TceUevD1
擬似3Dって出来そうじゃない?
パノラマ画像使ってさ

82:名前は開発中のものです。
11/01/06 15:27:56 K3A1vyQH
Proにアップグレードしたいんだけど購入にクレカ絶対必要なんかね

83:名前は開発中のものです。
11/01/06 15:43:06 RtTo9Ny9
Proにして何の機能使うんだよ

84:名前は開発中のものです。
11/01/06 17:07:22 gJNISZHJ
お前になんぞ説明しても理解できんだろ

85:名前は開発中のものです。
11/01/06 18:16:07 IoyweI3D
こいつプロやで

86:名前は開発中のものです。
11/01/06 18:29:59 RtTo9Ny9
プロになれば自ずと分かることなんだな、俺がんばるよ

87:名前は開発中のものです。
11/01/06 18:34:44 j0Iy1T7C
>>82
PayPalを使うにしてもクレカは必要だよ

88:名前は開発中のものです。
11/01/06 19:21:00 S3pW6sbX
webmoneyをペイパルに換える業者とかあったはず
手間かかるし割高になるけどどうしてもっていうならありかも

89:名前は開発中のものです。
11/01/08 12:18:06 OscAOCi9
規制か?

90:名前は開発中のものです。
11/01/08 12:19:52 OscAOCi9
PCなら問題ないのね。よかった
>>82
URLリンク(www.google.co.jp)

91:名前は開発中のものです。
11/01/09 13:30:45 qAVOFNty
draw_textでアンチエイリアスのかからない文字って描ける?
ゲーム設定のinterpolate colors between pixelは関係なさそう
yoyogamesにあるgmkを見てみると文字のスプライトをdraw_spriteしてるわけでもないし


92:名前は開発中のものです。
11/01/11 00:54:20 6rwKkJH8
コントロールパネル→個人設定→ウィンドウの色とデザイン→効果→『次の方法でスクリーンフォントの縁をなめらかにする』を切る。
じゃないだろうか?
URLリンク(gmc.yoyogames.com)

93:名前は開発中のものです。
11/01/11 13:04:51 KQ702KI4
>>92
ありがとう
スクリーンフォントの縁をなめらかにするオフでいけた
この状態でexeを作ればOKみたいだね

94:名前は開発中のものです。
11/01/13 16:04:14 8hWHOTkd
スーパーマリオのようなゲームを作ってるんですが、
落下中に限り、R_rakkatyuuというスプライトを表示する。といった方法はどうすれば出来るのでしょうか?
落下中は全くアニメーションをしなかったり、
着地しても、操作しないとR_rakkatyuuがずっと表示されたままだったりで、全く分かりません。
よろしくお願いします\(__ )

95:名前は開発中のものです。
11/01/13 17:43:08 3HiLg4Mj
ジャンプの仕方は?
壁オブジェを地面にしてジャンプしてるなら
地面と接触中にプレイヤーオブジェクトのsprite_indexがR_rakkatyuuなら地面との衝突イベントで通常に戻す処理を
もしくは落下して地面についたときにvspeed(だったか?)
もしくはy位置を調整してる部分に通常に戻す処理を

落下中、つまりvspeedが正の値になるとR_rakkatyuuのスプライトに変わるようにすればいい
左右の反転はimage_xscaleを1,-1にすれば右向き左向きと変えられるぜ

96:名前は開発中のものです。
11/01/14 02:16:02 hUeQMI+z
ルームに配置したタイルIDの取得方法とかどうすりゃいいの
なんか無駄に複雑になるか、コードでタイル配置してID記録しておくしかないとかやりにくいんだけど

97:名前は開発中のものです。
11/01/15 02:29:51 adKnm0aS
できないのはお前だけ、低脳でゆとりな自分を恨め

98:名前は開発中のものです。
11/01/15 10:57:49 AelpLmZy
>>96
俺も今試してみたけど、GMLを使うなら>>96と同じ方法しか思いつかない。
強いて加えるなら、別の配列にタイルの種類とかタイルの範囲の情報とかを取っておいて、
必要に応じて添え字を連動させてそこから情報を読み出すくらいだな。
レジストしてるならマップ構造とか使うと楽かも。

釣りかもしれないが>>97はより良い方法を知ってるんだろうか。

99:名前は開発中のものです。
11/01/15 11:53:29 JoQ7ZXV/
場所がわかってるならtile_layer_findするだけなんだけど
ルームに配置してあるタイルを全部探して一覧にしたいってことなのかな?
だとしたらループで回してfindするか(depthが一定でなかったら厄介だけど)
idを0から適当なところまで増やしていって、tile_existsで存在確認するとかいう手がある。

でも、どういう状況でタイルIDが必要なのか気になるな。
実現したいことによっては、別の手段(オブジェクト使うとか)の方が楽かもしれない。

100:名前は開発中のものです。
11/01/15 17:47:06 lAq+Nvon
ありがとう、あるスプライトのタイルを条件に画面移動させたりとかしたいので
そのタイルIDを取得する方法を探していました

ルームに先に配置すると、位置調整とかやりやすいんだけど
コードを使って配置すると位置調整とか面倒で面倒で・・・
obj化して使えばいいんだけど、タイルを使って簡単にやれる方法は無いのかな、と思って質問しました

101:名前は開発中のものです。
11/01/16 03:53:49 r1CII5k9
変数tempにinstance_id[n]を代入したくて、

temp = variable_global_array_get('instance_id' , n)

ってコードを書いたんですが、tempの中身が0のままなんです
このvariable_global_array_getの使い方って間違ってますか?

102:名前は開発中のものです。
11/01/16 12:39:50 TQmeTJbV
書き方は合ってると思うけど、instance_idみたいな組み込み変数に使えるという保証はない
素直に temp = instance_id[n]; じゃいけないの?

103:名前は開発中のものです。
11/01/16 12:54:40 QB8GtBhB
>>101
instance_id[n]はグローバル変数じゃなくてローカル変数だよ。
それでちゃんと読み込める。
だから>>102の書き方で間に合う。

104:名前は開発中のものです。
11/01/17 18:19:37 3/s7EhMe
簡単なパスで動く足場でプレイヤーが一緒に動くようにはできました。
ですが複雑なパスでpath_positionを使ってプレイヤーを移動させる向きを変えるのはあまり賢くないように思えたので質問します。
どんな関数をどのように書いて使うと良いのでしょうか?

105:名前は開発中のものです。
11/01/17 19:54:13 YOejjkfI
複雑に動く足場をパスを使わずにやりたいと?
それともそれに乗ってるオブジェクトの位置移動や向きの方向を変えたいと?

106:名前は開発中のものです。
11/01/17 20:38:00 YOejjkfI
配列に位置情報を何十個と格納して
それをステップ毎に読みにいって、参照,計算,反映した後値に+1
配列の最後まで行くと今度は-1ずつしていく
これで位置移動はできるけど、path使ったほうが楽なんじゃないの?

A地点まで来たら回転軌道とか
B地点からは縦にジグザグしながら横移動とか
そういう区切りに着くたびにifとかで計算しないといけないのなら
作業量的にpathのが楽だと思う

107:名前は開発中のものです。
11/01/17 23:35:48 uvq5U5+6
足場の向きを変えるための不可視オブジェクトを何種類か作っておく
(例えば↑のオブジェクトにぶつかったら上向きに変わるとか)
それらのオブジェクトをルームに配置してやれば簡単に軌道が作れる
スピードを変えるオブジェクトとかも作ってやると色々面白い動きができるよ

108:104
11/01/18 19:39:16 fbzAY7tc
>>105-107
回答ありがとうございます。
自分が言いたかったのは、動く足場の上に乗るとプレイヤーも一緒に動くようにしたくて、
URLリンク(eidwinds.com)
ここを見ながら作ったのです。
簡単な動きの足場ならpath_positionでプレイヤーを動かす向きを判定すれば良いのですが
複雑なパスで動く足場その関数を使うのは賢くないかなぁと思って質問したのです。

誤解をまねくような書き方をしてすみませんでした。

109:名前は開発中のものです。
11/01/18 19:47:04 NoBN6TiT
ステップ毎に足場の移動前の位置と足場の移動後の位置を計算
出た結果を足場の上にあるオブジェ全てのx,yに加算で
複雑な軌道でもオブジェ着いてくると思うけどどうなのかな?

110:名前は開発中のものです。
11/01/22 00:08:25 A5IaszrY
銃を撃ったあとに若干隙を作りたいのですが
プレイヤーの操作がきかない硬直状態ってどう作れば良いのでしょうか?

111:名前は開発中のものです。
11/01/22 00:21:56 VrQOmjCs
変数を作って、0の時は動ける。1の時は動けない。みたいにする。



112:名前は開発中のものです。
11/01/22 02:21:36 A5IaszrY
>>111
できました!ありがとうございます!
ショットをキー入力していてかつrigid=0だったら動かすようにして、撃った後rigidを1にする。
STEPでalarmEnabled=0かつrigid=1だったらalarm[0]を適当な値、alarmEnabledを1にする。
alarm[0]が0になったらrigidとalarmEnabledを0にするというかんじにしました。
もっと良いやり方があれば教えていただけると嬉しいです。

113:名前は開発中のものです。
11/01/22 02:37:18 Ex+KSWZm
rigidが0以上、かつ rigid が delay_shot_time 未満の場合 rigid+=1
rigidが上記以外の場合 rigid=0
rigid==0 だったらショットを撃てるように、撃った後 rigid=1。

delay_shot_time = 5; //5秒後に撃てるようになる
if(rigid>0&&rigid<delay_shot_time*room_speed) rigid += 1; else rigid = 0;
if(rigid==0){
撃つ処理;
rigid = 1;
}

賢いかどうかは知らないけど、自分でやるならこうする
アクションの方は面倒だから自分でやってくれw

114:名前は開発中のものです。
11/01/22 03:45:24 jQ6PGNCO
タイムライン使わなくても時間制御できるんか
これは参考になる

115:名前は開発中のものです。
11/01/22 03:57:24 Ex+KSWZm
timelineはイベント中の行動制御に使ってるなぁ

弾発射とかのディレイ制御なら>>113みたいにやって
会話イベントしながら旋回させたりとかやるならtimeline
alarmはどうなんだろうこれ、使い道は分からん

116:名前は開発中のものです。
11/01/23 19:05:48 7C5keGLv
>>115
Alarmはどうだろう・・・ 自分は時限爆弾とかに使ってるけど

117:名前は開発中のものです。
11/01/23 22:02:38 nMP0YIJR
Alarmは別に問題ないんじゃないかな
>>112 のようにフラグとカウンタ分けるもよし
>>113 のように一まとめにするなら、rigid 変数がいらなくなって
alarm[0] > 0 でセットされているかどうかチェックすればよし
イベントフローのタイミングが問題になることがあるかもしれないけど

118:名前は開発中のものです。
11/01/28 06:33:23 mRRjGSDa
まだ規制かな

119:名前は開発中のものです。
11/01/28 06:43:19 mRRjGSDa
暫くは書けそうだ
スレ汚しスマソ。

120:名前は開発中のものです。
11/01/29 22:16:37 rf3LkMoF
今回もまとめ動画作成されてたんだな
2010: 100 Game Maker games in 10 minutes
URLリンク(www.youtube.com)

dustforceとか面白そうだと思ったけど、ゲームが始まらなかった・・・

121:名前は開発中のものです。
11/02/01 08:08:49 NPjgEITA
mb_textで漢字を使ずにひらがな、カタカナ、英数記号のみで使うにはどうしたらいいでしょうか

122:名前は開発中のものです。
11/02/01 10:04:13 +IFgvRf2
>>121
容量を節約したかったり、単に漢字がいらなかったりするなら
全角のスプライトを分割した後に、カタカナがあるimage 2までを残してそれより下を削除すればいい。
それだとmbtextが普通に使える。

ひらがな・カタカナ・半角英数記号のみをまとめて入れた画像から文字を切り出して使いたいなら、mbtextでは無理。
自分で使い道に合った関数を一から作るしかないだろうね。


123:名前は開発中のものです。
11/02/02 18:00:09 4wQIL4SL
どうもありがとうございます

124:名前は開発中のものです。
11/02/03 22:29:35 gMDo3WrY
64bit環境でもGM動きますか?

125:名前は開発中のものです。
11/02/03 22:44:44 Lu4wbnuU
DLして試してみれば?

126:名前は開発中のものです。
11/02/03 23:30:25 gMDo3WrY
すみません
そろそろPC買い換えたいなと思ってたので質問しました

127:名前は開発中のものです。
11/02/04 08:25:57 4JF3Z1q0
他は知らんけどGM8ならWIN7/64で何の問題も無く動いてるよ

128:名前は開発中のものです。
11/02/14 08:53:19 G/hmZHUQ
インスタンスIDの番号に上限があるのかという無駄な心配をして検証してみた
50000000まで行った

本当に無駄だったけど、なんか参考になればいいと思ったの…

129:名前は開発中のものです。
11/02/14 08:56:52 G/hmZHUQ
あ、ごめん補足
50000000以上いく

上の書き方だと50000000が上限みたいな書き方だね
そこまで確認したってことだけですた

130:名前は開発中のものです。
11/02/14 15:15:23 gNWM0hkF
mbtextの文字にブレンドカラーを使えるようにするのってできるかな
スクリプト内のdraw_sprite_partをextにすればできそうな気がするけど
たぶんそれだけじゃ駄目なんだろうなあ

131:名前は開発中のものです。
11/02/14 21:06:22 oSz6wjKb
>>128-129
特に理由がなければ32bitでサイズ確保するだろうから符号付きでも20億は余裕じゃない?

132:名前は開発中のものです。
11/02/15 01:05:53 Wk8BytYZ
>>130
色つけるだけならdraw_sprite_extでやってる

>>131
ありがとう参考になった!

133:名前は開発中のものです。
11/02/16 20:10:21 PYt9zTwf
以前GM製ゲームで耳ぶっ壊されるかと思った経験あるんだが、音がおかしくなるバグって修正されてる?

134:名前は開発中のものです。
11/02/16 21:59:58 we3raIYs
>>132
draw_sprite_extだと文字表みたいなの丸々描画されちゃわない?
draw_sprite_part_extだとするとmbtextが受け取った文字データを関数の値に入れるって感じなのかな

135:名前は開発中のものです。
11/02/18 07:44:26 p7uygRvl
>>134
すまん、GM8で日本語表示するためにmbtextをベースに作り直したモノの話をしてた
たいして違わないとたかをくくって話してたけど結構違うのかな

文字に対応したスプライト番号でインスタンスとして表示ってだけならdraw_sprite_extで普通にいけたけど

136:名前は開発中のものです。
11/02/20 23:11:01.21 q1nfIiKm
需要ないかもしれないけど、複数入り口がある場合のルーム移動のサンプルを作った
初心者向け。難しい事してないからご自由にどうぞ

SomeGateExample.gmk

URLリンク(firestorage.jp)
Pass:gm2ch

137:名前は開発中のものです。
11/02/23 06:59:25.37 1Hdmxju4
キーを押したらスリープ もう一度押したら解除ってどうやればできるだろう

138:名前は開発中のものです。
11/02/24 03:06:57.78 Dn7EBdpM
>>137
シンプルにやるなら

if(keyboard_check_pressed(vk_space))
{
screen_refresh()
do keyboard_wait() until keyboard_check(vk_space)
}

検索すればもう少しましなのが出るかも

139:名前は開発中のものです。
11/03/03 00:54:08.65 ELxZyYGb
外部のテキストエディタでコード書いてる人っています?
やっぱコメントに日本語使えないのは痛いから、外部で書いてそれをコピペして作ろうかと考えているんですが
なにかいいエディタがあったら教えてください。

140:名前は開発中のものです。
11/03/03 02:47:30.21 WBNvuqo0
日本語の使えるGM5.3で7.0の日本語マニュアル参照しながらコード撃つ
試すときは最新の8.0にコピペしてやってる

141:名前は開発中のものです。
11/03/03 15:32:17.91 LVOwLF0+
NoEditorとかNotepad++(EUC-JP対応版)なら自分で強調表示を作れるから良いよ。
作ったテキストファイルを独自の拡張子(俺の場合は.gmscr)で保存すれば、
対応エディタでの強調表示の他に、GameMakerを開かなくてもコードを見ることができるからお得。


142:名前は開発中のものです。
11/03/03 22:41:58.47 ZDUSJLE+
サクラエディタオススメ

143:名前は開発中のものです。
11/03/04 06:17:24.29 /yW5hy/N
>>140
7.0の日本語マニュアルってヘルプドキュメント?6.0のは公式であるのは知ってるけど7.0もある?

144:名前は開発中のものです。
11/03/04 06:47:32.73 p5FLgEHX
>>143
すまん、今見たら日本語版ヘルプドキュメントのバージョン 6.0 だった
6.0以降の日本語ヘルプは無いはず

145:名前は開発中のものです。
11/03/04 09:02:59.29 gYV5jqov
64bitOSで問題なく動きますかか?

146:名前は開発中のものです。
11/03/04 09:12:10.10 p5FLgEHX
>>145
>>127

147:名前は開発中のものです。
11/03/05 13:44:23.91 A3DNRd0X
>>144 サンクス!あったらほしいと思っただけなのよ

日本語対応してもらうより自分が英語に対応した方が早い気がするね

148:名前は開発中のものです。
11/03/08 06:02:37.63 yDU6ZQlV
138だけど>>137のもう少しマシなのを作ったよ
と思ったけどコード書いたら規制かかった…まんどくせ

やってることだけ書くと、
1.ポーズ変数を作る
2.ポーズになる直前の画面をキャプチャしてスプライトとして登録・描画
3.ポーズになってたら自分以外のインスタンスを非アクティブ化
4.ポーズ解除したらさっきの登録したスプライトをメモリから削除
これだけ!あとは自分でなんとかしてくれ!

149:名前は開発中のものです。
11/03/08 06:07:18.08 URJuUFsM
レジストしねーとつかえねーじゃねーか!!

150:名前は開発中のものです。
11/03/08 06:26:27.34 yDU6ZQlV
sprite_create_from_screenってレジストだけだっけ?
ならそれだけ省いて、instance_deactivate_all(1)を使ってDrawイベントでボーズ中の画面を出すとかどうだろう
ゲーム画面だしたままにしたいならそれじゃ不満かもしれないけど

151:名前は開発中のものです。
11/03/08 21:55:57.76 /HJiXL+I
レジストくらいしろよ
ゲーム製作なんて数ヶ月はかかるのが普通なんだから
その時間を思えば2000円なんて安いもんだろ

152:名前は開発中のものです。
11/03/08 22:02:48.68 kTpVbqPa
proは良いぞ
ブレンドカラー使えるしパーティクル使えるしエクステンション使えるし

153:名前は開発中のものです。
11/03/09 02:36:04.63 0A10g8Iv
すべてのユーザーがレジストしてるわけじゃない
なら未レジストでも使える機能かどうか、きちんと書いておくべきだったと思う
>>149みたいな言い方はあれだけども

154:名前は開発中のものです。
11/03/09 03:51:07.53 b2ZIx76M
148だけど、確認せずに書いたのは申し訳なかった

一応調べてみたんだけど、レジストしないと使えないのはdraw_primitive~とかだよね?
一時的にメモリにsprite_create_from_screenでスプライトを作ってdraw_spriteするくらいできそうなもんだけど
ヘルプにもレジストしてないと使えない関数としては書いてなかった

めんどくせ、ちょっとサンプル作ってくる

155:名前は開発中のものです。
11/03/09 03:59:14.95 0A10g8Iv
ちょっと調べてきたぜ
sprite_create_from_screenがレジスト機能みたいだな

This function is only available in the Pro Edition.

156:名前は開発中のものです。
11/03/09 04:09:18.68 0A10g8Iv
6.0の日本語ヘルプだと
レジストしないと使えない機能なのに書かれてなかったりするなこれ

まぁポーズさせるぐらい簡単だろ
1、ポーズ変数でチェック
2、ポーズ中には処理が発生しないようにifで分岐
3、1度ポーズ状態になったときに全てのインスタンスのhspeed等を保存
4、戻すときに3を逆にやるだけ

うむ

157:名前は開発中のものです。
11/03/09 04:28:20.59 b2ZIx76M
保存処理がBGMに適応できなかったりするからあんまり好きじゃないだけなんだけどね
一応サラっと作った。Proのみらしいから申し訳ないけど

URLリンク(firestorage.jp)

158:名前は開発中のものです。
11/03/09 04:39:04.57 b2ZIx76M
ついでに未レジスト用にも

すべてのオブジェクトに「Control」という変数作る
Pauseオブジェクトからポーズ状態ならステップイベントでwith(all) Control = falseにして
各ステップイベントの行頭にif(!Control) exit って書いておくだけでもまぁできるけど
これだけだとimage_speedが保存できなかったりするから注意なんだけど 一応こんな方法も一時期やってた
image_speedが一貫して0か1で制御できればなんら問題はないんだけどね

>>157のやってることとほぼ同じですわ

159:名前は開発中のものです。
11/03/09 04:39:46.97 b2ZIx76M
連投すまそ
修正:>>156とやってることほぼ同じ

160:名前は開発中のものです。
11/03/09 06:06:07.12 ziWZfUHY
ポーズって

var c;
c = 0;
while (c != ord('P')) {
keyboard_wait();
c = keyboard_lastkey;
}

これじゃあ駄目なんか?

161:名前は開発中のものです。
11/03/09 06:45:00.87 b2ZIx76M
>>138で書いたけど、それだとキーボード以外の入力を受け付けなくなるから割と不便なんだよなあ
駄目ではないと思うけど

162:名前は開発中のものです。
11/03/09 13:49:47.53 mq+G7FDV
Proは良いし20ドルくらい払っても構わないけど1バージョンのみってのが引っかかるんだよな
俺は6しか使った事無いが機能考えれば7の方が良いかなと思ったけど8も出てるし今後もっと良い機能が追加されたのが出るかもしれない

163:名前は開発中のものです。
11/03/09 20:17:07.93 GM2GEscm
キー以外も受け付けたかったら

while (true) {
io_handle();
if (keyboard_check(ord('P')) break; // Pでポーズ解除
if (mouse_check_button(mb_left) && position_meeting(mouse_x, mouse_y, obj_button))
break; // ボタンをクリックしたら解除
// その他必要なマウスやキーの処理
screen_refresh(); // 場合によってはscreen_redraw()
sleep(1000 / room_speed);
}

みたいにすればこの中でメニュー処理とかもできる
ちょっと頑張ればアニメーションとかもできるよ

164:名前は開発中のものです。
11/03/09 23:04:05.38 djP5S+Y6
pause 状態を管理するオブジェクトを作成してactivate、deactivate 切り替えるのが楽
ループを自分でやると閉じるボタンが効かなくなることがある

Begin step
//アニメーションをさせたくない場合 下2行をコメント解除
//instance_activate_all();
//screen_redraw();
instance_deactivate_all(true);
//instance_activate(parent_menu_object) //メニュー表示などをする場合

End step
instance_activate_all(); //アニメーションをしない場合、この行を消す

キー入力は普通にkeyboard event に作ればいい

165:名前は開発中のものです。
11/03/10 06:03:15.54 rN8C/d6H
最初に質問した人ではありませんが
参考にさせてもらって使わせていただきました、ありがとうございます

166:名前は開発中のものです。
11/03/10 07:43:54.63 RIOc5T7c
>>162
確かにバージョンで金取られるのが悔しいのもわかるけどGMに限ったことじゃないだろ
今後よくなるかもで手が出せないんならずっと手出せないんじゃねーかな

167:164
11/03/10 20:21:28.20 1TAXMbhC
アニメーションさせる場合が間違ってたので修正
pause 管理をするオブジェクトのdepthを一番高く設定(depth = 100000 ぐらい)
Begin step
instance_deactivate_all(true);
//instance_activate_object(parent_menu_object) //メニュー表示などをする場合

End step 必要なし

Draw event
instance_activate_all();

Keyboard event(ポーズ状態にするとき)
instance_deactivate_all(true);

164 だと他のEnd step event が動いてしまうので修正

168:名前は開発中のものです。
11/03/10 20:28:10.20 RIOc5T7c
文字列の入った配列のサイズを取得するにはどうしたらいいだろう?
何故かわからないけどvariable_local_array2_getを使うとエラー出るんだよね
まだまだ理解不足だなあ

169:名前は開発中のものです。
11/03/10 20:38:18.14 RIOc5T7c
168 自己解決した

170:名前は開発中のものです。
11/03/12 00:19:05.47 csZUew4U
GM8だけれど
インスタンス名からオブジェクト名を得るのは簡単なん?

object_get_name(インスタンス)
だとならないんだが・・・

171:170
11/03/12 00:32:25.78 csZUew4U
with(インスタンス)で自己解決しました

172:名前は開発中のものです。
11/03/12 05:55:20.49 MMg6Pv8C
自分が思い込んでた間違いと
うまくいった結果を載せてくれよ

173:170
11/03/12 12:59:33.29 csZUew4U
object_get_name(インスタンスID)でオブジェクト名が取得できると思ってたけど
パラメータはオブジェクトIDしか無理なようなので

var obj_id;
var obj_name;

with(インスタンスID)other.obj_id = object_index

obj_name = object_get_name(obj_id)

でできました

174:168
11/03/12 17:16:39.71 H04pfBlp
地震でHDDとんだけど・・・

思い込んでた間違いは、variable_local_array_getで値が存在するかしないかが返ってくると思ってた
実際は代入されている値が返って来るから文字列か数値かで処理を変えれば問題なかった

175:名前は開発中のものです。
11/03/12 20:30:47.61 ohio90gF
>>173
なんでそんな遠回りなんだw
obj_name = object_get_name(インスタンスID.object_index); だけでいい

ついでだけど、varで宣言した変数はインスタンス変数ではなくローカル変数になる
だからwithの中から参照する時にotherを付けるのは間違い。何も付けなくていい

176:170
11/03/12 20:40:53.73 csZUew4U
>>175
ありがとう!
参考になりました

177:名前は開発中のものです。
11/03/13 22:07:35.85 XHHbxYaG
すげー今更だけどスプライトでPSDファイル読めるのな…便利すぎて屁が出た

178:名前は開発中のものです。
11/03/17 10:00:41.41 FiAydu5S
あげ

179:名前は開発中のものです。
11/03/20 18:15:56.73 n9f7tcZ5
みんなは敵のAIとかどうやって組んでいるんだろう・・・


180:名前は開発中のものです。
11/03/20 20:27:12.84 tVTC6o5k
>>179
シューティングゲーム作ってるけど、
自機とか自機弾の速度や方向に応じて自機の後ろにつかせてみたり攻撃の避け方を変えてみたりしてる
他にも自機の攻撃方向を学習して敵全体で共有するってのも考えてみたけど、バランスが崩壊しそうだからやめた
GMはAI作るのに役立つ関数が多いから作りやすくて良い

181:名前は開発中のものです。
11/03/20 21:47:41.83 qNX/YYGZ
ボンバーマンですら中々難しいが格ゲーとかもうキチガイの領域
下手すると勇次郎クラスの化け物になるし作れる奴は凄いよな

182:名前は開発中のものです。
11/03/21 23:48:52.97 WI6Usfsf
ビーム的な物の当たり判定にcollision_rectangleあたりを使いたいのですが
範囲内にオブジェクトがあった場合、そのオブジェクトより後ろを判定外にするにはどうするのがスマートでしょうか?

分かり難いので図で説明するとこんな感じです
● 始点 ○ 終点 □ 範囲 ★ オブジェクト

  □□□□□□
●□□□□□□○
  □□□□□□

↓途中にオブジェクトがあると

  □□□★
●□□□□□□○
  □□□□□□

思いついた限りでは★オブジェクトからもcollision_rectangleを後ろに伸ばし両方に干渉する場合~といった所ですが
どうもかなり複雑になってしまう上、斜め等に対応させると非常に面倒かなと思います
皆さんならどのようにしますでしょうか。よろしくお願いします

183:名前は開発中のものです。
11/03/22 01:02:20.76 gB5rTKn/
GMLscriptsのcollision_triangleじゃいかんの?

184:名前は開発中のものです。
11/03/22 04:17:42.19 ya/xFXIz
>>183
ありがとうございます。教えて貰ってなんですがあまり理解出来ず…
何となくこんな感じかなというのは出来たのですが
    B

A

    C
こんな感じで3点を取って

    B

A
  ■
    C
オブジェクト■が⊿ABC内にある時、Aから(■x,■y)を通る直線A■を延ばしてA■とBCの交点にCを移動
というような感じで変な風に解釈して遠回りをしてるかもしれませんが三角形の当たり判定なら出来そうです

しかしまた質問で申し訳ないのですが点A,B,Cを取ったとして三角形ABCを当たり判定として使うにはどうすれば良いでしょうか?
日本語ヘルプを見た所、衝突判定は点、線、矩形、円しかなくこれらを組み合わせて三角形の範囲を作る方法は思いつきませんでした
線を無数に引くとか強引な方法は好ましくありません。寝ボケておかしな見落としをしているかも知れませんがご教授お願いします

185:名前は開発中のものです。
11/03/22 08:12:42.90 iR906dOg
GMLscriptsって言うサイトがあってそこに三角形衝突判定のコードがあるんよ
他にも色々便利なのあるから見ておくといいかも

186:名前は開発中のものです。
11/03/22 09:45:03.18 iR906dOg
URLリンク(www.dotup.org)
とりあえず頭悪い方法かも知れんけど,自分なりに作ってみた(*‘ω‘ *)
判定領域を分割して,分割された小領域の中で一番近いオブジェクトに処理をするような感じ
めんどいからやってないけど斜めにもできないことはない・・・と思う

スペースで縦横変更 カーソルで移動

187:名前は開発中のものです。
11/03/22 20:14:48.48 ya/xFXIz
ありがとうございます
Proではないので実行は出来ませんでしたが何となく分かりました

188:名前は開発中のものです。
11/03/24 00:31:37.54 6D2aExw3
畜生
スプライン補間のスクリプト作ったのに
もうGMLscritpsにあるじゃんかよ

189:名前は開発中のものです。
11/03/31 07:11:25.20 Rw3hKzTx
自分は何か自作する前に必ずGMToolBox見てる
ここ見てると普通にWindowsアプリ作れそうだ

190:名前は開発中のものです。
11/03/31 09:07:46.03 JmnOgD/s
楽しいのはわかるけど、ちょっとだけ勉強が足らないみたい

191:名前は開発中のものです。
11/03/31 22:10:05.94 pPPL63YW
だれか8のヘルプ翻訳してください・・・

192:名前は開発中のものです。
11/04/01 01:21:44.04 fKVwW7xQ
6のヘルプで十分だろ。中学英語レベルで読めるし、わからなければ翻訳かければそんなに苦じゃないけどな

193:名前は開発中のものです。
11/04/01 01:24:11.69 yh6qhoNL
実は最近GMLの項目だけですが翻訳を始めました
直訳だとなかなか進まないので、最低限意味が通じる程度の思い切った意訳をしようと決心した所でうs
いつになるかわかりませんが、完成したら公開する予定でうs

194:名前は開発中のものです。
11/04/01 08:03:15.74 LChGRC2L
期待大

195:名前は開発中のものです。
11/04/01 20:52:47.03 YN4lAJad
GM8で、7であったスプライトのスムースエッジはどうなったのでしょうか?
sprite_add関数にはsmoothの引数があったのですが、スプライトの設定画面では7にあったようなチェックボックスが見当たらないのですが。

あとsprite_add関数の説明にあるremovebackとはどういう意味でしょう?
ヘルプを翻訳にかけてもいまいち意味がわかりませんでした。

196:名前は開発中のものです。
11/04/01 21:16:13.62 yh6qhoNL
Global Game SettingのInterpolate colors between pixelにチェックを入れれば色補間が有効になります
removebackは背景色(左下のピクセル)を透過させるかどうかだと思います

197:名前は開発中のものです。
11/04/02 00:24:24.14 yQMwUlx7
GM8では個々のスプライトでスムースエッジを設定するわけではないのですか
ありがとうございました。

198:名前は開発中のものです。
11/04/02 02:09:13.66 sPaeXrCR
>195 >197
基本的に7にあったものが消えたりはしてないと思う。変更はあるかもしれないけど。

sprite_addをヘルプで検索すればsmoothがある事くらいは英語読めなくてもわかるだろ
removebackはそのまま、背景を透過(削除・リムーブ)するかどうか。

sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)

>196は質問の意図と答えが合ってない

199:名前は開発中のものです。
11/04/02 02:30:35.48 sPaeXrCR
>195
追記。
スプライト編集画面で、images->Smooth Edgeを選べば関数でなくてもできる。
7ではチェックボックスでそんな事ができたのなら、8ではその機能はフィルタにまとめられたみたい

200:名前は開発中のものです。
11/04/02 02:37:40.65 0Uioc/mt
8.0でもスプライトに外部イメージ画像ファイルを読み込み選択する画面で設定できるはず
右下のあたりにスムースエッジとかの4つの項目がねーか?

201:名前は開発中のものです。
11/04/02 02:38:52.77 0Uioc/mt
あとどうしても分からないのなら透過PNGにしてしまえば
その辺の細かい透過は気にしなくても良くなる、たぶん重くなるけど

202:名前は開発中のものです。
11/04/04 18:52:18.31 1rAEq9fV
やっぱり翻訳なんて無理だ
GM6ヘルプに無いirandomやrandom_rangeの存在を知ったから、というだけで気軽に手を出すような代物ではなかった

203:名前は開発中のものです。
11/04/05 01:11:25.80 jMPVCqkv
>202
まぁヘルプを隅々まで見るのはいい事だから色々な関数や機能がある事を知るのは大事だとは思うが
ヘルプも見ないでグダグダ言ってる奴よりまし

204:名前は開発中のものです。
11/04/05 01:19:20.62 tpTyCtn1
こういう時こそwikiでみんなの力を結集させる時なんだがな

205:名前は開発中のものです。
11/04/05 08:20:03.45 vHX/a/R0
分かる範囲だけでも新しい関数の翻訳をしてくれると非常に助かります。

206:名前は開発中のものです。
11/04/06 14:03:30.37 5wnXN5zQ
GMLだけ翻訳してみる。193ではないけど。
昨日はじめてGame playのヘッダ内のDeactivating instancesまでしか翻訳してない。

207:名前は開発中のものです。
11/04/06 16:54:48.96 eDzll758
ちょくちょくうpしてくれるとテンションあがる

208:名前は開発中のものです。
11/04/06 21:01:17.51 c6d/JfS9
>>206
応援してる!
マジがんばれ!超がんばれ!!

209:名前は開発中のものです。
11/04/07 05:14:09.27 5eJwbnd5
206だけど。

今のところ6から8にかけての変更はほとんどなくて、モーションプランニングと実数計算の関数に少し追加があっただけ。
だからもう少し大幅な変更が見られたら途中でもうpできるようにしたいね。

理解できるかは別として普通に翻訳するだけだけどな。

210:名前は開発中のものです。
11/04/07 07:34:03.38 lcGuIQd6
いつの間にか8.1がアナウンスされてたのか
better accented character supportって言っても、きっと日本語サポートするわけじゃないんだろうな…
それなら即買いなのに

211:名前は開発中のものです。
11/04/07 09:34:31.19 r3wl6MHK
あれ?ダウンロードはまだなのか

212:名前は開発中のものです。
11/04/08 01:08:50.08 Qp/vxYBH
8.1ってどこでダウンロードできるんですか?

213:名前は開発中のものです。
11/04/08 03:16:50.55 5vdAy8GN
アナウンスされてたのかって言ってるだろ。誰がリリースしたと言ったんだ。

214:名前は開発中のものです。
11/04/16 07:05:57.57 aL9LMwd9
8.1きたな
スクリプトエディタ試したけどやっぱ日本語駄目だった
でもいい加減7に対応したいし、とにかく導入するしかないのかな…

ちなみに起動速度上がってるらしいけど、誰かGM7と比べてみた人いる?

215:名前は開発中のものです。
11/04/16 13:42:44.21 Y9cLKogO
なんで7と比べるんだ?8のバージョンアップだろ。

ルームエディタの更新 ・・・ 操作的な意味で、オブジェクトを右クリックメニューから呼び出して編集する機能など
コードエディタの更新 ・・・ コードエディタの高速化、アクセント文字のサポート、コード補完のサポートなど
EXEファイルの暗号化 ・・・ 今までより安全
2D、3Dのレンダリング ・・・ 速くなったのと24bitのZバッファをサポート

マウスのホイール(中クリック)を使った新しい機能と、少しだけGMLも追加されたみたいね
起動速度の高速化はアナウンスされていない

>210のbetter accented character supportもアクセント文字のサポートだから強調表示の更新だろ 日本語じゃない。

216:名前は開発中のものです。
11/04/16 14:30:46.40 q8Rf4MHw
長い棒状のオブジェクトのimage_angleを変更させて坂道を作ろうとしたのですが、どうもうまくいきません。
直角三角形の高さは

底辺*tan(角度)

ですよね。
坂道用オブジェクトとのコリジョンイベントで以下のようなコードを書いてみたのですが、
xが長くなるにつれ、yの位置が坂道オブジェクトの描画されている位置より低くなってしまいます。
image_angleでは正確な角度にはならないのでしょうか?


y = other.bbox_bottom - abs(x - other.bbox_left) * tan(other.image_angle)

217:名前は開発中のものです。
11/04/16 14:40:05.44 WbnbNF9s
>216
三角関数がとるのはラジアン、image_angleは度だからdegtoradで変換する必要がある
あと、イメージが回転するとそれに合わせてbbox_bottomとかも更新される
(回転した後のスプライト全体を囲む矩形になる)から計算合わなくならね?

218:名前は開発中のものです。
11/04/16 14:52:59.50 q8Rf4MHw
>>217
おお上手くいきました。
ありがとうございます。

回転した時のbboxの位置ですが、いろいろな角度で試してみた結果特に問題はありませんでした。

219:名前は開発中のものです。
11/04/16 16:19:19.13 mrGunqbY
評価版の8.1はひどいな
本体起動時に表示される広告
ゲーム背景にずっと表示される広告
ゲーム終了時にさらに表示される広告
実行ファイルのサイズがかなり膨れ上がる

レジストしているならそのままアップグレードすればいいんだろうけど
評価版は8.0のほうが明らかによい

220:名前は開発中のものです。
11/04/17 04:57:23.29 IpP4KM4S
皆さんはランダムな敵の動きをどう制御しているのでしょうか?
毎回32移動するとして周りの八方向の内ソリッドオブジェクトの無いいずれかにランダムとなると
自分は以下のようにやってますが非常に面倒です。repeatとか使えばもっと簡略化出来ますが…
if place_free(x+32,y){r=1}
if place_free(x+32,y+32){r_d=1}
if place_free(x+32,y-32){r_u=1}
if place_free(x-32,y){l=1}
~~~

ここからまた
if(r=1 and r_d=1 and r_u=1 ~~)
if(r=0 and r_d=1 and r_u=1 ~~)
~~~
というように目に見えて非効率的な方法しかよく分かりません。

221:名前は開発中のものです。
11/04/17 04:58:56.68 IpP4KM4S
途中送信してしまいましたが
ランダムに四方八方のいずれかに移動する際の効率的な方法をご教授願いたいです。
よろしくお願いします。

222:名前は開発中のものです。
11/04/17 10:14:44.18 cJFcxO/l
効率的というのがどのような効率かわからないけど
移動量32 で 八方向にランダムだったら
xm = irandom(2)-1; //もしくはround(random(2))-1
ym = irandom(2)-1;
if(place_free(x+xm*32, y+ym*32)) {
//移動させるコード
}
のように移動方向をランダムの対象にすればいいんじゃないかな

223:名前は開発中のものです。
11/04/17 12:52:54.13 5sAF/mq0
後半の判定条件見ると、毎回必ず八方向のどれかに移動しないといけない
(どこにも移動しないというのはナシ)なのかな。
だとすると、まずどこが空いているか調べておいて、その中から選ぶのが良いかと。
// 空いている場所を調べて配列に入れる
count = 0;
for (ix = -32; ix <= 32; ix += 32) for (iy = -32; iy <= 32; iy += 32) {
if ((ix != 0 || iy != 0) && place_free(x+ix, y+iy)) {
vx[count] = ix; vy[count] = iy; count += 1;
}
}
// 配列の中から移動先を選ぶ
ii = floor(random(count)); x += vx[ii]; y += v[ii];

224:名前は開発中のものです。
11/04/18 01:20:40.05 Xie74jLy
>>223
配列ってのが何なのかよく分かりませんでしたがやっと理解出来ました。
これは便利ですね。ありがとうございます。

225:名前は開発中のものです。
11/04/18 02:23:34.93 1Zdo9985
配列の意味くらいはぐぐれよプログラムの基本だぞ
URLリンク(ja.wikipedia.org)

226:名前は開発中のものです。
11/04/18 03:33:08.90 h9qFkv08
プログラムなんてやらずにGML使ってるから配列とかfor文の得体が知れない

227:名前は開発中のものです。
11/04/18 09:10:13.37 1Zdo9985
GMLもスクリプト言語だしプログラムの一部なんだから少しは学んでほしいわ
ループや条件分岐すらわからないならゲーム製作なんてできるわけがない

228:名前は開発中のものです。
11/04/19 00:20:01.67 kz1zizQk
そういうの無しでもゲームが作れるのがGMなんだがな

229:名前は開発中のものです。
11/04/19 07:59:19.80 NZqoseEo
GMLなしでも作るだけ作れて、GMLを使えばもっと色々できるって感じかね
ループや配列くらいは覚えといた方が何かと楽だとは思う
個人的にはPro版でGMLじゃないとやってられない

230:名前は開発中のものです。
11/04/19 14:44:37.14 Y48OGQHx
自分はGMLでやらなきゃ正直使いづらいなあ
ActionScriptなんかよりはるかに楽なスクリプト言語だから覚えた方が得だとは思うんだけどな

231:名前は開発中のものです。
11/04/20 11:27:54.38 jL3wDbuI
GM8アプデしたら動かなくなった件w

232:名前は開発中のものです。
11/04/21 08:39:54.92 ImOBjGil
俺も止まったw
Game Maker Updaterが怪しいね
最新のアップデートはインストーラがあって、こっちならイケるっぽい

233:名前は開発中のものです。
11/04/21 15:46:08.07 JV6K58il
8.1.69でフォントのアンチエイリアシングコントロールを追加したと書いてあるがそんなもんどこにあるんだ

234:名前は開発中のものです。
11/04/22 00:02:23.63 a+osDQye
再インストールしてきたら出てきたよ☆

235:名前は開発中のものです。
11/04/24 14:17:04.01 RIEzWX8c
Lite 8.1 広告だらけだけどスプライトの回転が使えるようになってるね
CharSet 指定できるみたいだけどフォントだけじゃなくエディタにも連動しないから誰得な機能
値上げしたから機能充実・追加があったのかと思ったけどそんな感じではないな

236:名前は開発中のものです。
11/04/25 12:37:26.78 iMyGUfbt
もうなんていうか、金払ったら負けなツールだよなこれ

237:名前は開発中のものです。
11/04/25 15:44:26.74 ERTyqyNJ
GMオワコン化の始まり

238:名前は開発中のものです。
11/04/25 18:09:13.49 /JSNEMHU
まあ、単純なゲームしか作らないならレジストしなくても十分だね

239:名前は開発中のものです。
11/04/25 21:15:40.31 QQx7LSNe
何気に有料機能であるリソースの置き換え機能はゲームが肥大化してくると重要

240:名前は開発中のものです。
11/04/25 23:08:07.50 HxgcpXgk
価格の大半はロゴ消しの価値

241:名前は開発中のものです。
11/04/25 23:16:10.60 hYGZewdW
流れぶったぎってすみませんが、質問させて頂きます

無料版だと、どのバージョンがおすすめでしょうか?
テンプレで8.0の文字化けについて記載されていたので少々気になりました

慣れてきたら悪魔城的な2Dアクションを作ってみたいと思っているのですが…

242:名前は開発中のものです。
11/04/26 00:18:46.97 LDCyW6KM
>>239
あれがないと、メモリの使用量がとんでもないことになるよな
大規模なゲーム作るならレジストは必須だろう

>>241
今はもう8しかダウンロードできないんじゃなかったっけ?

243:名前は開発中のものです。
11/04/26 00:55:14.78 oFKdc1AF
無料版は8以前も手に入る。無料8.0は外部から落とす必要がある
エディタ中の日本語が気になるなら7あたりがいいと思う。
ただしレジストするなら最新版一択になっちゃうという感じかな

244:名前は開発中のものです。
11/04/26 01:41:14.09 mlSDowuO
日本語でレジスト方法について書かれている説明ってないでしょうか?

245:241
11/04/26 04:00:06.20 OFuVootN
回答ありがとうございます
ひとまず7を入手しました、しばらくは7の無料版を使ってみようと思います

レジストは操作に慣れてきたら考えようかなと…

246:名前は開発中のものです。
11/04/26 04:22:55.83 Tg5NYkhP
個人的に英語のエディタに慣れるといちいち全角キー押すのが面倒になった
日本語のコメントが書けないだけで他の機能も使えるしレジストしたほうが便利

というかアクションコマンドのコメントには日本語書けるんだけどな 何故か。

247:名前は開発中のものです。
11/04/26 05:49:41.00 Npu8jOul
コメント書くだけなら英語でも構わないんだが、mbtextの引数で日本語書くときが困る
って言ってもせいぜい100~200パターンくらいだから
いっそ外部ファイルに打ち込んだのを読み込んで変数にぶちこんだ方が早い気もしてきた

248:名前は開発中のものです。
11/04/26 06:41:34.92 Tg5NYkhP
>>247
ファイルから配列に1行おきにループで代入してる
テキストファイルあまり見られたくないならテンポラリファイルに展開するようにすればあんまり問題ないしね

249:名前は開発中のものです。
11/04/26 14:09:25.33 iIkImGvC
これでタワーディフェンス作りたいんだけどGML使わないとやっぱ無理かな?

250:名前は開発中のものです。
11/04/26 15:32:37.25 KekkYEKd
たぶんGMLのが簡単だと思うけど
アクションだけでも問題無いと思う

251:名前は開発中のものです。
11/04/26 16:05:36.00 iIkImGvC
>>250
GMLのが簡単ってこともあるのか
まだGM自体触ったばっかだからもっと使ってみる

252:名前は開発中のものです。
11/04/26 16:49:36.12 TbagIrwc
アクションだけでも関数とローカル変数を使えば大抵の事はできるよ
プログラムを全くやった事が無いならアクションから始めたほうがいいと思う
アクションで覚えた事はGMLに移る時も無駄にならないし

253:名前は開発中のものです。
11/04/27 08:59:32.68 iohphExa
>>248
そうなるよね
文字列と対応するIDを別々のリストにいれておけば参照する時楽かな

254:名前は開発中のものです。
11/04/27 20:19:30.93 EEtUA/Hm
>250-252
GMLのが簡単っていうのは表記ミスの発見や変更が加えやすいから簡単って言う意味だろうなあ
アクションでも同じ事はできるけど正直見づらくて、同じ事やろうと思うと結構グチャグチャになる

255:名前は開発中のものです。
11/04/27 22:07:08.31 5ZsESPRo
あとアクションだと一個ゲーム作って次を作るときに再利用しにくい

256:名前は開発中のものです。
11/04/28 01:11:43.89 FOVplmLs
ifやforをたくさん使うようになると、GMLで書いたほうが分かりやすくなる

257:名前は開発中のものです。
11/04/28 22:22:01.79 0X5ghGKS
URLリンク(www.blackratstudios.com)

アクションをGMLに書き換えてくれた勇者がいるので紹介しておきますね

258:名前は開発中のものです。
11/04/30 02:01:30.31 CeAb+bJr
↑のサイト見て気になったんだけどaction_系のコマンドってヘルプに乗ってる?
検索かけても引っかからないから今までずっと知らなかった
タイムラインGMLで呼び出せないのかと諦めてたけどこれで随分楽になる。すごい助かったよ

259:名前は開発中のものです。
11/04/30 04:37:58.57 0CGYVCn/
紹介したサイトにも書いてあるんだけど

action関数はGM自体に含まれているんだけど、初心者の混乱を避けるためにヘルプには載せていないみたい
さらに引数のガイドもコードエディタで表示してくれないからあまり支持されていないそうだ

上記のサイトで引数についての説明もされてるから見れば完璧だとは思う

ちなみにタイムラインはtimeline_indexで指定できないの?
自作でタイムライン作っちゃうからあまり既存のタイムラインは使ったことがない

260:名前は開発中のものです。
11/04/30 10:49:28.96 NTSCSH68
Show Infomationで全部そのままGML表示してくれりゃいいのに

261:名前は開発中のものです。
11/04/30 14:48:02.10 l+G1gOeI
マウスにオブジェクトがついてくるってアクションあります?GMLうたなきゃだめかな?

262:名前は開発中のものです。
11/04/30 15:14:18.12 s8CMxVtF
マウスの位置格納してる変数参照して
オブジェクトの位置をそれに合わせればいいんじゃね?

263:名前は開発中のものです。
11/04/30 15:34:49.18 0CGYVCn/
普通にMove Towardsのイベントにmouse_xとmouse_y指定すればいいんじゃねえの

コードが書けないなら既存のイベントで何ができるか、どうやったらできるか考えるべき
企画書流し込んでゲームが出来上がるソフトなら誰も苦労しない。

264:名前は開発中のものです。
11/04/30 17:25:31.40 CeAb+bJr
>>259
ド素人プログラマってのがバレバレになるけど

timeline_index = (呼び出したいタイムラインのname)

って感じで前にやってみたんだけど呼び出せずに他どうやるかわかんねってなって諦めてた
元々作ってたタイムライン流用したくて、ダメだったら259のように自作タイムライン作るしかないかなとは思ってた

どうせタイムラインもコピペ流用できないしGMLで自作したほうが後々の為ではあるんだろうなあ…

265:名前は開発中のものです。
11/04/30 17:41:07.10 s8CMxVtF
普通にtimeline_index = timelineの名前 でいけたと思うが
position,speedの設定し忘れや、timeline_runningがfalseになってて動いてないとかかもな
timeline自体に使ってる名前が重複してるか、有効ではない名前になってたりする可能性も有りか

266:名前は開発中のものです。
11/04/30 18:10:55.44 CeAb+bJr
素早いレスありがとうございます。timeline_runningをtureにしたら無事いけました
というか上の変数もヘルプにのってなかった…これヘルプのみ教科書じゃ網羅できないってことか
もうちょい色々使って調べるようにしてみます。本当ありがとう!


267:名前は開発中のものです。
11/04/30 20:06:21.61 W0WXxwKu
ついさっきDLしたばかりの無知で悪いんだが、
簡単なモノって大体どれくらいのモノならGMLで作れるの?
ストファやスマブラとかの格ゲーとかでもいける?

268:名前は開発中のものです。
11/04/30 20:21:09.42 W0WXxwKu
ごめん↑は「GML無し」での間違い

269:名前は開発中のものです。
11/04/30 20:40:30.34 S9YQ/liJ
>>267
いけるいける




簡単なモノって大体どれくらいのモノなら鉛筆で書けるの?
みたいな話だからやり方次第としか言いようがねぇよ

自分でスマブラのようなゲームを作ったことはある
格ゲーは作れるしSTGも作れるしアクションも作れる
だが楽かって話になるとそれは別問題だ
まず聞く前に自分で試してみてどのくらい出来るのかやってみる気概がないと後々切ないよ

270:名前は開発中のものです。
11/04/30 20:47:07.56 W0WXxwKu
>>269
ふむ、了解した。
楽じゃないのは承知の上だから大丈夫なんだが、
英語が怖いから5.3インスコしたんだけど
やっぱり7.0や8.0のがいいのかな?

271:名前は開発中のものです。
11/04/30 21:08:45.32 S9YQ/liJ
両方インストールして両方試してみれば良いのに


特にこだわりがなければ7や8で構わない
英語ったってそんな難しいものはないし困ったらエキサイト先生で構わない
英語がある程度読めるとYoYoGamesのサンプルやスクリプトを参考に出来て便利
7や8だと透過pngを使えるから,スマブラやストリートファイターのようなエフェクトがリッチなゲームを作るには便利
あと5.3だとVista以降で動かないかもしれない

とりあえずまずは自分で弄って試行錯誤して悩むのをお勧めする

272:名前は開発中のものです。
11/04/30 21:12:22.72 W0WXxwKu
>>271
そ れ は 盲 点 だ っ た

アドバイス㌧クス。
とりあえずブロック崩し作ってくる

273:名前は開発中のものです。
11/04/30 23:30:39.04 NTSCSH68
質問先読みでもしようか
全部消えたら

274:名前は開発中のものです。
11/04/30 23:38:57.48 9UNUjPoi
んじゃ
バーが壁にめり込んで動かない

275:名前は開発中のものです。
11/05/01 01:20:50.95 U7TmMKRc
馬鹿にすんなよwww

276:名前は開発中のものです。
11/05/01 02:15:52.90 ib5IPz5T
>274 あるあるw

277:名前は開発中のものです。
11/05/01 02:26:04.46 ib5IPz5T
ところで>272はなんでGML以外で作ろうとしてるんだ?
管理しやすいし少しでも楽にするならGMLに慣れちゃったほうがいいと思うよ

あと>273のIDに感動した

278:名前は開発中のものです。
11/05/01 07:37:06.68 Q9izUd83
>>272
もちろんエロいブロック崩しなんだろうな?

279:名前は開発中のものです。
11/05/01 10:16:25.94 19Yqwfe7
やっぱプログラムってところで壁を感じてるんじゃないかな?
やってることはアクションと変わりないんだけどね

280:名前は開発中のものです。
11/05/01 17:07:17.89 24HhuA0O
>>277>>279
そうなのか?
Cやろうとして失敗した奴なんだけどね俺は

>>278
そりゃもちろん!

で、バーが壁にめryは何とか回避したんだが、
崩す前の絵をブロックにする方法が良く分からない。
一個一個別のオブジェクト作らないとダメなの?

281:名前は開発中のものです。
11/05/01 17:18:15.95 Q9izUd83
ブロックに使うインスタンスオブジェクトAに
一定区切りでバラバラにした1枚の画像をsubimageに当てはめておいて
インスタンスオブジェクトA生成→生成したインスタンス群のsubimage変更
みたいな感じでいけると思うが

282:名前は開発中のものです。
11/05/01 17:24:20.44 24HhuA0O
>>281
アドバイス㌧クス
早速やってみる

283:名前は開発中のものです。
11/05/01 19:10:07.81 24HhuA0O
>>281
元気良く飛び出したのはいいんだが、早速二行目で詰んだ。
「一定区切りでバラバラにする」って分割画像って奴の事?

284:名前は開発中のものです。
11/05/01 19:26:16.23 GZUIxE+L
>>283
そうそれ
1枚の画像をそれで分割して、subimageを何枚も作っておく
あとはメインアクションのChange the spriteでブロックごとにsubimageの画像を変更すればいいだけ

285:名前は開発中のものです。
11/05/01 20:28:48.12 24HhuA0O
>>284
アドバイス㌧クス
一応脱衣ブロック崩しにはなったよww

286:名前は開発中のものです。
11/05/01 20:36:04.77 v4vaMhb8
ブロックの座標に合わせてdraw_sprite_partしたら分割する手間が省けるかなと思ったり
楽をするための仕組づくりに手間かけるのもプログラミングの醍醐味よ

287:名前は開発中のものです。
11/05/01 20:42:32.65 24HhuA0O
>>286
それをExcuteCodeの中にぶち込んでどうにかすれば
あの長ったらしいIfのアイコンを並べなくて済むわけですね、わかります

今度は同じ物をGMLで作ってみるよ

288:名前は開発中のものです。
11/05/01 23:14:11.68 U7TmMKRc
頑張れ、風邪ひく前に頼むよ

289:名前は開発中のものです。
11/05/02 00:16:28.55 D5lQKg2j
>>288
ゴメン…画像は勝手にパクってる奴だからうpるの無理
パンツ穿いてこい

ヘルプやら>>257やら見てたら何とかGMLで出来たよ。
何とかやれそうだ、おまいらありがとう。

で、日本の非公式だとかwikiは現在では忘れられてる状態?
長らく更新されてないけど

290:名前は開発中のものです。
11/05/02 02:04:01.93 UL0eJI8Q
>289
Wikiは更新されてない箇所多いけどある程度役には立つから見て損はないよ
日本非公式はわかりづらいし、イベントのことまで書いてあるからどうだろうなあ
役に立つのはmbtext関連かな。
公式フォーラムを翻訳しながら眺めてるだけでも割と有意義だと思う

291:名前は開発中のものです。
11/05/02 18:11:25.40 D5lQKg2j
>>290
そーなのかー
教えてくれて㌧クス

そろそろレスしすぎかと思うんで
自重して一人で修行の旅に出てくるよ。
わかんないことあったらまた聞くかもしれんが、
よろしくお願いします

292:名前は開発中のものです。
11/05/02 18:12:41.36 gIJtv+AV
訊く前にまずバックアップ取ってから試すのを忘れるな

293:名前は開発中のものです。
11/05/02 21:13:01.66 ai/+YG7h
初心者ですみません、どうしてもわからなかったので質問させてください。
もしも気に障ったならスルーしてもらって構いません。
現在GML無しで横スクロール型のアクションゲームを作っているのですが、ジャンプした後や、高い所から落下した時に落下モーションを取ろうと思っています。
ジャンプして上昇中に上昇モーションを取ることはできるのですが、落下モーションに移行させるコツがわかりません。
何卒ご指導いただけるとありがたいです。


294:名前は開発中のものです。
11/05/02 21:35:41.85 gIJtv+AV
上昇時と落下時のspeedの違いでモーションを変えればいいだけ
負の値ならモーションAに正の値ならモーションBに

295:名前は開発中のものです。
11/05/02 21:47:52.17 ai/+YG7h
>>294
なるほど!
わざわざ回答頂き、ありがとうございました。

296:名前は開発中のものです。
11/05/02 23:07:06.15 n75L3pQw
マルチプレイの方法について質問です
日本語版ヘルプを読んだのですが

親側
mplay_init_tcpip(mplay_ipaddress())
mplay_session_mode(true)
mplay_session_create(sesname,playnumb,playername)

子側
mplay_session_join(numb,playername)

こんな感じのを適当なオブジェクトにでも入れれば接続出来るのでしょうか?
接続されたとして互いのデータはどのように共有されるのでしょうか?
mplay_data_writeで変数?の共有は出来るのでしょうか、
しかしルーム、オブジェクト、操作、など普通のゲームと同じ様に作っては複数人でのプレイはとても出来るように思えません
非常に単純な通信だけでも作ってみたいのですが、もし良ければご教授願いたいです。よろしくお願いします

297:名前は開発中のものです。
11/05/03 01:36:42.32 /zL0KSIx
専門外だが何度も呼び出すようなモノでもないんだろうし、user_definedイベントとかに入れちゃって接続する時とかホストを立てるときに呼び出せば楽そうだね
変数の共有だけど1,000,000の共有領域があるって書いてある。
番号を指定してやれば「親側の指定番号に含まれる内容を共有」することになる、という印象

単純な通信なら、インスタンスAを親側で動かして、子側で同じインスタンスAが動くか試してみるとか
親側のルーム移動で子側も移動されるのかとか、これは通常じゃ多分されないけど。
mplay関数が結構多いから眺めてても楽しいね 今度何か作ってみよう

298:名前は開発中のものです。
11/05/03 08:30:07.55 Lm+aiDTQ
共有領域にルーム情報とかがあれば、それを各々の固体のオブジェクトが参照して色々とできるんじゃない?
固体Aが動く→共有領域の情報に差異があれば→共有領域に位置情報格納→描画前に各々の固体で情報更新

マルチプレイなんて触ったこともないし、ヘルプ見て思ったことを書いただけだけど

299:名前は開発中のものです。
11/05/03 11:04:50.01 gTNZKyvs
スレがやけに伸びていると思ったら質問ばかりか
と思ったらエロいブロック崩しか


いいぞもっとやれ

300:名前は開発中のものです。
11/05/04 13:42:26.84 4/6+Iz6C
マルチプレイでエロいブロック崩しとか胸が熱くなるな・・・

301:名前は開発中のものです。
11/05/05 01:03:13.97 MgqdZdKE
負けると1枚着せられるのか
オチオチ抜いてる暇もない

こんな糞下らない発想を素人でも容易くゲーム化出来るのは最高の旨み。マルチプレイは訳分からんけど
こんな感じのツールでコンシューマー用のゲームが作れればゲーム業界は活発になるだろうし斬新な作品も沢山出そうだ
何より素人がコンシューマーゲーム開発出来るなんて夢みたいな話じゃないの

302:名前は開発中のものです。
11/05/05 01:09:17.48 JBnJO6ov
まぁあるけどな。ロイヤリティが高かったりと色々問題がある。

日本は特に鎖国文化だから技術共有はしたがらないし、ブランド力を大切にするから自社開発エンジンとか作っちゃう大手が多いよね
結局作ってもハードがポンポン出るからそれにも追いつかないといけないわけだし 問題は多いみたいね

このあたりでもどうぞ
URLリンク(ja.wikipedia.org)

303:名前は開発中のものです。
11/05/05 09:45:30.25 1FhwUPBo
負ける・・・?ナニを言っているんだ
協力してブロックを崩すに決まっているだろう

ゲーセンであったような
壁からの自機移動範囲を四角で囲んで
切り取っていくと裏の絵が表示されるタイプのゲームのがマルチにはよさそうだけどな

304:名前は開発中のものです。
11/05/05 11:51:18.22 dzP8cXHV
クイックスか

305:名前は開発中のものです。
11/05/05 12:52:19.10 2lG465FO
ギャルズパニックじゃねーのか?

306:名前は開発中のものです。
11/05/05 14:00:01.13 WPSiIO8D
お前ら詳しいなw
もう作っちゃえよ

マルチプレイ用のDLLならフォーラムで公開されてた気がする

307:名前は開発中のものです。
11/05/07 11:53:33.37 icn1PkuP
>>302
MMDとかがそうだけど、ネットでの集団製作文化みたいなのができると今後面白くなると思うだよなー

308:名前は開発中のものです。
11/05/08 02:42:21.59 wBtB3c8Q
たしかにGM単体でもいいから大きなコミュニティがほしいとは日々思う
公式フォーラムがまさにそんな雰囲気だけど日本にない・・・共有する感覚が少ないし、著作権の主張が強いからな

309:名前は開発中のものです。
11/05/08 13:29:47.01 zV8xakJA
描画した図形を回転させるのはPROじゃないと無理なのでしょうか?

310:名前は開発中のものです。
11/05/08 18:43:24.87 CZaxrsDW
>>308
pro版クレカ必須、日本語使いにくいで新規の人が入りづらい
使い慣れた人には折々のアップグレードは話題にするような追加機能がないってことで
結局人もネタもそれほどないんだよ
非公式フォーラムが廃れたのは惜しい反面しょうがないとも思う

>>309
お勧めしないけれど、最新lite 8.1 は回転できる
それ以外は回転画像を用意する必要があり

311:名前は開発中のものです。
11/05/08 18:44:17.76 A0zRpvOC
8.1Liteは広告が異常に多いとか聞いて触ってもいないわ

312:名前は開発中のものです。
11/05/09 13:09:59.63 cjimXQQf
GMで敷居が高いって事はないと思うけど、まぁ色々あんだろね

>309は描画した「図形」の回転だよね スプライトじゃないんなら出来るんじゃないかな。
まぁ面倒だけど、計算させるとか

313:名前は開発中のものです。
11/05/10 20:34:03.75 Xl95nJbq
スプライトのアニメーションが、EditSpriteのSpeedもRoomのSpeedも同じ30なのに、実際にプレイすると本来より早く動くのですが、これはどう修正すればいいですか・・・?

314:名前は開発中のものです。
11/05/10 21:03:12.31 T8uqKylv
EditSpriteの方のSpeedはあくまでプレビューだから関係ないと思う。
どっかでimage_speedをいじって1以上とかにしてるオチじゃないの?
image_speed = 1で早いと感じるなら0.2とか0.3とか

315:名前は開発中のものです。
11/05/10 21:27:12.48 Xl95nJbq
>>314
回答いただき、ありがとうございます。
EditSpriteとRoomのSpeedが同じでもプレビューの速度が実際に一致するとは限らないのですか。そういうもんなのですね。
左右移動時にアニメーションを左右使い分けているのですが、どうも挙動がおかしいのです。
アニメーションの変更は、別途歩行アニメーションのオブジェクトを用意してChange instanceを利用しています。
通常時は普通に動作してくれるのですが、特定の条件でインスタンスの親を変更させた後(プレイヤーキャラの変身で見た目と挙動を変えるためです。)、
移動アクションのコマンドを通常時とまるまる同じにしたのに、今度はアニメーションの最初の数コマまでしか表示されずにまた一コマから動くという妙な動きしかしないのです。
コマンドが同じなのに異なった挙動を取るので、もうさっぱりです・・・・。
わかりづらい内容でごめんなさい・・・。説明しづらいので、もしも回答しにくかったら、スルーしてください;


316:名前は開発中のものです。
11/05/10 21:43:52.91 T8uqKylv
個人的で悪いんだけど、アニメーション如きでインスタンスを消したり生成したりするのはお勧めしない。
アニメーションを切り替えるだけならsprite_indexでスプライトの指定を変えた方が遥かに楽だしバグを回避できる。

アニメーションについてはバグなのか仕様なのかわからないけど、スプライトのサブイメージ数がチェンジする前のインスタンスのものを引き継いでるとかそんな香りがする
よくわからんけど

317:名前は開発中のものです。
11/05/10 21:50:01.83 Xl95nJbq
>>316
こんな説明に、丁寧に回答いただき、重ね重ねありがとうございます。
まさしくおっしゃる通り、サブイメージ数を引き継いでました。親の枚数を増やしたら通常通り動きました!
本当に感謝いたします。
実はまだGMを触って2週間程の初心者でして、スレ汚し大変失礼しました。
sprite_indexですか。ちょっとわからないので調べてみます。


318:名前は開発中のものです。
11/05/10 21:50:53.80 Mg3KGJhG
subimageの切り替えをimage_speedじゃなくて変数を用いて使えば
A状態だとsubimageの0-6を使用、B状態だと7-12を使用みたいな感じにもできる
まぁ>>316のやり方が楽だと思う

319:名前は開発中のものです。
11/05/10 21:57:47.26 T8uqKylv
>318
なるほど 1個のスプライトで全部のアニメーションをカバーするのか
管理がダルいけどありな方法だなぁ

>317
sprite_indexはそのオブジェクトが指定しているスプライトIDだよ
ヘルプ読め URLリンク(www.geocities.jp)

320:名前は開発中のものです。
11/05/10 22:47:22.72 Xl95nJbq
>>319
なるほど、sprite_indexの意味がちょっとわかりました。
こっちの方が管理が楽そうですね。
ちょっと工事してきます。
回答いただけた方、本当にありがとうございました。

321:名前は開発中のものです。
11/05/10 23:34:40.50 PCGaliPA
>>316
instance_changeすると、オブジェクトのプロパティで設定できる項目
(depthとかvisibleとか)は新しいオブジェクトのデフォルト値に置き換わる。
それ以外の変数は、チェンジ前のものがそのまま引き継がれるというルールっぽいです。

というわけで
sprite_index は新しいものに変わるが
image_index, image_speed は今の値をそのまま引き継ぐ。
インスタンスの変更を使うなら、これらの変数は
createイベントあたりで初期化しておくのが無難。

322:名前は開発中のものです。
11/05/15 16:44:15.62 N6qdRXUq
アンドゥ機能って無いんですか?

323:名前は開発中のものです。
11/05/16 01:01:44.11 vRUdEGoj
>322
アンドゥは個別にあるだろ アイコンまであるのに。
何に対して言ってるのかまったくわからん

324:名前は開発中のものです。
11/05/16 10:11:31.38 lDJNj9Lq
アンドゥトロワ

325:名前は開発中のものです。
11/05/16 20:25:59.31 ytgKQB8D
プレイヤーを左(もしくは右)の方に置いた状態で横スクロールするために

//プレイヤーが右向きならglobal.muki=1
if(global.muki == 1) x = 120 + obj_player.x;
else x = -100 + obj_player.x;
y = obj_player.y;

というコードをstepで実行するオブジェクトを作って一応うまくいったのですが
なんだかスクロールが微妙になめらかじゃない感じがします
原因わかる方、ご教示してくださると幸いです
気のせいだったらすみません

room設定は
width 960
Height 480
View in room X 0 Y 0 W 480 H 320
Port on screen 同上
Hbor 240 Hsp 9
Vbor 160 Vsp -1
としています

326:名前は開発中のものです。
11/05/16 20:56:02.31 CFVi0QEm
どういう状態かよくわからない
プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
それとも強制スクロールでプレイヤーオブジェクトを画面外に出ないようにする?

327:名前は開発中のものです。
11/05/16 21:08:15.11 ytgKQB8D
すみません

目指しているのは、マリオのような通常横スクロールで、プレイヤーが画面の真ん中より進行方向逆側をキープしつつの
スクロールです
進行方向(プレイヤーオブジェクトの向いてる方向)の画面を多く見せたいのです
プレイヤーが逆方向を向いたときは、向いたがわの画面を多く見せたいのです


○をプレイヤーとすると、
右向きの時はこんな感じで、プレイヤは画面上はその位置をキープして


  ○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

左向きの時は、実際の位置は変えずに、こういう感じにするのを目指しています


                         ○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

う~む…なんかうまく説明できません
申し訳ない

328:名前は開発中のものです。
11/05/16 21:10:34.71 ytgKQB8D
>>326
>>プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
すみません。見逃していました
たぶん仰る通りのことを目指しています

329:名前は開発中のものです。
11/05/16 21:58:08.71 CFVi0QEm
たぶん透明のオブジェクトを作って
viewはそれを追従するようにしてるんだと思うけど
それならHspの値を変更すれば追従速度が変わるんじゃないかな
少数点とかの細かい値は指定できなかったと思う

330:名前は開発中のものです。
11/05/16 22:00:28.57 sywNYm8h
Step じゃなくて End step に置くっていうのはやってみた?

331:名前は開発中のものです。
11/05/16 22:17:00.33 ytgKQB8D
ご教示ありがとうございます
End stepに置いたら上手くいきました!
原因は実行の順番にあったのかな

>>329
ずばりその通りにしています
原因は透明のオブジェクトの方にあるようでした
ありがとうございました~

>>330
イマイチStep系統の使い勝手を分かっていませんでしたが、ちょっとわかったような気がします
ありがとうございました~

332:名前は開発中のものです。
11/05/17 07:32:08.70 73LY8Wv3
皆は外部ファイル(セーブデータやミッションデータなど)はどうしてる?
自分はミッションクリア式のゲーム(例えばイキキ様のはかいマン)を作っているけれども、外部ファイルをどんな風に扱えば良いのかなと

携帯からすまん

333:名前は開発中のものです。
11/05/17 11:17:17.96 VvMqXX45
どうしてるってどういう意味?
セーブデータならexeと同じフォルダに適当なフォルダ作ってその中に入れてるな
暗号化したければお好みで

334:名前は開発中のものです。
11/05/17 13:46:18.19 i8OzSkbD
exeのあるフォルダにsaveフォルダ作って暗号化して放り込んでる

335:332
11/05/17 16:56:20.38 73LY8Wv3
>>333,>>334
ありがとうございます。
暗号化ですか…調べてみます

336:名前は開発中のものです。
11/05/19 03:23:58.02 7W9fWkhX
スプライトを読み込むとメモリ上ではbmpになるけど、メモリ上でもpngのまま扱う方法ってないのかな?
連番画像を読み込んだ時のメモリ使用量が辛くなってきた
ちょっとdllの作り方調べるくらいじゃ判断がつかない

337:名前は開発中のものです。
11/05/19 03:24:59.59 7W9fWkhX
ごめん、上のはpngを読み込むならpngのまま、gifを読み込むのならgifのままってことね

338:名前は開発中のものです。
11/05/19 03:56:58.93 +PTB5Jtq
ファイル形式のままメモリ上で保持するっていうのはない
読み込む画像データを少なくする手段を考えるほうが手っ取り早いはず
シーン毎に必要な画像だけ裏で読み込んでいらん画像は破棄するとか

339:名前は開発中のものです。
11/05/21 00:19:10.49 FrjLYHtD
8.1になってから半角カナ使えなくなった?

340:名前は開発中のものです。
11/05/22 02:23:55.82 DGEjNdCf
突然すみません、質問させてください。
アニメーションgifの特定のsubimageの時にwaveを鳴らすって処理はできますか?
例えばアニメーションの4番目と8番目が拳を振り下ろすシーンで、その時に打撃音を鳴らすといった事は可能でしょうか?
素人の質問で恐縮です。
もしよろしければ回答頂けるとありがたく思います。

341:名前は開発中のものです。
11/05/22 12:22:40.30 Q11em/4c
俺のやり方

効果音が鳴ったかどうかの変数を作っておき、image_indexが3以上になったら変数をtrueにして効果音を鳴らす

if image_index < 3
{
se_flag = 0;
}
else if image_index >= 3 && se_flag == 0
{
sound_play(効果音);
se_flag = 1;
}


342:名前は開発中のものです。
11/05/22 12:25:46.90 Q11em/4c
あ、8番目も鳴らすのか、ならこうかな

if image_index < 3
{
se_flag = 0;
}
else if image_index >= 3 && se_flag == 0
{
sound_play(効果音);
se_flag = 1;
}
else if image_index >= 7 && se_flag == 1
{
sound_play(効果音);
se_flag = 2;
}

343:名前は開発中のものです。
11/05/22 13:15:26.08 UUQ6TMbs
他にも効果音を鳴らす行動があるなら、配列とかも作ってどこで鳴らすかとかもやるといいかもね

a[0] = 2;//鳴らす箇所の数
a[1] = 3;//鳴らすimage_indexその1
a[2] = 7;//鳴らすimage_indexその2
sound_ids = 効果音1

if(!sound_isplaying(効果音1)){//効果音1が再生中では無いなら
for(i=1;i==a[0];i+=1){
if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば
sound_play(効果音1);//効果音を鳴らす
}
}
}

344:名前は開発中のものです。
11/05/22 13:17:04.98 UUQ6TMbs
ありゃ、修正ミスだ
たぶんこれで大丈夫なはず

a[0] = 2;//鳴らす箇所の数
a[1] = 3;//鳴らすimage_indexその1
a[2] = 7;//鳴らすimage_indexその2
sound_ids = 効果音1

if(!sound_isplaying(sound_ids)){//sound_idsが再生中では無いなら
for(i=1;i==a[0];i+=1){
if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば
sound_play(sound_ids);//sound_idsを鳴らす
}
}
}

345:名前は開発中のものです。
11/05/22 23:48:09.68 DGEjNdCf
>>341-344
回答ありがとうございます!
おかげで出来ました。ありがとうございました!

346:名前は開発中のものです。
11/05/23 15:59:21.06 AtLcnK/y
延々と右にスクロールするボスステージを作りたいのですがステージをループさせるのは可能なのでしょうか?
またボスが登場するときなどに画面を揺らす効果を付けたいのですがよくわからないので教えていただけないでしょうか?
なんとなくviewに関係ある関数を使うのだとは思うのですが・・・

347:名前は開発中のものです。
11/05/24 08:00:36.19 TE7zmycQ
ループの方法はいくつか思いつくけど全部力技だからもっと賢い人のレスに任せた

画面を揺らすのはviewで合ってるよ
view_*portとview_*viewの区別が最初はつき辛いから注意

簡単に言うなら、view_*viewがビデオカメラのレンズで
view_*portはビデオで撮った内容を映写するためのプロジェクターだと思えばいい

view_enabled = true; //view機能をONにする
view_visible[0] = true; //0番目のviewを使う

//まずはカメラで撮りたい場所を決める
view_xview[0] = 0; //ルーム内の座標x=0と
view_yview[0] = 0; //座標y=0から
view_wview[0] = 640; //幅640pixel
view_hview[0] = 480; //高さ480pixelの範囲をカメラで映す

//撮った内容をスクリーンのどこに映写するか決める
view_xport[0] = 0; //座標x=0と
view_yport[0] = 0; //座標y=0から
view_wport[0] = 320; //幅320pixel
view_hport[0] = 240; //高さ240pixelの範囲に映写する

348:名前は開発中のものです。
11/05/24 08:02:35.70 TE7zmycQ
こうすると、カメラで撮った範囲がスクリーンの左上に320*240に縮小されて写るはず
(スクリーンの大きさは640*480ってことにしとく)
ここまで出来たら、view_xportとかview_wportとか色々変えて
何が起こってるのが自分で理解してみるといい
丁度プロジェクターをいじってるような感じだね

次はview_xviewとview_yviewを変えてみる
これはカメラを動かすことと一緒だってわかるはず

それが出来たらあとは簡単
画面を揺らすってことは、つまりカメラを揺らすってことだから
view_xview[0]とview_yview[0]を適当に変えればOK

昔苦労したから色々書いたけど、とりあえず自分で色々触ってみるといいよ
ちなみにGMLじゃない方法は知らない

349:名前は開発中のものです。
11/05/25 02:30:01.55 ZZ2I1X7r
特定オブジェクトのインスタンス数を調べるにはどうすればいいのかしら

350:名前は開発中のものです。
11/05/25 10:10:27.96 j/e14whg
>>349
つ instance_number(obj)

351:名前は開発中のものです。
11/05/25 14:05:01.90 opsyaCmR
ニホンゴヘルプヲヨメコノヤロウ

352:名前は開発中のものです。
11/05/26 12:03:30.14 j9K6d2Wg
GM8.1はbGMスクリプト使えないのかなあ・・・。
Illegal array index in script "bGM_play".
trying to access argument[3], but only 3 arguments have been supplied.
ってエラーでて起動できないです。

353:名前は開発中のものです。
11/05/26 12:58:51.69 FOEeM3du
>>352
そのエラーをまんま翻訳すればわかると思うが。
要は値が足りてないってことで、以前のGMで省略できてたところが
8.1では省略不可になってるってこと。

354:名前は開発中のものです。
11/05/26 13:01:56.58 j9K6d2Wg
>>353
うう、つまり自分で修正コード入れない限り再生できないってことですか。
GMLを最近学び始めた俺には少し厳しい・・・・。

355:名前は開発中のものです。
11/05/26 13:54:15.81 FOEeM3du
修正の必要はないと思うけどな

bGM_play(filename, volume, is_loop, pan, pitch);

だからループやパン・ピッチの値を全部入れればいいんじゃね?

356:名前は開発中のものです。
11/05/26 14:13:00.56 j9K6d2Wg
>>355
お、おおおお!たったこれだけのことだったのか・・・!
危うくGM7で再出発するところでした。再生できました。
本当に感謝します。
くだらない質問でスレ汚しすみませんでした。

357:名前は開発中のものです。
11/05/26 14:23:45.17 YWyy1BIh
省略不可になってるとか、どんどん使い方が厳しくなっていくな
横着するなってことなんだろうが

358:名前は開発中のものです。
11/05/26 15:47:29.28 FOEeM3du
よこしま氏は省略した時のスクリプトをちゃんと組んでるんだけど
値を見るタイミングがそのコードを見た後だったのが関数のコール時点に
変更になってるせいだと思う。YoYo側はそっちのほうが楽にエンジン作れるからいいんだけど、
ユーザーにとっちゃ厳しい変更だよね。

359:名前は開発中のものです。
11/06/01 20:06:27.79 +m52XcHS
GMLからSet time lineみたいにタイムラインを使いたいのですがtimeline_add()の()部分にタイムライン名を入れるだけでは使えないのでしょうか?
Wrong number of arguments to function or script.とエラーが出てしまいます

360:名前は開発中のものです。
11/06/01 20:39:53.72 empjEd2o
なんでニホンゴヘルプ読んでから質問しねーんだよぉぉぉぉぉ!!

361:名前は開発中のものです。
11/06/01 20:52:15.33 Wfx+wiQY
timelin_addは引数をとらない。そしてそれはタイムラインを新しく作るための関数だ。
タイムラインを開始するには
timeline_index = 開始したいタイムライン と代入して
先頭から開始したかったら timeline_position = 0 にして
さらに、GM8以降だったら timeline_running = true にする。

362:名前は開発中のものです。
11/06/02 00:00:46.77 8YtJadZR
>>361
ありがとうございます
ヘルプのtimeline_indexは(番号)だとか書いてあってまた違うものだと思っていました
代入する物なのですね

363:名前は開発中のものです。
11/06/04 04:36:35.65 bKns1Szr
コードの中でaaa = x+yと書いた場合、以降aaaと書く度に計算されてるんだよね
ステップ中に一度出した計算結果を、再度計算抜きでそのまま参照する方法ってある?
計算内容によってはいくらかパフォーマンスが上がりそうな気がする


364:名前は開発中のものです。
11/06/04 04:40:17.43 +R2gRvWC
aaaという変数にx+yの計算結果が入っているだけ、計算式が入るわけじゃない

365:名前は開発中のものです。
11/06/04 06:04:20.74 bKns1Szr
その計算結果を出すために毎回計算しているという事は無いんですか?

スクリプトaaa「x+y」
スクリプトbbb「hspeed+vspeed」

instance_create(aaa(),bbb(),object)

この場合でもそれは同じですか?

366:名前は開発中のものです。
11/06/04 07:02:02.49 +R2gRvWC
スクリプト呼び出しの場合は毎回計算される
変数を読むだけなら計算された結果の値
step毎にaaa = x+yの計算はされる

計算するための条件をつけるとかで多少は改善できるかもしれないけど
単純な数値だけの計算だと、あまり関係無いと思う
文字を数値に変換したりを毎step繰り返すと重くなるけどね

>>365の場合
x+yの計算→hspeed+vspeedの計算→そしてオブジェクトの作成

367:名前は開発中のものです。
11/06/04 07:08:45.01 bKns1Szr
なるほど
スクリプトはコードが綺麗にまとまるので頻繁に使っていましたが
内容によっては直接書いたほうが良いという事なんですかね
どうもありがとうございました

368:名前は開発中のものです。
11/06/04 07:26:48.41 +R2gRvWC
条件次第だけど必要なときだけ計算させて使うって方法があるかな

x+y位置の情報を得るなら、キーを押して移動した後に
変数=aaa()とかで結果を入れるようにするとか
移動しない限り変数の値が書き換わらない

369:名前は開発中のものです。
11/06/04 08:00:33.49 bKns1Szr
x+yというのはでたらめ過ぎたのでもう少しまともに書くと

スクリプトPD「point_direction(x,y,target.x,target.y)」

if (PD() > 0) && (PD() <= 90){ 処理 }
if (PD() > 90) && (PD() <= 180){ 処理 }
if (PD() > 180) && (PD() <= 270 ){ 処理 }
if (PD() > 270) && (PD() <= 360){ 処理 }

このPDの計算をステップ中一度だけに出来ればコスト削減になるのではと考えたのです
スクリプトよりもPD = point_direction(x,y,target.x,target.y)又はvar PD(略)としたほうが良いのでしょうか

370:名前は開発中のものです。
11/06/04 10:44:32.20 uM1fq+B8
処理を分岐させるための変数を「PD」、
point_direction(x,y,target.x,target.y)の計算をするスクリプトを「ScriptPD」
としたときに

PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む

if (PD > 0){ //ついでにこっちのコードもすっきり
  if (PD <= 90){処理1}
  else if (PD <= 180){処理2}
  else if (PD <= 270){処理3}
  else if (PD <= 360){処理4}
}


371:名前は開発中のものです。
11/06/04 11:06:07.76 bKns1Szr
大変為になりました
どうもありがとうございます

372:名前は開発中のものです。
11/06/04 11:18:43.54 bKns1Szr
何度もすみませんがvarでスクリプトを代入した場合でも>>370でしょうか?

373:名前は開発中のものです。
11/06/04 11:37:28.17 uM1fq+B8
varは代入ではなく変数の作成。
ScriptPDの返す値は0~360の整数で、GMLは変数の頭文字に数字が使えないので
var ScriptPD();とするとエラーが出る(はず)

374:名前は開発中のものです。
11/06/04 18:00:28.68 bKns1Szr
var PD ;
PD = scriptPD() ;

これなら>>370も一度の計算で大丈夫ですよね?

375:名前は開発中のものです。
11/06/04 20:30:40.98 czogavCN
ごめん、まともに考えてレスしようと思ったけど、処理速度ほとんどかわらんのだからPD=point_direction(x,y,target.x,target.y)でいい。
その後の処理は同じイベントか同じスクリプト内でやるんならvar宣言すれば多少はメモリ節約にはなるけど微々たるもんだから気にする必要はないと思う。

ちなみに単純にPD=ScriptPD()なんてやっても多分何も返してないんだから0が代入されるんじゃない?
スクリプトの最後にreturn(PD)とすればPDに代入されたもんが返ってくる。
でも上の例じゃスクリプト内でvar宣言してないPDは、呼び出したオブジェクトのローカル変数になるしreturnも必要ないし

376:名前は開発中のものです。
11/06/04 20:41:14.61 czogavCN
バージョンによって違うのか知らんが、スクリプトは関数的な扱いだから変数に関数の結果を代入するのならPD=ScriptPD()という書き方が正しい(つかそうじゃなきゃエラーになる)
そしてpoint_direction自体が関数なのだから、二度手間にしてる分余計な処理が増えてると思う。

あとvar宣言は変数の作成ってか、一時的に使う変数みたいなイメージ。
その場でしか使えない変数だから、スクリプト内で使ったらどこにも定義されてない変数になる。(呼び出し元のオブジェクトのローカル変数にもならない)

それとたかだか何十桁の計算をしても処理速度はまず変わらないから気にしない方がいいよ。計算機ですら計算しても一瞬で答えが出るんだから。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch