トップページgamedev
996コメント482KB

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

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

●本家(英語)
 ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
 ttp://gamemaker.main.jp/
●初心者向けチュートリアル
 ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1


前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
01351332008/06/11(水) 22:29:57ID:++rYAqEK
>>134
今やったらできた〜どうもです
0136名前は開発中のものです。2008/06/12(木) 00:56:25ID:4EAhP+NE
未レジストだから出来ない、、、。orz
0137名前は開発中のものです。2008/06/12(木) 08:09:28ID:9TqDsi5l
>>136
ダウンロードが?

ダウンロードなら特に何も問題なく出来るはずだが……
0138名前は開発中のものです。2008/06/12(木) 10:22:01ID:zGKrtRU4
日本ユーザーを増やして
yoyoに日本語対応してもらうのだ
0139名前は開発中のものです。2008/06/13(金) 15:58:32ID:tjeMHdYO
TPSは流石に作れないよな・・・
0140名前は開発中のものです。2008/06/13(金) 17:37:16ID:8tjP+W25
>>139
5.3で作られたFPSがあったから、工夫次第では未レジストでも疑似3Dで作れると思う。

海外の作品で、doomとかいうタイトルだったような

ただプレイしてて激しく酔った記憶が……
0141名前は開発中のものです。2008/06/14(土) 11:38:27ID:4m4S8SwE
テスト
0142名前は開発中のものです。2008/06/15(日) 19:59:47ID:n3ZqdSRd
5.3より後のバージョンって公式・非公式ともに日本語化の予定ないの?
0143名前は開発中のものです。2008/06/18(水) 10:02:15ID:0+3MnSWl
GM7のsprite_add_alpha()等のアルファチャンネル関連はレジスト版のみの機能ですか?
未レジスト版ならGM7でもGM6でも大差無いのかな
0144名前は開発中のものです。2008/06/20(金) 18:49:05ID:Xt39fvZ+
>>143
レジスト版だけみたい。
未レジストなら基本6と変わらないかも。





それと、6で同じ効果音が重なる場合、うまく再生されないんだけど、これって何が原因かね?

他の効果音ならどんなに重なって鳴っても大丈夫なのに、一つだけうまく鳴らない音があるんだけど……

0145名前は開発中のものです。2008/06/21(土) 06:42:13ID:j/kRwP45
情けないほど初歩的な部分で躓きました
配列の長さ(サイズ)を取得する方法を教えて下さい
ヘルプとフォーラムには目を通したのですが初歩的すぎるのか見つかりません
0146名前は開発中のものです。2008/06/21(土) 11:32:20ID:NtqmRukW
信じられねぇが、ないんだよそれ。<配列サイズの取得法
というか、変数を定義した瞬間、特に制限無く配列として使用できてしまうし。

サイズ情報を管理する変数を自分で用意するとかしか思いつかん。非常に面倒だが。
それか、配列として扱う論理的なオブジェクトを作って、インスタンス数を数えるとか、か・・・?



0147名前は開発中のものです。2008/06/21(土) 12:59:26ID:j/kRwP45
なるほど・・・
残念ではありますが逆にスッキリいたしました
無いと分かれば割り切って強引なコーディングに踏み切れそうです
スマートに書きたいならレジストしてスタックやキューを使えということでしょうかね
勉強もかねてもう少し頑張ってみます
ありがとうございました
0148名前は開発中のものです。2008/06/21(土) 19:29:15ID:S/Uv8sSk
メモリの使用量が気になってきたのですが
メモリ使用率削減のテクニック教えてもらえないでしょうか?
0149名前は開発中のものです。2008/06/22(日) 00:34:10ID:3YikmJWj
前wikiのログがあったのでwikiにはっときました
0150名前は開発中のものです。2008/06/22(日) 09:10:47ID:NRn4PvdD
とても困ってる事がございます。
連結された文字列の名前の変数、インデックスを作りたいと
考えております。

str ='var_'
str +='100'
//str='var_100'
//これを変数var_100として使用したい

//例えば
//SPRスプライトをvar_100に割り当てる
//sprite_assign(var_100,spr)

sprite_assign(??????,spr)

この??????が連結された文字列と同じ名前のインデックスになるような
指定をしたい場合、どうすればいいでしょう?
0151名前は開発中のものです。2008/06/22(日) 10:21:52ID:9BAqCfGF
variable_global_set(name, val)
variable_global_get(name)
variable_local_set(name, val)
variable_local_get(name)
が使えそうですね。たとえばこんな感じで・・・。

/* インスタンス内の変数var_0 〜 var_100 に、0〜100をセットする */
for (i=0;i<=100;i+=1) {
str = 'var_'+string(i);
variable_local_set(str,i);
}

/* 変数var_100で示すスプライトインデックスに、スプライトsprを割り当てる */
sprite_assign(variable_local_get('var_100'), spr);

