トップページgamedev
981コメント382KB

【2D】ゲーム作成ツールGameMaker part4【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/04/23(木) 08:11:08ID:iAS0afeL
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
 ttp://gamemaker.main.jp/(現在一時閉鎖中)

前スレ
【2D】ゲーム作成ツールGameMaker part3【マンセー】
ttp://pc11.2ch.net/test/read.cgi/gamedev/1210437707/
0489名前は開発中のものです。2009/10/14(水) 00:42:51ID:bv2mAVIJ
あ、もちろん最初から入れてあるスプライトも、sprite_deleteで消すことは可能だよ
ただ、また使う際にはsprite_addで入れ直してあげないといけないけど
0490名前は開発中のものです。2009/10/14(水) 00:51:50ID:GGZRIxG7
>>488
なるほど、何となく分かったかも
丁寧な説明ありがとです
頑張ってGML勉強しようかのぉ
0491名前は開発中のものです。2009/10/14(水) 05:29:38ID:RnMcuV0D
ちょっと言葉が足りなかったようですまん。
スプライトのロードと破棄でメモリを食うってのは、sprite_add(...)で外部からメモリ内にスプライトを読み込んだ後、
数ステップ後にsprite_delete(...)でそのスプライトを破棄すると
スプライトを読み込む前よりメモリ使用量が若干(16kBほど?)増える現象のことを指してた。
上昇量はテストする度に異なったりするから、環境依存なのかもしれないけど。
詳しい仕組みは知らないけど、>>485のテストは1ステップ内で行ってるから状況が少し異なるのかも?
検証してみる価値はあるか。
0492名前は開発中のものです。2009/10/14(水) 07:48:51ID:YxYD41xX
スプライトそのものは消えても、衝突判定などの設定情報が残ってるとかか?
0493名前は開発中のものです。2009/10/14(水) 17:24:39ID:GGZRIxG7
何か皆詳しいなぁ
てか皆の話色々平均すると、台詞表示するときって

「全台詞スプライト用意」より
「a〜z、あ(ア)〜ん(ン)、あと諸々分の小さなオブジェクト沢山作って台詞作り」のがいいのかな
(台詞量にもよると思うが)

前日本語ファイルで「オブジェクトは少ないのがいい」だけ鵜呑みに
してたからそうしようとは思わんかったのよね
0494名前は開発中のものです。2009/10/14(水) 18:48:17ID:133VTP3G
>>491
メモリを解放しても、そのメモリがすぐシステムに返却されるとは限らない
(次にメモリが必要になったとき再利用するためにとっておくから)
add→delete→add→delete…と繰り返しても使用量がどんどん増えたりせず
一定範囲でとどまるようなら、ちゃんと解放されていると思っていいんじゃないかな

>>493
スプライトを文字数分用意するにしても、オブジェクトは一個でいいだろ。
Drawイベントでスプライト組み合わせて文字列描画させればいい。
もちろんスプライト一個描画するよりは遅くなるし、
文字数分のスプライト用意する分手間がかかるから
(パフォーマンス+開発効率)とメモリ消費のどっちをとるかのトレードオフになるな。
0495名前は開発中のものです。2009/10/14(水) 21:42:30ID:GGZRIxG7
>>494
文字列組み合わせるつもりではいたけど、
それが沢山のオブジェクトである必要はないのか
gifとか忘れてた俺アホスwww
そうだよね、エディット画面でできることだよねorz >一個

確かに台詞自体を用意する方が早いねぇ、楽だし
まぁ自己満クオリティな間は効率をとるのがいいかなぁ
とりあえず完成させるのが大事だし
0496名前は開発中のものです。2009/10/14(水) 22:00:33ID:GGZRIxG7
間違えた。俺が言いたかったのは
「台詞一個」と「台詞内の文字数分のオブジェクト(がroomに存在)」の比較だ
ま、でも後者は管理・労力が大変だし、結局前者が無難か・・・
0497名前は開発中のものです。2009/10/14(水) 22:27:53ID:bv2mAVIJ
たしかになんか不安定な気がするね>sprite_delete
試してみたけど、追加→削除前に比べてメモリが増えたと思ったら、今度は減ったりした
そして同じ動作を何回も繰り返していくうちにメモリの変動が安定してくる
0498名前は開発中のものです。2009/10/15(木) 02:52:17ID:LmGjEFod
俺も試してみたけど、確かにメモリが一向に上昇し続ける傾向はないみたいだからとりあえず大きな問題はないか。

>496
よこしまさんのmbtextを使えば?
台詞を後で推敲することを考えると、stringで台詞を用意してそれをmbtext_drawで描画する方が遥かに楽
台詞ごとにスプライトを用意していると、台詞が増えたときに挫折しそう
ここで少し時間を投資してmbtextの使い方を覚えた方がいいと思う(使い方って言っても簡単だし)