ただし、sprite_assign()の第一引数は、存在する(存在していた)スプライトインデックスで無いとエラーを起こすんで、注意してください。
0152名前は開発中のものです。2008/06/24(火) 03:08:54ID:+uYxoItW
mbTextScript使ってる人って居る?

6.1で縦16横8ピクセルの半角文字を1080字程描画すると、
それだけで20FPSくらいになるんだけど、普通なのかな?
0153名前は開発中のものです。2008/06/24(火) 04:23:32ID:SW9HLMt8
それは仕方ないんじゃないか?
1文字1文字スプライトから切り貼りして表示しているんだし・・・。
1080字も一度に書くとかなりの負荷なんじゃないかな。

サーフェスとか画面から見えないところで描画して、
描画したものをスプライト登録してそれを画面表示する、
とかするとよいかもね。この方法はレジスト版でしか出来ないけど。
0154名前は開発中のものです。2008/06/24(火) 12:28:37ID:+uYxoItW
>>153
うーん、レジストはしてあるんだけど、肝心の描画したい物がデータリスト的な物で、
ちょこちょこ切り替えるからなぁ。

とりあえず色々試してみます。
ありがとうございましたー
0155名前は開発中のものです。2008/06/25(水) 21:39:01ID:4PLXCLdL
ヤフーのフリーメールで登録できないorz
おまいらどこのフリメ使ってる?
0156名前は開発中のものです。2008/06/26(木) 08:07:08ID:ZUCsxIUu
bGMで曲を流してる時にフルスクリーンに切り替えると曲が止まるのは何故だ……?

>>155
hotmail。ただし.comで。.co.jpは知らん。
0157名前は開発中のものです。2008/06/26(木) 21:10:56ID:+fAgrEGQ
hoge = instance_create(0,0,objHoge);
hoge.sprite_index = "spr_" + "piyo";

こんな感じでsprite_indexを変数で指定したいのですが上手くいきません
piyoの部分は100種類ほどあり増減の可能性もあるため逐一条件分岐で書くのは避けたいです

hoge.sprite_index = 4;

と、直接indexを数値で指定するというのも考えたのですが
画像と数値の管理が面倒そうで試してません
何か良い方法ないでしょうか
0158よこしま2008/06/26(木) 21:27:15ID:ls1Ls4j4
>>156
ウィンドウモードを切り替えたときに、bGMが親ウィンドウを見失うために終了していたようです。
以下の対策で解決すると思います。

1. bGM_play()スクリプトの下から約14行目をコメントアウトする。
「" -w " + string(window_handle()) + 」

「// " -w " + string(window_handle()) + 」

2. ゲーム終了時には必ずbGM_close()関数を呼び、bGM.exeを確実に終了させる。
0159名前は開発中のものです。2008/06/26(木) 23:23:46ID:4NwLrBZ+
>>157
execute_stringが定番だけど遅いのは覚悟すること。

名前とインデックスの対応をmapで管理する方法もある。
最初にmapに入れるところが面倒だけど
(名前に規則性があるならループで回しながらexecute_stringで可)
一度作ってしまえば後のアクセスは速い。

後はスプライト別々にするのをやめて、subimageで分けるようにするとか。
0160名前は開発中のものです。2008/06/26(木) 23:56:05ID:+fAgrEGQ
>>159
ありがとうございます
execute_stringの方法で上手くできました
実行速度に関しては大丈夫そうです

余談ですが実はまだレジストしておりません
この関数ってヘルプ「リソースの変更」の項にあるのに未登録でも使えるのですね
教えて頂かなければ一生気付かなかったかもしれません
0161名前は開発中のものです。2008/06/26(木) 23:58:49ID:ZUCsxIUu
おぉ、ありがとうございます。
今まで原因がわからなかったから、いっそのことオプション画面用のroomでも作ってそのroomを抜ける時に、ウィンドウモードを切り替えていたらゲームを再スタートさせようかなと思っていました。
それでもbGMがどうなっているのかが不明だったため、この方法を使ってもいいのかと悩んでいて……。

GameEndイベント用のpersistentのオブジェクトを作ろうかと思います。
ありがとうございました。
0162名前は開発中のものです。2008/06/27(金) 11:46:16ID:aoPSnAYi
6.1って5.3と違って数値をINIに書き出すとおかしくなるのね……

これは困った
0163名前は開発中のものです。2008/06/27(金) 22:07:01ID:IOoyzN5t
悪名高い精度バグですな。
stringで文字列化してini_write_stringで書き出すと直るよ。
0164名前は開発中のものです。2008/06/28(土) 17:16:03ID:MGJMVRVB
>>163
なるほど!

でも全箇所直すのめんどいなぁ……
ぼちぼちやりますか……
0165名前は開発中のものです。2008/06/29(日) 16:00:15ID:0XhC6Ln6
チャットできるようにしようと考えてみた。
get_stringではポップアップボックスが出ている間ゲームが止まるのでこれは避けたい。

ゲーム内でIMEをどうにか使えるようになれないか。

とまで考えてみて、結局解らず仕舞orz
0166名前は開発中のものです。2008/06/29(日) 19:41:43ID:lhyc/F0c
オンラインゲームも作れる、と聞いたことがありますがやはり難しいのでしょうか?
マリオのような横アクション対戦ゲームを作りたいのですが・・・
0167名前は開発中のものです。2008/06/30(月) 08:01:32ID:XJvv+Gn/
作るなら、共有データという一つの大きな配列にデータを書き込んだりそこから読み込んだりすればいい。
物によってはメッセージと使い分けるといいかもしれない。
とまぁGM的に作れるには作れるけど、実際にオンラインプレイできるかは別。
ポート開放が必要になるから。LAN内ならポート開放とかその他細かい設定は無しでプレイ可能。

まあ>>83が結論かな。
0168名前は開発中のものです。2008/07/03(木) 18:30:58ID:1ilwX3ov
gm6ですが不思議のダンジョンとかみたいなターン制のゲームを作るにはどうすれば良いでしょうか?
主人公の移動後に主人公のオブジェクトを変更して・・・って感じだと敵が複数の場合相当長くなってしまいます。
ちなみにダンジョンの自動生成は考えてません。
0169名前は開発中のものです。2008/07/03(木) 23:07:04ID:PDxRGKbt
>主人公の移動後に主人公のオブジェクトを変更して
主人公の移動後に敵のオブジェクトを変更して、と勝手に解釈した
とりあえず具体的に何がどう長くなるのか分からないけどコードは大して長くならないかと
描画処理もビュー内外で処理分ければ重くなることもないと思う
0170名前は開発中のものです。2008/07/03(木) 23:20:15ID:PDxRGKbt
言うだけなのもなんなので大雑把な案

UserDefined0イベント:1ターンの行動をした時に発生するイベントとして定義
Alerm0:1ターン分の行動を見せるためのタイマー(再帰はしない)
objEnemy:全ての敵オブジェクトの親
objZako1〜n:それぞれのユーザ定義イベント(UserDefined0)にターンごとのアルゴリズムを記述

だいたいの流れは
プレイヤー行動決定→全敵にUserDefined0発生→全敵が行動を決定→それぞれの行動を描画(ビュー外なら結果だけ)
→行動の結果を反映→最初に戻る

主人公オブジェクトが1ターン分の行動を決定するたびに以下のコードも実行
with(objEnemy){event_user(0);}
この時点で敵も味方も動いてないけど全ユニットの行動は決まってるので

ビュー内なら移動や行動アニメーションも見せる(Alerm0をONにしてゴニョゴニョ何かする)
UserDefined0で決定したアクションに従って移動や行動のアニメーション描画