それと、>494の言っていることはgifともエディット画面とも関係ない
0499名前は開発中のものです。2009/10/15(木) 10:25:42ID:qb9kY2ep
一つのスプライトに複数文字を格納することを理解したんだから
別に関係なくはないだろ
0500名前は開発中のものです。2009/10/15(木) 15:40:28ID:Wyrl5rE9
8はwindows7に対応させてからの発売になるのかなー
0501名前は開発中のものです。2009/10/19(月) 21:40:12ID:IlnPQ80k
GM、6以降のバージョンなら現在のPCでは普通に動くのだろうか……
新しいグラボだと、5.3AはDirectXの機能オフにしないと15フレームしか出ないんだよなー。
0502名前は開発中のものです。2009/10/19(月) 22:50:53ID:FNTjSUVF
Direct3D 11 は、凄まじく面倒になる可能性がある。

ただでさえ今まで固定でやってたブレンディングやアルファテストがシェーダになっているのに
固定機能を廃して全部シェーダになってしまった


効率よく働いてくれることを期待しないほうがいい
むしろ悪化する
0503名前は開発中のものです。2009/10/20(火) 09:38:45ID:c6RaFjAq
音楽をfpsとかに合わせてきっかり流す方法ってないですか?
流したいところで音楽が微妙にずれたり画面が処理落ちしてるのに音楽が平常に流れるせいでずれが発生して困ってます。
0504名前は開発中のものです。2009/10/20(火) 15:25:37ID:6YHJoqlj
処理落ちに合わせて流れている音楽をいじる、ってのはまず無いわな。
そういうわけで、いじる対象を逆転させてみた。

音楽の再生云々をいじるのではなく、
まず音楽を再生させて、
再生開始からの経過時間を利用してゲーム内の動作を処理する。

処理落ちに対応できる方法と考えると、こうしか思いつかなかった。

時間を利用してゲーム内の動作を処理するとは言ったが、別に全てを時間基準にする必要はない。
ただこの方法を使うときは、時間を基準に処理するものとフレームを基準に処理するものとを明確にわけること。

まぁこれは再生時間に合わせて流れるスタッフロール的な物をイメージして考えてみたんで、
複雑なものになると、どこまでできるかはデザイン次第、かな?
ちなみにこの例だと、時間を基準に流れているので、
例え処理落ちしても、ゲームの処理がしばらく止まっても、
再生開始から5秒経過したのなら5秒後の位置、10秒経過したのなら10秒後の位置に動かす、という仕組み。
0505名前は開発中のものです。2009/10/20(火) 20:57:37ID:SLMjJuQO
RC出てるな。
ソースエディタ、draw_txtともに日本語通らないの確認した
(バグトラッカでも今後の非対応明言されてた)

日本語化はできないんだっけか。
0506名前は開発中のものです。2009/10/20(火) 22:59:14ID:Rv9BzQJ5
昨日このソフトを発見し、こちらでゲーム作りを試みている者です
凄く初歩的な質問で申し訳がないのですが
大まかな動きのつけ方や操作方法はチュートリアルで理解する事はできたのですが
それ以上のものを作ろうとするとそれ以降は自分で虱潰し的にアクションを試すしかないのでしょうか
たとえばexe形式となっているソフト等を参考にしようとしても、開けませんよね

>>336で「公式のPlatformで検索すると参考になるものが〜」とありますが、確かに
このソフトにおける可能性は見出せましたけども、やはりexe形式で挙げられているから中身を見て参考にする事はできませんよね・・・
0507名前は開発中のものです。2009/10/21(水) 01:33:15ID:Q98BhYv9
>>506
まずマニュアルをじっくり一通り読もう!
そして小さい規模でもいいから自力でなにか作ってみること
だんだん出来ることが広がっていくはず。
0508名前は開発中のものです。2009/10/21(水) 01:51:14ID:bzUL/ied
暇な時にヘルプを眺めながら、色々試していくのが一番だね
急がば回れだ
0509名前は開発中のものです。2009/10/21(水) 21:01:14ID:K7bGjyPl
何かに合わせるのは、普通イベントで判断する。
まあOSや言語、インターフェイスによってはフラグとかも言うが

何かを始めるときは、イベント元にする。
フラグを立てる。でもいい

こうすると、処理が始まってから別の処理が行われることが保証される。
最初の処理が遅れれば、後の処理もそれに合わせて遅れるだけだ。
0510名前は開発中のものです。2009/10/21(水) 21:06:06ID:K7bGjyPl
サウンドと画面を連動させたいならば、
サウンドファイル再生をやめること。

昔ながらのサウンドプログラミングなら
メインスレッドとサウンドスレッドは平行して処理されるから
どちらかが遅れるともう片方も遅れる。
サウンドプログラミングは、インタープリタのように逐次発声だからだ

サウンドファイルだと、最初に読み込んでから鳴らすだけなので
それほどの負荷でないから遅れる・止まるってのは余程の負荷がかからないと起こらない。