ビュー外なら結果だけ反映(座標に直接ジャンプしたりパラメータだけ変更したり)
厳密にやるならビュー内に侵入してくるタイミングだけ多少デリケートにコーディングしないとダメ
でも面倒だからビュー外であろうが境界線の近くなら上記処理に振り分けてしまったほうが楽かも
0171名前は開発中のものです。2008/07/07(月) 07:50:41ID:Er6IyJrw
軌道を描写してそれに沿ってオブジェクトを動かしたいのですがパスの使い方が今一つ理解できません。
パスの使い方を教えていただけないでしょうか。5.3です
0172名前は開発中のものです。2008/07/07(月) 10:31:24ID:Rye0/4Uv
>>171
まず「File」→[Advanced Mode」にチェックする。
「Add」→「Add Path」メニューがでるので前もってパスを作成しておく
パスに沿って動かしたいオブジェクトで自分が思っているタイミングのイベントに
(最初からパスで動かしたいのならクリエイトイベントにいれる・・・など)
MOVE2タブの[set a path for the instance]アクションで作ったパスを指定してあげる。パラメーターは
path:オブジェクトに割り当てたいパスの名前 
speed:1ステップで動くピクセル数
at end:パスの終点についたらどうするかを指定stopはその位置停止continue from startはスタートした座標に戻ってパス動作を続ける
continue from hereは今の座標を始点として同じパスでパス動作を続けるreverseはパスをさかのぼる
relative:パスを絶対位置か相対位置かを指定 relativeで相対位置(アクションが動作した時の座標を始点にする)
absoluteは絶対位置(パスエディットで書いたとおりの座標)
てな感じ。 もち途中でパスを変更するとかも可能。GMLで書くならpath_start()関数をどぞ
0173名前は開発中のものです。2008/07/07(月) 13:12:20ID:0oCVVzY6
シューティングのテスト版みたいなの作ったんだけど、ここで晒してもいいですかね?

ソースはないけど……
0174名前は開発中のものです。2008/07/08(火) 15:07:42ID:w93aKpMp
>>172
遅れましたがありがとうございます。
0175名前は開発中のものです。2008/07/11(金) 15:45:47ID:3T+5hIa7
行き詰ってるので質問させてください。
オブジェクト自体が光っているような表現をしたいのですが
イマイチやりかたが分かりません。
AfeterEffectとかでいうグローみたいな表現がしたいです。

環境はGM7でレジストしてあります。
0176名前は開発中のものです。2008/07/12(土) 14:05:25ID:03hji2U+
PCの再インストールしてGamemaker入れなおしたら
既に使われているライセンスってはじかれてしまった…

どうすれば・・・orz
0177名前は開発中のものです。2008/07/12(土) 16:10:08ID:u3M0JlwI
私も以前、そのような状態になりましたが、
ライセンスを管理してるところ(softwrap)に問い合わせたら、無事に認証できるようになりました。
support@softwrap.com宛てに、
つたない英語でしたがこんな文面でも大丈夫でしたw
----
Dear, softwrap staff

I am Japanese Game Maker7.0 Pro user.
I upgraded GM7 Pro version by upgrade license key form resisted GM6 lisence key ,
and after a time the software reverted to Lite mode,
because ,a few days ago, WindowsXP was re-installed in my PC.

My license key of GM7 Pro is invalid in online activation.
Please reissue it...

Information:
First name : xxxx
Family name : xxxx
E-Mail address: xxxx@xxxx.xxx.jp

My license key:
License Holder xxxxxxxxxxx
Purchase Ref xxxxxxxxxxxxxxxxxxxxxxxxx
-----
windows 再インストールもですが、GameMaker 7.0 のアンインストール後、
再インストールしてもその状態になるから注意です。
0178名前は開発中のものです。2008/07/12(土) 16:20:43ID:u3M0JlwI
あ、私はGM6からのアップグレード組みで、
上の文中にもそういうことが書いてありますので、
GM7を購入されたのなら適当にアレンジしてくださいです・・・
0179名前は開発中のものです。2008/07/17(木) 00:02:23ID:Oo/SM1Ep
2Dの狙撃ゲームを作っているのですがスコープをのぞいた時の画面処理に困っております。
背景を縮小した画像にし、スコープのアイコンが重なった場所だけ元のサイズに戻す、というのはどうすれば良いでしょう?
そもそも画像を縮小表示出来るのでしょうか?質問ばかりで申し訳ありませんがよろしくお願いします。
0180名前は開発中のものです。2008/07/17(木) 21:29:15ID:/JbdlJ3v
ビューを二つ重ねる、画面からスプライト作って縮小表示する、サーフェイス使うなど
四角い領域でよければ色々と手はあるが、丸くしたいとかだったらサーフェイス一択だな。

> そもそも画像を縮小表示出来るのでしょうか?
とりあえずはバージョンによる。
0181名前は開発中のものです。2008/07/18(金) 19:31:51ID:WqsSplQ2
>>180
申し訳ありません、バージョンは6です。
出来れば丸くしたいのですが、難しそうですし四角でも構いません。
背景と同時にその背景にいる敵オブジェクトも縮小、拡大したいのです。
0182名前は開発中のものです。2008/07/18(金) 21:13:39ID:Qaaz25IZ
ではお手軽なところでビューを使う方法。

・View 0
ビューの大きさ(View in roomのWとH)を画面の表示領域より大きくする。
ビューポート(Port on screen)は画面と同じ大きさ。
これで全体が縮小表示される。

・View 1
ビューポートの大きさを画面より小さくする。
ビューはビューポートと同じ大きさ。
これで画面の一部が元のサイズで表示された状態になる。
あとはビューの位置(view_xview[1], view_yview[1])と
ビューポートの位置(view_xport[1], view_yport[1])を
スコープに合わせて動かしてやればいい。
0183名前は開発中のものです。2008/07/23(水) 14:55:27ID:JbMdXvhr
Unexpected error occured when running the game.

以前からこのエラーに悩んでます。
使用しているのはGamemaker6.1Aです。
毎回製作を進めるとこのエラーが起きる人がちらほら出てきます。
自分の環境では起こったことが無く、また自分よりもスペックの高い人でも
このエラーが起こることもあるようで、原因が特定できずに困っています。
0184名前は開発中のものです。2008/07/23(水) 18:57:15ID:7Xl6aY+A
>>183
原因不明だからこそUnexpected errorなわけだけれども
経験的に言うと、でかいグラフィックスがあるとかでメモリ不足になっているか
Createイベントなどゲーム開始前のところにエラーがあるかのどっちか。
環境によって出たり出なかったりということだと前者の可能性が高い。
もしそうだったら極力Preload外すとか、外部リソース使うようにしてみたらどうかな。
0185名前は開発中のものです。2008/07/23(水) 19:03:17ID:JbMdXvhr
外部にデータを置いてreplaceさせた方がいいかなぁ。
うーん、でもpreloadは全部外してあるし、
自分のPCのメモリは1.5Gなんですが、
2G超のPCでもエラーが起きているケースもある模様・・・悩。
0186名前は開発中のものです。2008/07/23(水) 23:25:06ID:6M8uaVJP
・インスタンスの生成が無限ループになってる
・変数の値の計算が異様に大きい数値になったりしている
・インスタンスを生成時、同時に破棄の命令もしている
・生成時に衝突イベントでごにょごにょ

とかの時でも原因不明のエラーがよく出るね。

シューティングでホーミングのショットを撃っている時にもなった。
0187名前は開発中のものです。2008/07/26(土) 18:51:42ID:3aZInE48
質問なんですが、衝突した相手を今の速度のまま移動させるっていうのはそうすればいいんでしょうか?
ドキュメント見る分にはselfにチェック入れればいいみたいなんですが、より良い速度で自分がかっ飛んでいってしまうのです・・・。
ttp://www1.axfc.net/uploader/He/so/123585.zipにアップしてみましたが、画像が選り抜きの流用なので、なので、違反なら削除します。
どうしたものでしょうか・・・
0188名前は開発中のものです。2008/07/26(土) 19:48:55ID:3aZInE48
ごめんなさい、とんでもない日本語ですね。
要はパンチした相手を吹き飛ばしたいのです。
ttp://www1.axfc.net/uploader/He/so/123606.zip
エラーがあったので修正しました。一応説明するとボタン3で腕生成、ボタン1押しっぱなしでチャージした速度で腕が斜めに飛んでいきます。
パスはyoyoです。
0189名前は開発中のものです。2008/07/27(日) 12:30:50ID:jZNgq52V
Collisionイベントの中では衝突した相手はotherで表される。
相手を吹き飛ばすには、自分のスピードを相手に与えてやればいい。
自分側のCollisionイベントでやるなら
other.hspeed = hspeed;
other.vspeed = vspeed;
相手側のCollisionイベントでやる場合は立場が入れ替わる(自分がotherになる)から
hspeed = other.hspeed;
vspeed = other.vspeed;
のようになる。
0190名前は開発中のものです。2008/07/28(月) 00:21:09ID:qT4QHlYG
LINUX版ねえの??

0191名前は開発中のものです。2008/07/28(月) 20:06:10ID:Q9pdWDQ9
>>189
おおーっ!!ありがとうございます!!
オブジェクト別に設定しなければならないのですね。
stepイベントでcheck コリジョンを使ってやってみたら反応なしでした・・・。
0192名前は開発中のものです。2008/07/28(月) 20:21:36ID:OrZq3/Gb
>>189じゃないけど、これはオブジェクト別というかどちらか片方だな。
要は、「殴った相手を吹っ飛ばす」とするか「殴られたら自分が吹っ飛ぶ」とするか。
どちらも同じ結果が出る。つまり片方で十分。別に両方やってもいいけど、片方が無駄になるよね。
0193名前は開発中のものです。2008/07/28(月) 20:23:53ID:OrZq3/Gb
何という絶望ID
0194名前は開発中のものです。2008/07/28(月) 21:54:47ID:uk2OCtlG
質問があります。
GamaMakerで外部のファイルを読み込むにはどうしたらいいのでしょうか?
GameMakerのver7です。日本語版のver6のヘルプを見て、<file_text_open_read(fname)>
を色々いじってみたのですが、できませんでした。
またBulletML4GM.DLLというプラグインを使ったことのある方がいましたら、
BML_LoadBMLFileで行うBulletMLファイルを読み込むという方法を教えてください。



0195名前は開発中のものです。2008/07/31(木) 00:13:59ID:eckrADRs
>>182
遅くなりましたがありがとうございます。
View0とView1の設定は出来ました。
ですが(view_xview[1], view_yview[1])と(view_xport[1], view_yport[1])というのをどうすれば良いのか分からないのです。
スコープのオブジェクトに関する何かの座標に入れるのでしょうか?
申し訳ありませんが何方か教えては頂けませんでしょうか
0196名前は開発中のものです。2008/07/31(木) 00:58:45ID:t+mxlfep
>>195
とりあえずスコープの座標と同じにして動かしてみて
そうすれば何となく仕組みがわかるから適当に+αして調整する。
基本的にxviewとxport、yviewとyportはそれぞれ同じ値にしとけばいい。

>>194
file_text_open_readが返すIDをちゃんと使ってる?
一般的にはこんな感じのコードになる。

file_id = file_text_open_read(...)
while (!file_text_eof(file_id)) {
text = file_text_read_string(file_id);
file_text_readln(file_id);
}
file_text_close(file_id);
01971952008/07/31(木) 01:25:05ID:eckrADRs
>>196
レスありがとうございます。
もしかして(view_xview[1], view_yview[1])という入力欄があるのでしょうか?;
0198名前は開発中のものです。2008/07/31(木) 01:48:43ID:t+mxlfep
いや、コードで。
view_xview[1] = x;
view_yview[1] = y;
01991952008/07/31(木) 02:14:47ID:eckrADRs
何度も何度もすみません・・・
此方低脳な物で・・・いまいちどういう事だか理解出来てません;

http://www.uploda.org/uporg1577619.zip
この様になっているのですが座標指定が解らず適当な事をしております

とりあえずオブジェクトのコードで
view_xview[1] = x;
view_yview[1] = y;
を入れてみましたが間違ってるようです
0200名前は開発中のものです。2008/07/31(木) 22:01:23ID:YwgqYDQL
>>196
有難うございます。
読み込むファイルは作っているゲームと
同じところに保存しておけばいいんですか?
0201名前は開発中のものです。2008/07/31(木) 22:13:33ID:t+mxlfep
>>199
流れてて見えん。

サンプル作ってみたけど座標変換が案外めんどくさい件について
ttp://www1.axfc.net/uploader/File/so/9117
0202名前は開発中のものです。2008/07/31(木) 23:15:28ID:eckrADRs
>>201
おお、ありがとうございます。
まさに私が求めていた物です。何度も何度も本当にありがとうございました。
0203名前は開発中のものです。2008/08/02(土) 21:26:50ID:PyhBkTjg
横スクロールアクションを作っています。

悪魔城ドラキュラのように、しなる鞭を表現するにはどうすれば良いでしょうか。
0204名前は開発中のものです。2008/08/04(月) 02:57:32ID:vO+Y6NBD
始めてみようと思うのですが、6と7の違いってどれほどのものでしょう?
特に考えずに7にしちゃっていいでしょうか。
過去の遺産を活用するため、6にしといたほうがいいでしょうか。
02052042008/08/04(月) 03:21:04ID:vO+Y6NBD
とりあえず7をインストール。
ttp://gamemaker.main.jp/modules/articles/article.php?id=19
を作ってみた。
昔のとは言い回しがちょこちょこ違うけど、どれも問題なく発見できるな。
02061942008/08/04(月) 17:13:18ID:MNtmNm76
やっぱりファイル読み込み方がわからないです。
(fname)にファイル名を入れたんじゃだめなんですか?
それと読み込むファイルはどこに保存しておけばいいのでしょうか?
0207名前は開発中のものです。2008/08/04(月) 21:33:43ID:hTqrWaBF
>>206
文字列は引用符でくくる
× file_text_open_read(test.txt)
○ file_text_open_read("test.txt")
そういう問題でなかったら、何をしてどううまくいかないのか
きちんと説明してくれないと困るよ。
実際に使ったコード貼るなりエラーメッセージ貼るなり。

ファイルの場所は、原理的にはパスちゃんと指定すればどこでも可。
パスって何?というレベルだったら素直にゲームと同じ場所に置いとけばいい。

>>204
5→6でけっこう大きく変わってるけど、6→7はほぼ完全互換。
大きなところでは、6であった精度バグが7では直ってる。
(かわりに再現性低い正体不明のバグがいくつか出てるみたいだけど)
細かいところで色々強化されてるし、総合的には7でいいと思う。
02082062008/08/05(火) 14:08:09ID:7PHkksrL
有難うございます。
引用符でくくってませんでした。
それと説明が下手ですいません。
以後気をつけていきたいと思います。
0209名前は開発中のものです。2008/08/06(水) 06:59:52ID:e0Lc+IfT
ドロゥで描いた図形やオブジェクトのスプライトを「最も前面」に表示するにはどうすれば良いでしょうか?
ほかのオブジェクトやドロゥ、ビューよりも前に表示したいのです。
02102092008/08/06(水) 07:00:36ID:e0Lc+IfT
ちなみにGM6です
02112062008/08/06(水) 17:33:23ID:q0Kkjdvg
ゲームを起動しようとすると「Unexpected error occured when running the game」
というエラーが出てしまいます。
エラーの原因と解決法がわかる方教えていただけませんか?
http://www1.axfc.net/uploader/File/so/9353
0212名前は開発中のものです。2008/08/06(水) 21:12:23ID:8PxMb9eX
>>209
オブジェクトのdepthをうんと小さくする。
depthは負の値にもできるので-999999とかにするとよい。
「ビューよりも前」ってのは意味がわからんけど
複数のビューを使ってるなら、番号の大きいビューが上に重なって描画される。

>>211
よくある要因については>184参照。
ゲーム開始前にエラーが出てるケースなら、
最初のルームの前にダミーのルームを一つ入れてやることで
本当のエラーメッセージを確認できる。

なんかtekiオブジェクトが呼んでるBML_localUPDATEでエラーが出てるから、
初期化の順番の問題ではないかな。
たぶんtekiの初期化(BML_SetBMLCtrl)が
kanriの初期化(BML_Init)より前に呼ばれてるので失敗してる。
02132122008/08/06(水) 21:21:49ID:8PxMb9eX
追記しとくと、初期化処理については
・複数のオブジェクトがCreateイベントを持っている場合、
どれが先に実行されるかは不定
・Game StartやRoom StartはCreateより*後*に実行される
ということに注意する必要がある。

今回のケースだと、tekiを最初からルームに配置せず
他のオブジェクトから時間を置いて生成させればいいと思われる。
一般的には、タイトル画面を作っておいて
BML_Initみたいな「他の何よりも先に必要な初期化」は
タイトル画面で済ませてしまうというのが確実。
02142092008/08/07(木) 00:10:10ID:JeoCPzcW
>>212
ビューよりも前というのは現在作ってるゲームではビュー0の中にビュー1とビュー2を表示させてます。
ビュー2の方はズームで表示させてるので普通のオブジェクトはそこを通過するとズームされてしまいます。
ですのでそのビュー2よりも前面に、つまりズームの影響を受けないオブジェクトを作りたいのです。

説明が下手で申し訳ありません。
0215名前は開発中のものです。2008/08/07(木) 02:02:35ID:ED5p3ZS0
上にもあるように、ビューは番号の大きいものほど上に重なって描画される。
その状況だと、もう一つビューを作って重ねるしかないんじゃないかな。
ルームを広げて、余った領域をビュー3用の内容として使うとか。
02162092008/08/07(木) 09:28:36ID:JeoCPzcW
>>215
私は>>195さんじゃ無いのですが、勝手に>>201さんのサンプルを弄らせて貰ってるのでいまいちビューの使い方に慣れていません。
ルームの一部分を表示してる様なのでルームの大きさを弄ってみたりしたのですがどうも上手くいかず・・・。

こんな感じなのですがob_2が中央付近の四角内でも拡大されない様にしたいのです。
http://www1.axfc.net/uploader/File/so/9374
0217名前は開発中のものです。2008/08/07(木) 12:57:56ID:ED5p3ZS0
>>216
ob_2が見当たりませんぜ旦那

特定のオブジェクトだけ拡大されたくないなら、逆にそいつを縮小描画する手もある。
drawイベントの中で
if (view_current == 2) {
//draw_sprite_extで縮小描画
}
else {
//draw_spriteで普通に描画
}
0218名前は開発中のものです。2008/08/07(木) 17:21:05ID:JeoCPzcW
>>217
申し訳ありません、ファイルを間違えてしまいました。
http://www1.axfc.net/uploader/File/so/9388です。

それですとifの時は全体が縮小されてしまうのでは無いでしょうか・・・。
触れてる部分のみを縮小させる事も出来るのでしょうか?
0219名前は開発中のものです。2008/08/07(木) 21:50:47ID:ED5p3ZS0
>>218
Drawイベントは各ビューごとに1回ずつ呼び出される
(どのビューに対して呼び出されたかはview_currentでわかる)。
そして、どこに描こうがビューの領域の内部だけが実際に画面に転送される。
自分のスプライトしか描画してないんだから、全体が縮小されるなんてことにはならない。
まあ論より証拠ってことで、ob_2のDrawイベントで
if (view_current == 1) {
draw_sprite_ext(sprite_index, image_index, x, y,
(view_wview[1] / view_wport[1]) / (view_wview[0] / view_wport[0]),
(view_hview[1] / view_hport[1]) / (view_hview[0] / view_hport[0]),
0, c_white, 1);
}
else {
draw_sprite(sprite_index, image_index, x, y);
}
ってやってみ。
0220名前は開発中のものです。2008/08/07(木) 21:57:29ID:ED5p3ZS0
補足、実際にやりたいことは「カーソルがビューの境界にある時に
両方にまたがって描画されるようにしたい」ってことだろうけど、
ビューごとに座標系が違うからxとyも別々に管理する必要がある。
Drawイベントの頭で
x = window_view_mouse_get_x(view_current);
y = window_view_mouse_get_y(view_current);
と置き換えてやればいけるかな。丸め誤差の関係で微妙にふにゃふにゃするけど。
0221名前は開発中のものです。2008/08/08(金) 03:41:55ID:t78+5+2+
>>219,220
ありがとうございます。
色々と試してみましたが「draw_sprite_ext(sprite_index, image_index, x, y,」で毎回エラーが出て起動出来ないのです。
コードの意味も良く分かってないので直しようが無く・・・
0222名前は開発中のものです。2008/08/08(金) 12:16:04ID:9r+m0jPt
エラーが出てるならエラーメッセージを(ry
ヘルプ見ればわかるけどそれってレジストしてないと使えない関数だから。
エラーメッセージもそう言ってない?

もしレジストしてないんだったら、やっぱりビュー重ねるしかないと思う。
ルーム広げるとおかしくなるって言ってたけど、コードの中で使ってる
room_widthとroom_heightはそのままルームの大きさだから
実際に使いたい領域の大きさに合わせて置き換えてやる必要がある。

あと、背景を指定してると当然下にきたビューが塗り潰されちゃうから
背景はなしにしておいて、別のオブジェクトに必要なビューだけ
draw_background_tiledで背景を描画させるといい。
02232062008/08/08(金) 22:55:06ID:Dp8hyxp4
遅れてすいませんが
有難うございます。
0224名前は開発中のものです。2008/08/13(水) 16:38:52ID:9U93GJPn
>>192
ありがとうございます。
それにしてもアクション作るのは大変ですね……埋まらず歩くのがいまだに無理です
gamemakerのスプライトエディターが実に便利ですね。痒いところだけ手が届くみたいな。
ものが伸びる動きを考えてみました。
ttp://www1.axfc.net/uploader/He/so/128688.zip
のpliiiです。(キーワード・yoyo)
vmissでは下キーや上キーでロリータがミサイルを打ちますがそれだけです(笑)
生暖かく見守っていただきたくて。ちなみにvmissはproじゃないと動かないと思います。
ところで質問なんですが自分に重なっているオブジェクトの、重なっている範囲だけ透明にする、色を変えるっていうことはできますかね?
ヘンな日本語で申し訳ありません。あ、自分は7のproを使っています。
0225名前は開発中のものです。2008/08/14(木) 01:58:12ID:OGCepjkd
描画APIとしてOpenGL使えないのか?
0226名前は開発中のものです。2008/08/14(木) 22:09:11ID:y+Gl/YHW
うっわ今気づいた……ペアレント設定スゲエ便利……
うわあ・・・・・・・・・・かなり時間無駄にしてたきが・・・うわあ・・・・
0227名前は開発中のものです。2008/08/14(木) 22:10:41ID:SEYmkdw0
ぺあれんと設定?
どんな感じなのかkwsk
0228名前は開発中のものです。2008/08/14(木) 23:19:00ID:SyKT2EHY
このソフトを使ってこれからゲーム作ろうと思うのですが、
バージョンはどれがいいのでしょうか?
パソコンでゲームを作った事はありません。
やっぱり日本語化できる5,3Aがいいでしょうか?
0229名前は開発中のものです。2008/08/14(木) 23:59:01ID:fWCjSQKb
>>228
最新バージョン用の日本語辞書ファイルがこのスレにあがってたよ
0230名前は開発中のものです。2008/08/15(金) 01:40:43ID:YYg607kj
Linuxの、diff -u > に気づいたときと同じ衝撃を味わう


パッチ作成、それまで手書きだったからな
まさかdiffで簡単にできるとは
0231名前は開発中のものです。2008/08/15(金) 14:49:00ID:05Tah5Zi
>>229
レスどうもです。
今このスレ全部見てきたんですが・・・
最新バージョンって7,0ですよね?
探しても見つからないです・・・
どこにあるのでしょうか?
0232名前は開発中のものです。2008/08/15(金) 15:15:52ID:oWA1flsm
ゲーム中にゲーム画面に日本語を表示する事は出来るのでしょうか?
英語でしか表示出来ず、今まで文字毎のスプライトとオブジェクトを作って表示してたのですが
スプライトとオブジェクトの数が凄い事になってしまいました。
0233名前は開発中のものです。2008/08/15(金) 21:17:31ID:b4foDt54
>>232
そんな時こそ非公式情報サイトで配布してる日本語描画スクリプトですよ
0234名前は開発中のものです。2008/08/16(土) 15:12:50ID:phIiQvcL
gmlで衝突相手を判別するのはどうすればいいんでしょうか?
弾を跳ね返す盾をチュ食っているのですが、
あらかじめグローバル変数を決めて、
instance_positionでぶつかってきたオブジェクトの速度を調べ、グローバル変数に代入して
一定以上ならとび道具として速度を反転させる、というつもりで掻いてるのですがうまく言ってるのかどうかもわかりません。
あと大砲とか撃ったときの反動ってどういう現し方がありますかね?
自分はアラームで速度を半分にして反転させて……というのを繰り返してやってるんですが……あんまりスマートじゃないですよね?
■ このスレッドは過去ログ倉庫に格納されています