昔は、サウンド構築のためだけのプログラマ、サウンドプログラマなんて職があったのだ
それと同じことをやればよい。
05115062009/10/21(水) 22:53:42ID:7kid7kXI
レスありがとうございます
一通りヘルプを見てみます
0512名前は開発中のものです。2009/10/21(水) 23:30:57ID:K7bGjyPl
一番真っ当なやり方は

・負荷を減らす
・動作必須環境を上げる

これくらいだろう
負荷を減らすのは以外に単純
 別に走らなくてもいいような変なルーチンが走ってないか
 妙に割り込まれてないか
 ルーチンが走る順番は正しいか
 無駄に複雑なルーチンでないか

これを完璧にこなしてもダメなら最低動作環境を上げるだけ
0513名前は開発中のものです。2009/10/22(木) 03:15:18ID:QcCk0qNG
横スクロールアクションを作っているのだが
プレイヤーをカメラが追っていく設定にして、そのカメラの座標?とか設定してやると
32,32以外でやると地震がおきたかのように画面がガクガクになるんだが
スクリプトとか必要なのか?
0514名前は開発中のものです。2009/10/22(木) 03:17:32ID:QcCk0qNG
悪い 自己解決した
0515名前は開発中のものです。2009/10/22(木) 18:07:09ID:9bnTpD/d





いつになったら


サイトは復活するのか。




0516名前は開発中のものです。2009/10/22(木) 23:07:47ID:QcCk0qNG
俺もサイト復活してほしい、プログラムとかスクリプトに対してほとんど無知だと壁が多い
今2Dアクション作ってて手探り状態なんだけども

・左の壁にぶつかるとなぜかバウンド?して一歩ほど戻る
・向いてる方向に攻撃ができるようにしたい(現状だと一方方向、X+の方面にしか玉が打てない)
・ニコ動の解説動画みたけど、変数関係の応用方法がわからない
何が何発あたれば敵が死ぬとかのイベントの配置場所(弾のオブジェクトだとか敵のオブジェクトにだとか)がいまいちはっきりしてない

3時間ほど粘ってるんだけどもしかして俺がマニュアル見落としてたりするのかな
このスレ眺めててそういう類の質問を見ないから畏れ多い・・・
0517名前は開発中のものです。2009/10/23(金) 01:25:24ID:x6bl6P0C
>>516
公式で.gmkなりぐぐると幸せになるかも
俺はそれでどうにかしてる
0518名前は開発中のものです。2009/10/23(金) 03:48:20ID:QbMhH9cO
3時間ならよくあること
それを半年続ければこのスレで言われていることは理解できるようになるんじゃないか

ちなみに向いている方向に攻撃をするには、弾を発射するオブジェクトのimage_angleと弾のdirectionを一致させればいい
弾の衝突判定イベントは敵オブジェクトに設定して、衝突ごとに敵オブジェクトのlifeを減らす
んでlife <= 0の時にオブジェクトを破壊、って感じだろう
このあたりは過去ログも参照するといい
0519名前は開発中のものです。2009/10/23(金) 08:55:04ID:wQYLsPFR
向いてる方向に弾が…
ってよく聞くけどそんなに難しいかなぁ〜?
            とりあえず俺はExample内ので幸せになった    2Dアクションのやつ
0520名前は開発中のものです。2009/10/23(金) 16:11:44ID:vXjEA+RQ

最初は、誰もが効率の悪いコードを書く。
if()
 if()
  if()
   for()

のように。

例えるなら、ifの数を減らすのが上級者である。
また、if( Fuckintosh == 0 )とかは論外。

上級者は

 if( !(Fuckintosh) && ((FuckOSX >> 3) += FuckMac) << 6 || (FuckMac & FuckJobs) >> 2 )

などというように書く。
激しく読みづらいが。
0521名前は開発中のものです。2009/10/23(金) 19:08:08ID:BKp0y/1T
>>520
そこまで出来るようになったらGameMaker卒業してC++に行ってると思うぞw
C++やってて息抜きでGM使ってる自分が言うのもアレだが
0522名前は開発中のものです。2009/10/23(金) 19:13:04ID:wEq8MK8l
>>520
他の言語だったら正しいと言いたいところだが、GMLだとifの数を減らすことが必ずしも効率がいいとは言えないかな。

ヘルプ>The Game Maker Language (GML)>GML Language Overview>Expressions から抜粋
Please note that, contrary to certain languages, both arguments to a Boolean operation are always computed, even when the first argument already determines the outcome.

例として、if (false && true && true && a)を使う。

他のプログラミング言語が上のコードを処理するとき、
最初のfalseを見た瞬間に他を見ることをやめる、ということがある。
何故なら、他の変数が何であれ結果はfalseと決まっているから。

だがGMLの場合は他の言語と違って常にチェックされる。
例え、最初のfalseの時点で結果はfalseと決まっているとしてもだ。
(まさに「even when the first argument already determines the outcome」の部分)

従って、
@if (a && b)
Aif (a)
  if (b)
の二つを比べた場合、
@の場合は、aもbも常にチェックされるが、
Aの場合は、aを満たさないとき、bのチェックが省かれるため、
Aの方がいい、ということになる。
よりわかりやすくすると、if (a && b && ......)と条件が大量にある場合を想定してみれば、
大量の条件を全てチェックするのと、最初の条件を満たさないときに処理をやめるのと、
どちらが効率がいいかがわかるだろう。

勿論、処理よりも行数の効率を重視したいというのなら話は別だが。
まぁ、効率を考えるレベルのプログラマが処理の効率を捨ててまで行数に拘るとは思えないけど。
0523名前は開発中のものです。2009/10/23(金) 21:42:14ID:aDXhBeYl
>>522
やっぱGMって直感的な構成がやり易いな
俺のような初心者にはありがたいことだ
0524名前は開発中のものです。2009/10/23(金) 22:32:30ID:x6bl6P0C
今更だけど、このツール国内じゃあまり普及してないのかな
もしかして国外じゃめっちゃ使われてるとか?
俺の比較してる対象がHSPだからそう思ってるのかもしれないけど
もしかしてHSPに比べると自由度がめっちゃ低いのかな・・・
このツールで作成されたゲームとかアイワナビーザガイとニコニコアクションくらいしかしらない
0525名前は開発中のものです。2009/10/24(土) 00:37:14ID:/xeTG7ka
Gameメーカーのスレッドあったんだw
敵オブジェクトを地面に着かせたいのと、左の壁あたってもはじかれないようにしたいんだがどうすればいいんだ
0526名前は開発中のものです。2009/10/24(土) 01:31:35ID:6tGvwTyZ
516と同じ質問かよ
だからサンプルで勉強しろとあれほど…
てか逆に何故バウンドするんだ
0527名前は開発中のものです。2009/10/24(土) 02:49:25ID:iUo6fmPV
バイナリ演算子を理解していないことが俺のレベルの上がらない原因なんだよなorz
今地道に勉強しているが、具体的な例を用いた言い換えがないとなかなか頭に入らない
誰かに>>520の例をifやforに戻してみて貰えるとすごく嬉しいんだが…
0528名前は開発中のものです。2009/10/25(日) 04:07:52ID:VVt17ygj
日本の非公式フォーラム復活しないかな・・・・・・・
0529名前は開発中のものです。2009/10/25(日) 04:16:31ID:VVt17ygj
もしくはニコニコの解説動画の人が生きてていつか続きうpってくれることを願う
0530名前は開発中のものです。2009/10/25(日) 23:36:50ID:Y6pUx3+I
しつこいぞ、気長に待つんだ
0531名前は開発中のものです。2009/10/26(月) 19:35:46ID:2tTUIu1T
最近気付いたんだけど、GM6からはexeが圧縮されてるのね
5.3Aとか圧縮すると1/10になったりもするのに、6は再圧縮しても殆どサイズかわらないや
0532名前は開発中のものです。2009/10/26(月) 23:08:40ID:QL6sd3s/
どなたか不思議のダンジョン風ゲームのダンジョン自動生成についてヒントを下さい・・・
移動可マスをランダム配置→上下左右に移動可が無い移動可マスは左右どちらかに移動→(ryとかもう書いてる内に混乱してきた
まあそんなこんなで作ってますがどうしてもマジなランダムダンジョンになってしまい、
トルネコやシレンの様に曲がった道があってその先に部屋があって〜みたいなゲームらしい物になりません
よろしくお願いします
0533名前は開発中のものです。2009/10/26(月) 23:16:22ID:58AaIO4i
ttp://d.hatena.ne.jp/Gemma/20070816
こことか参考にしてみたらどうだろう
ローグライク、マップ生成とかで検索したら結構出るよ
0534名前は開発中のものです。2009/10/27(火) 00:39:03ID:SmcAvcZx
>>524
あとはミックマンXとかナイトメアスフィアなんかが評価高い
両方とも同じ作者だけど
0535名前は開発中のものです。2009/10/27(火) 17:38:28ID:XGT5kS6x
>>532
最初に部屋を配置して、それらをつなげるように道を作れば?
道自体も一見ランダムに見えて数パターンを組み合わせてるだけだと思う。
0536名前は開発中のものです。2009/10/27(火) 23:28:25ID:mujP0Qvl
アクションゲームを作っているのですが
移動アニメーション作成する前は普通に移動しながらの攻撃ができたのですが
移動アニメーションをつけてからだと、移動しながら攻撃ができないどころか
移動してからだとなぜか攻撃のキーがきかなくなります、イベントに問題があるのでしょうか
左は

<Left> Change sprite into (左向き立ちポーズ)
else
ifposition is collision free
   start of a block
set the horizontal speed
end of a block
else
   start of a block
set the horizontal speed
end of a block

release<Left> change sprite into (左歩き)
Set the horizonal speed

右はこれの逆です
0537名前は開発中のものです。2009/10/28(水) 02:17:22ID:wMhLqr8I
アニメーション発動中は弾が撃てないってのがなんとなく理解できたのですが
それをどうすれば撃てるようになるかなんですよね・・・ちなみに5.3です
0538名前は開発中のものです。2009/10/28(水) 19:24:48ID:W+fx9TAl
アニメーションをやってる間は他の事を受け付けない

こういうとき、そこらにある売りモンのゲームなら
割り込みで受け付けるから、いついかなるときでもボタンを押したらそのとおりにできる。
もちろん、押しても受け付けられないようにもできる。
ダッシュから一定時間はボタン押しても何も出ない、なんてのはまさにマスキングによる割り込み無視だ

GMが割り込みできるかどうかは知らん
ただDirectInputは、常にボタン押したら割り込みとして受け付けている。
あとはゲームエンジンがそれを無視するかしないかだけだ

0539名前は開発中のものです。2009/10/28(水) 21:07:01ID:wMhLqr8I
>>538
なるほど、仕様な訳ですか・・・
走りながら銃うつゲームあった気がするんだけどなー
0540名前は開発中のものです。2009/10/28(水) 21:43:02ID:Hbmt8JBN
スレチだが
Multimedia Fusion(クリック&プレイの系列)の国内版が出るそうだ
ttp://www7.atwiki.jp/mmf2/

GMもこういう展開あったらいいのに
0541名前は開発中のものです。2009/10/28(水) 21:54:10ID:W+fx9TAl
仕様というか、ゲームエンジンが

「このアニメーションはここからここまでだから これを終えるまでは殴るのをやめない!」
などと頑固である場合は
アニメーションを細切れにしてしまえばよいのだ。

それなら、アニメーションの合間合間でボタンの受け付けがなされる。

まあ本来こういうのはゲームプログラミングとしてあってはならないこと。
単純に負荷になるだけだからだ。

だから一番いいのは割り込み
でもできない、そういう機能がないってんならしょうがない。
たいていは割り込みに相当する機能があると思う
組み方にクセがあるにせよ
0542名前は開発中のものです。2009/10/28(水) 21:57:41ID:Hbmt8JBN
>>536
攻撃ができないんだから、攻撃部分のスクリプトに問題があるんじゃない?
うpしたらわかるとおも

少なくともアニメ中にイベントがキャンセルされるようなことはない。
そんななったらまともなゲーム作れんわ
0543名前は開発中のものです。2009/10/28(水) 23:19:15ID:HABZAlfr
上げてる人は釣り・・・?
0544名前は開発中のものです。2009/10/29(木) 00:53:02ID:oT5avUlp
書き方に問題があるんだろう
例えば全てキーボードイベントで処理すれば問題なく作れるはず

if keyboard_pressed(vk_right)
 sprite_index = sprite_left; //左移動用のスプライトに変更
 x += 5; //オブジェクトを右に5ピクセル移動
if keyboard_check_pressed(vk_enter)
 instance_create(x, y, object); //自機の位置にオブジェクト(弾とか?)を生成

みたいな
GMLで書いたけど、そこは適当に翻訳してくれ
0545名前は開発中のものです。2009/10/29(木) 00:53:50ID:oT5avUlp
間違えた
keyboard_pressed(vk_right)じゃなくてkeyboard_check(vk_right)だ
0546名前は開発中のものです。2009/10/29(木) 17:08:47ID:WqxdblOH
そもそも悩むほど複雑な処理でも無い気はする
0547名前は開発中のものです。2009/10/31(土) 21:46:27ID:xSvTmVCN
作ったsurfaceを描画するときに、余計なノイズが入ってしまうのですが、
surface_createした後にsurfaceを一度綺麗にする方法はありますか?
透明色を使用したいので、色で塗りつぶす方法は避けたいです。
バージョンは6.1Aです。

>>Note that the surface will not be cleared.
>>This is the responsibility of the user.
>>(Set it as a target and call the appropriate clear function.)
作ったsurfaceはちゃんと綺麗にしないとダメですよって書いてあると思うんですが、
透明色で塗りつぶす・・・ようなことは出来るのでしょうか・・?

http://gmdev.xrea.jp/st/up/70.png

mbtext_draw_test(Text);
length = global.mbtext_textarea_width;

surf = surface_create( length , 16);
surface_set_target(surf);
//draw_rectangle_color(0,0,length,16,c_black,c_black,c_black,c_black,0);
mbtext_draw(Text);
surface_reset_target();
0548名前は開発中のものです。2009/11/01(日) 00:17:41ID:NOlFRA2M
surfaceをdraw_surface()系の描画関数で描画するときには、透過情報は失われてしまう模様ですな。

で、まず思いついた方法。
ニ度手間になるけど、sprite_create_from_surface() を使って、
surfaceに作った画像をスプライト登録し、そのスプライトを描画させるようにするといける。この方法は当然単一色ででsurfaceをクリアしておく。
手前でちょこっと実験してみたら、うまくいった。
ただし、元のフォントスプライトリソースがアンチエイリアス無しで作られている場合だけどね。

この理屈だと、
元のフォントスプライトリソースがアンチエイリアス+透過情報有りで作られてる場合、
surfaceに描画した時点で透過情報は失ってしまうことになる。
元画像のアンチエイリアスの効果を残したかったら、
surface から取り込んだスプライトリソースに対して、
sprite_set_alpha_from_sprite()をうまく使うなりして、
再度透過情報も加えないと綺麗に表示されない。(3,4度手間になることに・・・)
0549名前は開発中のものです。2009/11/01(日) 11:20:44ID:NOlFRA2M
すまない、上でグダグダ書いた者だけど、
draw_clear_alpha() という関数があった。
これは、ターゲットのフィールドを指定した色とアルファ値でクリアするというもの。

>>547のコードで、
mbtext_draw_test(Text);
length = global.mbtext_textarea_width;

surf = surface_create( length , 16);
surface_set_target(surf);

//draw_rectangle_color(0,0,length,16,c_black,c_black,c_black,c_black,0);
// の代わりに ↓を追加
draw_clear_alpha(c_white, 0) // この場合アルファ値は完全透過でクリアするべきなので、色は何でも良いと思う

mbtext_draw(Text);
surface_reset_target();

とするとうまくいく。
0550名前は開発中のものです。2009/11/01(日) 11:49:58ID:/eF20zDt
透明色で描画する関数あったのか・・・
surfaceとcolor周りの関数だけ見て
そっちを見落としていた様です。

速度の面からもsprite_createは避けたかったので助かりました
日本語ヘルプだけじゃなく6.1のヘルプも読むようにしないとなぁ

回答ありがとうございました
0551名前は開発中のものです。2009/11/08(日) 22:44:07ID:5mg8aONh
なんだかんだあがいたけどSDLにしちゃったよ
Linuxでも動かせるし

じゃあな手前等
0552名前は開発中のものです。2009/11/09(月) 08:18:16ID:pkWhHVK8
いってら
0553名前は開発中のものです。2009/11/20(金) 20:43:26ID:WvDp0X0L
非公式情報サイト復活age
長かった…
0554名前は開発中のものです。2009/11/21(土) 13:25:52ID:xPzj28Xc
復活ktkr!!これで勝つる!!
よこしまさん乙
0555名前は開発中のものです。2009/11/21(土) 21:07:04ID:p8joaSKx
すでにある程度わかってる人はいいけど
今度のGM人口の増加には重要なサイトだらかね
0556名前は開発中のものです。2009/11/23(月) 14:39:30ID:413ChW8D
あれだけ文句言ってた奴居たのに
復活しても反応が薄い不思議
0557名前は開発中のものです。2009/11/23(月) 23:08:49ID:6hXkMHG7
元々人口少ないからな
0558名前は開発中のものです。2009/11/24(火) 07:43:14ID:KcyDZMVf
32単位でランダムな数値を作りたいのですが32*random(x)だとどうも32の倍数になってくれません
例えば32、64、96のいずれかを作りたい場合random(3)に32をかければ良い筈ですよね
random(10)の場合は1〜10までのどれか1つの数字になる、という考えはもしかして間違ってるのでしょうか?
是非とも解決法を教えて頂きたいです。よろしくお願いします。
0559名前は開発中のものです。2009/11/24(火) 08:42:25ID:1s+aAVax
少数を忘れちゃいないかい? modを使って整数にして、それから32を掛ければいい。
ただ、random()から得られる数字は【0 ≦ X < 指定した数字】であることを忘れないこと。

つまり、32、64、96を作りたいのなら、
・random(3) (0以上3未満の少数を含む乱数)
・mod 1 (得た乱数を整数に)
・+1 (0〜2を1〜3に)
・×32 (略)
が必要。
0560名前は開発中のものです。2009/11/24(火) 10:23:29ID:3GFA5FP4
自分はround(random(10))でやってる
0561名前は開発中のものです。2009/11/24(火) 14:19:26ID:XCjir9GF
日本語サイト復活おめ&よこしまさん超乙!!
日本のGameMakerの普及はこの人の功績が大きいよな。
以前アップされたアルファチャンネル対応mbtextと第二水準mbtextもアップされることを密かに祈ってる
0562名前は開発中のものです。2009/11/24(火) 21:15:47ID://vR+Lo3
>>560
roundだと0〜0.49までが0、0.50〜1.49までが1…となるので
0と10が他の数字の半分の確率でしか出ないよ。
(それに加えてGMのは>268でも触れてるように特殊な四捨五入だし)
やるならfloor(random())の方がいいね。
05635592009/11/25(水) 02:55:53ID:MHhJ/a8G
あー、そうだ。floor()を忘れてた。自分も使ってるのに忘れるとか……orz
mod 1の代わりにfloor()で整数に。
0564名前は開発中のものです。2009/11/25(水) 09:26:37ID:b3wcHD7l
お、復活したのか
おつおつ
0565名前は開発中のものです。2009/11/25(水) 20:56:30ID:LPznLx8o
>>559
ありがとうございます。
少数も出るのですか・・・納得です
0566名前は開発中のものです。2009/11/29(日) 21:45:05ID:ISkoY1lU
GM8、新しいエディタで日本語が表示できないみたいなんだけど、英語以外は対応しないらしい。
多分、修正は望めそうにない。あんなものが仕様だなんて。
地球にいる人間の約半分が英語を理解しているから問題ないなんて発言も。
頭おかしいんじゃないの。
0567名前は開発中のものです。2009/11/30(月) 18:39:54ID:knPs2N+q
オフラインのゲームがそこそこ作れるようになってきたのですが
オンラインのゲームも難しいながら作れると聞きました

こんな事を聞いてるうちは作ることは出来ないと思いますが
オンラインについてまとめてあるサイト等をご存知ありませんでしょうか?
0568名前は開発中のものです。2009/12/01(火) 03:02:26ID:9rs+0kUH
ヘルプ
>The Game Maker Language (GML)
>Multiplayer Games

サイトではないが、必要なことは全てここにある。
0569名前は開発中のものです。2009/12/01(火) 11:01:49ID:VDPjQk8F
ポート空けられないからしっかりした動作確認はとれてないけど、
ヘルプだけでネット対戦PONGくらいはすぐつくれたから、
まずはつくってみると良いかもしれない
0570名前は開発中のものです。2009/12/01(火) 18:26:02ID:1akKlTNu
>>568
ありがとうございます。
確かに難しそうですが思ってたより単純?みたいなので色々試してみます。
0571名前は開発中のものです。2009/12/02(水) 12:26:05ID:cV+TWgBG
>566
マジで?
それじゃ日本語表示するゲームが最悪に作りづらいな
テキストは全部外部ファイルで用意とかも無理じゃないけど、
日本語ゲームを作る敷居が上がるな
0572名前は開発中のものです。2009/12/02(水) 19:59:14ID:tdErPOPp
どっかライセンス買って日本語版発売してくれるところでねーかなー
0573名前は開発中のものです。2009/12/03(木) 20:13:30ID:RNyFehpq
うーん・・・8も日本語化が絶望的なのか・・・
0574名前は開発中のものです。2009/12/04(金) 01:27:16ID:ofp5oEjz
「一部の言語が使えないからってわがまま言うんじゃねえ。どの言語も状況は一緒だ」って空気が嫌だな…
国際化を軽く考えてるんだろうな
0575名前は開発中のものです。2009/12/04(金) 15:26:41ID:ZHGbHwh4
つーか、今時マルチバイト文字対応できないなんてどこの素人だよって思う。
0576名前は開発中のものです。2009/12/04(金) 19:34:39ID:RWMr9U0n
だからといって、日本語対応してあたりまえ、なめてんじゃねぇ
とふんぞりかえってしまうのも、傲慢だと思わんかね

mbtextという前例だってあるんだし、
自分がmbtextを超えて自力で日本語対応させてやる!
くらいの気概があっても良いんじゃなかろうか、せっかく製作系の板なんだし
0577名前は開発中のものです。2009/12/04(金) 20:30:15ID:NU3cw9aC
「日本語対応当たり前」というか、多言語化(XML使うとか)は視野にいれても良いと思うんだがなぁ
0578名前は開発中のものです。2009/12/04(金) 20:31:24ID:peG9JVpj
ゲーム上の表示なら対応できるけど、今度のはエディタ内のコードエディタでの話だから、ユーザーの力ではどうしようもない。
0579名前は開発中のものです。2009/12/04(金) 20:46:12ID:peG9JVpj
あと、外部エディタで対応、という方針もあるけど、

- 外部エディタを呼び出すと、GameMakerウィンドウが最小化されて固定されてしまい、エディタ画面が見れなくなる
- GameMakerとやり取りするコードを記述するテキストファイルの拡張子がtxtで決めうち。
  (拡張子で判別してモードを切り替えるエディタが多いので不便)
- エディット中のゲームに特有のリソースネームや定数、エクステンション内の関数の色分け表示が不可能

エディタ内のそれ同等の機能を搭載した外部エディタを作ろうとすると、
GMをメモリハックして情報を得るなりしないといけない。
作成&保守の手間の割りに、旨みが少ないと思う。
0580名前は開発中のものです。2009/12/04(金) 22:54:49ID:WJsaPc4V
つーかゲーム内の日本語表記どころか、コード内のちょっとしたメモ書きとかも出来なるなるやん
0581名前は開発中のものです。2009/12/05(土) 03:14:40ID:PNdUvSK4
開発者も忙しいんだろうけど、
せめて9とか10で対応するとか言ってほしいわ。
だんだん日本語が使えなくなっていくというのは希望がなさすぎる。

Yoyogamesになって、開発体制変わったりしてないのかなぁ。
どうも個人で作ってます感が。
開発に参加させてほしいぐらいだわ。
0582名前は開発中のものです。2009/12/05(土) 13:18:12ID:uQ+WGx4h
そういやこのスレって、便利なエクステとかの話にあまりならないよな

ってことで最近ヒットだったDLLを勝手に紹介してみる
GMbinaryfileって奴
ttp://gmc.yoyogames.com/index.php?showtopic=393301
リソースのアーカイブ化をどうやろうか悩んでて、今までTARCとか使ってたんだけど
バイナリで書き出すのが一番直接的で楽だって結論になった。
GMBINInsertFileで外部ファイルをそのままバイナリファイルに追加出来るのが便利だと思う

バイナリって何ぞや? とか最初思ったけど、例が親切だったからすぐに使えるようになった
おすすめ
0583名前は開発中のものです。2009/12/07(月) 17:59:35ID:NfuD/45W
初心者で大変失礼ですが
まずゲームメーカーの5.3を日本語化できないんですが、やり方を細かく教えていただけませんか?
0584名前は開発中のものです。2009/12/07(月) 21:51:56ID:ocyA6YZ7
まずってなんだよ、今からどんどん質問を投げつけるので全部答えてくださいねってか

そもそも日本語パッチの当て方は情報サイトに載ってるだろうが
0585名前は開発中のものです。2009/12/07(月) 23:12:09ID:pugNj6ph
質問させて下さい。
現在、学校の課題でGM7を使いブロック崩しを作成しています。

ブロックの付近をぐにゃぐにゃ動くようにpathを設定して、
ボールをとんでもない(プレーヤーが予想していない)方向に飛ばしてしまう
敵キャラを作成しました。オブジェクト自体はpathの上をきちんと動いているのですが、
ボールがぶつかると弾き飛ばされずにキャラボール共々スタックしてしまうことがあります。
それ以外にも、ボールが壁に衝突したら跳ね返されるように設定しているはずなのに、
壁を突き抜けてしまうor突き抜ける途中でスタックしてしまうといった事象も発生しています。

調べていると、動くもの同士が衝突するとスタックするのはよくあることのようですが、
これは何が原因で、どうやって対処すればよいのでしょうか?
なお、GMLの使用は禁止されています・・・。
0586名前は開発中のものです。2009/12/07(月) 23:17:19ID:aZCGjm3q
UACとかでは?わからんけど
何に困ったか書いた方が答えやすいよ
0587名前は開発中のものです。2009/12/08(火) 00:18:06ID:ObegK4AH
分かりづらくてごめんなさい。

ルームの中央付近にブロックがまとめて配置されていて、
その周囲をpathで囲んで、それに沿ってパックマンの様なキャラクターが動くようにしました。
また、偽パックマンにはボールが衝突したら、
ボールをユーザーの意図しない方向に打ち返す動作を入れています。

それぞれの動作についても、ボールがブロックにぶつかると消えて、壁に当ると跳ね返り、
偽パックマンがpathに沿って動いていることなどを確認しました。
(単体で見ていくと正常に動作しているように見えます)

ただ、ボールが偽パックマンに衝突した時に、
ボールと偽パックマンが動かなくなります。
そこに別の偽パックマンが衝突すると、ボールが開放され元通りになるときもあれば、
2個目の偽パックマンもそこで動かなくなってしまうときもあります。

また、壁の近くでボールを打ち返した場合、ボールには壁にぶつかったらバウンドするように
設定しているにも関わらず、そのまま壁にめり込んでしまいます。

当初はオブジェクト形状の問題を疑い、いろいろな形に変えましたが改善されず、
速度が速すぎるのかと思い速度を遅くしましたが、ゲームにならないような速度(4とか)でも、
同様の事象が発生しました。
gravityの設定がおかしくしているのかと思い、gravityをカットしても状況は変わりませんでした。

ただ、これらの問題が常に発生しているわけではなく、最初はきちんと動いていたのに、
途中でピタッと止まってしまったりして、一体どこに原因があるのか分からず、
それらしき箇所を順番にいじっては様子を見てといった具合です。

他にどのような原因が考えられますでしょうか?
ご教示願います。
0588名前は開発中のものです。2009/12/08(火) 00:36:18ID:Eo6KsZ3Z
衝突は複雑なんだよね。
動くオブジェクトにsolidにチェック入れてたら、はずしてみては。
■ このスレッドは過去ログ倉庫に格納されています