1 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:41:47 ID: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【マンセー】 pc8.2ch.net/test/read.cgi/gamedev/1087068523/
2 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:43:10 ID:PRhlwPyW] 《Game Makerの特徴》 @ コリジョン(当たり判定)/スプライト/マップ/サウンド再生など、2Dゲーム作成にかかせない機能が充実 @ なにかと便利なイメージエディタを内蔵 @ プログラミングの知識はあってもなくてもよい @ *.exe(単体実行可能)形式でゲームを出力できる @ 作ったゲームは自己責任の元で自由に配布できる(作ったゲームを売る場合のライセンス料さえ不要!) @ キーボード、マウス、ジョイスティックからのキー・ボタン入力をサポート @ イベントドリブン型なのでスマートにゲームを構築できる @ 組み込みスクリプト言語"GML"により、さらに細かい処理が可能 @ エンジンはDirect X ※有料登録(15ユーロ)するとゲーム起動時のロゴ表示が消えて3Dやエフェクト機能などが追加されますが、基本的に無料で充分使えます。 《Game Makerの欠点》 @ 英語ソフトなので、英語が読めないととっつきにくい @ ツクール類とは違い、ゲームの"動き"から設計しなければならない(それがまた長所でもある)
3 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:43:51 ID:PRhlwPyW] 《豆知識》 Game Makerの作者であるMark H. Overmars氏はオランダの超名門大学"Utrecht"大学の教授で、主にゲームデザインについて研究されています。 参考: ttp://www.cs.uu.nl/people/markov/ 《このスレの掟》 ・Game Makerの略称はGMとする ・いきなり、「こんな素材ありませんか?」系の書き込みは避ける → 素材スレに行きましょう ・質問する場合には、「Game Makerのバージョン」「GMLを使えるか否か」をなるべく記す。 (必要に応じて、「ビデオメモリ容量」や「DirectXのバージョン」などを書くとなおよい) 現在主に使われてるGame Makerのバージョンには5.3Aと6.xがありますが、 5.3AはGame Maker 5.x系列の最終安定リリース版で、Game Maker 6.xは今のところ開発段階にあります。 ●Game Maker 5.3A ダウンロード先: ttp://www.gamemaker.nl/old.html ●Game Maker 6 ダウンロード先: ttp://www.gamemaker.nl/download.html 5.3Aと6.xの詳しい相違点については以下を参照のこと: ttp://gamemaker.main.jp/modules/smartfaq/faq.php?faqid=1
4 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:49:44 ID:PRhlwPyW] 【Gamemaker 6 日本語ヘルプファイル】 ttp://www.geocities.jp/hogehige2005/
5 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:51:35 ID:PRhlwPyW] ごめん、前スレがそのままだった 前スレ:【2D】ゲーム作成ツールGameMaker part2【マンセー】 pc11.2ch.net/test/read.cgi/gamedev/1121126627/ 前前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】 pc8.2ch.net/test/read.cgi/gamedev/1087068523/
6 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:57:21 ID:ngsHwQAh] >>1-3 乙っす、自分もスレ立てしようとか思ってて追加情報とか書いてたら立ってたようなので・・・ んで、なんというか・・ちょこっと追加 初代スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】 pc8.2ch.net/test/read.cgi/gamedev/1087068523/ 前スレ:【2D】ゲーム作成ツールGameMaker part2【マンセー】 pc11.2ch.net/test/read.cgi/gamedev/1121126627/ ●Game Maker まとめWiki (過去ログから質問をジャンル別にまとめてあったり、関数ヘルプなど) ttp://www.wikihouse.com/GameMaker/index.php
7 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:59:26 ID:ngsHwQAh] >>5 あうあうでしゃばってすません
8 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 02:10:15 ID:ngsHwQAh] とかいいつつもう一つ追加 ○現在主に使われてるGame Makerのバージョンには5.3Aと6.1A及び7.xのいずれか 現状の最新バージョンは7.0です。 ●Game Maker 7 ダウンロード先: www.yoyogames.com/gamemaker/try ダウンロードにはサイト登録が必要
9 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 15:38:01 ID:cmOvm32X] 前スレ終わりました。 なので、ここで続きの質問をさせていただきます。 ゲームオプションでマウスを消すとはどういう風にすればいいのでしょうか なお、7を使ってるので英語で読めません。。 Global Game settingsって奴の中にあるのでしょうか? 具体的にご教授お願いします。
10 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 16:01:38 ID:/qP9TRX5] Global Game Setting > Graphicsタブ の Display cursor のチェックボタンをはずす。
11 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 18:11:22 ID:cmOvm32X] >>10 了解です。ありがとうございます。
12 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 18:39:07 ID:cmOvm32X] マウスの方は上手くいきました。 しかし、マウスカーソルの位置に向かって銃を構えた画像に変更するのが、 上手くいきません。。 レジストしてない場合、コードを書く必要があるけど 向きごとに別々にスプライトがあるのかそれともフレームが分かれてるのか、 全部で何方向あるのかとかで対応が違う。 まあ、何方向でも構わないからなるべくスムーズにしたいというのなら >1. スプライトエディタで Animation > Rotation Sequenceの機能を使って >360°分回転させたイメージを作る(36フレームくらいがおすすめ) >2. StepイベントでVARアクションを使って次の変数を設定 >image_single = direction / 360 * image_number これをすると一度はその方向を向きますが、後はまったく反応してくれません
13 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 19:26:43 ID:cmOvm32X] 追記 一応自分なりにこれなら出来るんじゃないだろうかっと思う程度まで考えて、 その銃を構えるキャラクターのSpriteを45度の角度づつ計8個(1.270°2.235°3.180°4.135°5.90°〜方向に銃を構える) マウスポインタの位置がキャラクターに対してどの角度内にいるかでSpriteを変更したいと思います。 あと、Test Expressionで一文ぐらいなら出来ると思います。。 よろしくお願いします。
14 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 22:15:44 ID:cmOvm32X] Step Event: if at position (1 <= x <= 333,-3 <= y <= -999) there is object obj_p001 set the sprite to spr_k001_08 with subimage 0 and speed 1 else if at position (0,-1 <= y <= -999) there is object obj_p001 set the sprite to spr_k001_01 with subimage 0 and speed 1 else if at position (-1 <= x <= -333,-3 <= y <= -999) there is object obj_p001 set the sprite to spr_k001_02 with subimage 0 and speed 1 else if at position (-333 <= x <= -1,0) there is object obj_p001 set the sprite to spr_k001_03 with subimage 0 and speed 1 else if at position (-333 <= x <= -1,1 <= y <= 999) there is object obj_p001 set the sprite to spr_k001_04 with subimage 0 and speed 1 else if at position (0,1 <= y <= 999) there is object obj_p001 set the sprite to spr_k001_05 with subimage 0 and speed 1 else if at position (1 <= x <= 333,3 <= y <= 999) there is object obj_p001 set the sprite to spr_k001_06 with subimage 0 and speed 1 else if at position (1 <= x <= 333,0) there is object obj_p001 set the sprite to spr_k001_07 with subimage 0 and speed 1 この形に組みました。 (GMLでなく普通にです) 何となく、自分のしたいことは表せたのですが、一切反応してくれませんでした。。 間違っている所やこうしたらいいと言う意見をお待ちしております。。。 何度も何度も度々すみません。。
15 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 23:56:50 ID:AX4c16UA] スプライト8枚じゃなくて、1枚のスプライトでサブイメージ8枚にする (1番目が右向き、2番目が右上、3番目が上、……と0°から反時計回りに並べる) で、Stepイベントで image_singe = point_direction(x, y, mouse_x, mouse_y) / 45 と設定すればいけるはずだけど。 (厳密に言えば、image_singleはGM6以降では廃止されているので、 image_indexを設定してimage_speedを0にするのが正しい) ちなみにどうしてもスプライト別々でやりたいなら、 変数を一つ設定しておいて set the variable direction to point_direction(x, y, mouse_x, mouse_y) if expression (direction < 22.5 || direction >= 337.5) is true // 8角形に「?」のアイコンを使う set the sprite (右向きのスプライト) if expression (direction >= 22.5 && direction < 67.5) is true set the sprite (右上のスプライト) if expression (direction >= 67.5 && direction < 112.5) is true set the sprite (上向きのスプライト) ……(中略) if expression (direction >= 292.5 && direction < 337.5) is true set the sprite (右下のスプライト) みたいな感じに判定していく。ここまでくるとGML書いてるのとあまり変わらんけど、 アクションだと複数条件の組み合わせはうまく表現できないからね。
16 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 00:15:01 ID:Nz3aygB6] 条件文が意味不明だ。なぜ、Check Object を使うのか。 条件にあるxとyの値が決め打ちなのも意味不明。 君がやりたいことは、 ・マウスの方向によって画像を変更する なのだろう? なら、「マウスの方向」が条件になるはずではないか。マウスの座標は mouse_x mouse_y で知ることができる。 そして、自キャラから見たマウスの方向は、point_direction() という関数で知ることができる。 アイコンによる設定の説明は面倒なので、コードだけ書いとく。(Varアクションと TestExpression でできるけど) ステップイベントにExecute Code アクションを追加して、中身を下のやつをコピペしてみ。 spr_k001_xx は向きにあわせたものに直してくれ。 direction = floor(point_direction(x,y,mouse_x,mouse_y)+22.5); if (direction>=0 && direction <45) { //右向き sprite_index = spr_k001_xx; } else if (direction>=45 && direction <90) { //右上 sprite_index = spr_k001_xx; } else if (direction>=90 && direction <135) { //上 sprite_index = spr_k001_xx; } else if (direction>=135 && direction <180) { //左上 sprite_index = spr_k001_xx; } else if (direction>=180 && direction <225) { //左 sprite_index = spr_k001_xx; } else if (direction>=225 && direction <270) { //左下 sprite_index = spr_k001_xx; } else if (direction>=270 && direction <315) { //下 sprite_index = spr_k001_xx; } else if (direction>=315 && direction <360) { //右下 sprite_index = spr_k001_xx; }
17 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 00:15:38 ID:Nz3aygB6] おわ、リロードすればヨカタ.... orzorz
18 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 01:16:43 ID:ikz1QGUi] >>15 >>16 返答ありがとうございます。 おお、出来ました お二人ともありがとうございました。 ではまたいじってきます^^
19 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 01:30:34 ID:RmZAj2l+] プリミティブでテクスチャを綺麗に台形に表示するってのはできないのかね…… 三角形単位だとやっぱ辛いか
20 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 02:07:25 ID:TpSXp6LY] >>19 三角形単位だと歪むね・・・。 64x64で、上辺32、下辺64、高さ64の等脚台形で、力技でこんなのやってみた。 比較的ゆがまないが、多数表示するのには向いていないだろうね draw_primitive_begin_texture(pr_linelist,texid); for (i=0;i<64;i+=1) { draw_vertex_texture(16-i*16/63,i,0,i/63); draw_vertex_texture(47+i*16/63,i,1,i/63); } draw_primitive_end();
21 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 02:38:35 ID:ikz1QGUi] >>16 さんの文章を応用して、弾もマウスの方向によって変えたいのですが、 どう書き換えたらいいでしょうか。。書き換えていただけませんか?
22 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 02:41:29 ID:ikz1QGUi] あ、あとしっかりとマウスの方向に向かって回るようにしたら中心を動かすことになったので 動かしたのですが、そしたら弾の出る場所がおかしくなりました。。 どうしたら前のように銃口の座標から撃てるでしょうか
23 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 03:03:27 ID:4cPaCS6e] >>ID:ikz1QGUi いいかげんにしろ。 「書き換えていただけませんか?」とか、失礼すぎ。人をツールのように扱うなよ。 あと、基本的なことが理解できてないようだから、 >>1 の非公式サイトを読みながら、最低一ヶ月試行錯誤しろ。 今までの質問を解決する材料は、全て書いてあるし。
24 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 09:26:48 ID:RmZAj2l+] >>20 やっぱり簡単にはいかないのかな 弾幕シューティングの背景にするには軽くないといけないし…… 四角面を張れれば簡単なんだけどなぁ もうちょっと研究してきますです
25 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 15:43:35 ID:ikz1QGUi] >>23 すみません。。。以後頑張ってきます。。
26 名前:名前は開発中のものです。 [2008/05/12(月) 20:15:49 ID:3BNN/6ib] >>25 こいつアホだろ
27 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 20:18:50 ID:5kQyHDOM] >>26 ・・・何いってんの?
28 名前:名前は開発中のものです。 mailto:sage [2008/05/12(月) 20:57:52 ID:IGlYgd9c] こんな過疎板って、無闇な批判が飛んでくるとは GMもそれなりに知名度を上げてきたって事かねぇ、TonyuやZGE出し抜いてよくまぁ…
29 名前:名前は開発中のものです。 mailto:sage [2008/05/13(火) 00:13:26 ID:jNkfDGaf] すいません、空気を読まずに質問させてください。 特定のボタンを押すと、前オブジェクトの動作が止まって メニューが表示され、メニュー画面操作のみ受け付けるような 動作をさせたいと考えているのですが いまいち、簡単な方法が思いつきません。 何か良い方法はありませんでしょうか?
30 名前:名前は開発中のものです。 mailto:sage [2008/05/13(火) 00:14:04 ID:jNkfDGaf] >>29 「前」じゃなくて「全」の間違いでした…
31 名前:名前は開発中のものです。 mailto:sage [2008/05/13(火) 10:25:49 ID:yM+gChpv] >>29 ポーズメニューみたいな感じなのかな。 それなら私が良く使う方法を一つ。 元のルーム(ゲーム部分)のルーム設定を「持続する」にしておいて、背景色を描画してないルーム(ポーズ部分)に移動する。 再描画されないのでメニューの後ろにだけウィンドウか何かを描画しておかないといけないけど。 元のルームに戻ればそのまま動作するのでそれっぽく見えるはず。 わかりにくくてゴメン。
32 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 01:04:12 ID:+oaQcg1C] direction = floor(point_direction(x,y,mouse_x,mouse_y)+22.5); if (direction>=0 && direction <45) { //右向き sprite_index = spr_k001_xx; } else if (direction>=45 && direction <90) { //右上 sprite_index = spr_k001_xx; } else if (direction>=90 && direction <135) { //上 sprite_index = spr_k001_xx; } else if (direction>=135 && direction <180) { //左上 sprite_index = spr_k001_xx; } else if (direction>=180 && direction <225) { //左 sprite_index = spr_k001_xx; } else if (direction>=225 && direction <270) { //左下 sprite_index = spr_k001_xx; } else if (direction>=270 && direction <315) { //下 sprite_index = spr_k001_xx; } else if (direction>=315 && direction <360) { //右下 sprite_index = spr_k001_xx; } 前に教わったこの文章を応用して、プレイヤーキャラクターを追うキャラが、 プレイヤーキャラクターのいる角度によって画像を変えたいのですが、どこをどう返ればいいでしょうか。 あと、前は何度も何度も質問してすみませんでした。挙げ句の果てに、書き換えて欲しいなどと。。 以後頑張りますは以後自分で頑張りますの間違いです。 色々すみません。。
33 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 02:17:22 ID:0kVdrtr1] 「マウス」が「プレイヤー」になっただけだろ。 どこがそれに当たる場所なのか、それぞれの文が何をしているのか分かってる? 自分で原理を理解しないと、何から何まで人に作ってもらうことになるよ。
34 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 07:44:37 ID:+PP6HbGL] >>31 なるほどぉ、そんな方法が。。。 ありがとうございます。
35 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 09:38:29 ID:+oaQcg1C] >>33 floor(point_direction(x,y,mouse_x,mouse_y)+22.5); ここだと自分は思ってます。 ただ、どう文章をおけばいいのかわからなくて。。
36 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 10:10:14 ID:+oaQcg1C] direction = obj_k001_01; if (direction>=0 && direction <45) { //右向き sprite_index = spr_k002_07; } else if (direction>=45 && direction <90) { //右上 sprite_index = spr_k002_06; } else if (direction>=90 && direction <135) { //上 sprite_index = spr_k002_05; } else if (direction>=135 && direction <180) { //左上 sprite_index = spr_k002_04; } else if (direction>=180 && direction <225) { //左 sprite_index = spr_k002_03; } else if (direction>=225 && direction <270) { //左下 sprite_index = spr_k002_02; } else if (direction>=270 && direction <315) { //下 sprite_index = spr_k002_01; } else if (direction>=315 && direction <360) { //右下 sprite_index = spr_k002_08; } これで一応できました。 ありがとうございました
37 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 15:15:31 ID:jcqbfyhB] direction : インスタンスの方向をあらわすローカル変数 0〜360に丸められる。 floor(x) : x を超えない最大の整数を返す。 例 : floor(3.5) だったら3 floor(-2.5) だったら-3 point_direction(x1,y1,x2,y2) : 座標(x1,y1)から座標(x2,y2)を見たときの角度。 例 : point_direction(0,0,1,-1) だったら 45 floor(point_direction(x,y,mouse_x,mouse_y)+22.5) っていうのは、floor() の中に point_direction(x,y,mouse_x,mouse_y)+22.5 っていうの入っている。 さらに、point_direction(x,y,mouse_x,mouse_y)+22.5 で角度を表しているということになる。 つまり、インスタンスのいる位置(x,y)から、マウスの座標(mouse_x, mouse_y)を見たときの角度を求めていて、 それに22.5度を加えている。 で、その角度を floor()によって整数にしているわけ。なぜ22.5を足すのかは、22.5を消して試してみればわかる。多少感覚とズレるはずだ。 どうしてズレるのかは自分で考えろよ?わからなければ、数学の勉強をしろ。 で、下に続くif文は全て、 directionの値で場合分けして、表示するスプライトを指定してるものが書かれているだけ。 >>36 でやってる一行目の direction = obj_k001_01; っていうのは、そのインスタンスの direction を obj_k001_01 と同じにするっていう意味になってるの。 それで解決したなら別にいいんだけど、俺にはぜんぜんトンチンカンに見えるのだが。 お願いだから>>1 の非公式情報サイトを読んできてくれ。サイト内の「検索」で全てでてくる。 今書いたことも。ドキュメントのところを探せ。
38 名前:名前は開発中のものです。 mailto:sage [2008/05/14(水) 17:56:24 ID:+oaQcg1C] >>37 色々とすみません。。 ある程度ましになるまで見てきます。
39 名前:37 mailto:sage [2008/05/14(水) 19:29:18 ID:koT5HTYt] すまん、訂正させてくれ… >>37 で「direction を obj_k001_01 と同じにする」 とか書いてるけど、間違ってるな。 obj_k001_01 のdirectionと同じな値になるとか勘違いしてた…。 obj_k001_01.direction と書けば、そういう意味になるが。 正確に言うと、obj_k001_01 っていうのはオブジェクト名なんだろうが、 これはある数値の定数になっている。(そのオブジェクトをリソースに追加したときに決まる) この数値がそのまま direction に代入されているので、direction の値はそのまま固定値になってしまっている。
40 名前:名前は開発中のものです。 mailto:sage [2008/05/16(金) 01:14:43 ID:a1mpKMyg] レジストしたいと考えてるんですが、簡単な方法ってないものでしょうか?
41 名前:名前は開発中のものです。 mailto:sage [2008/05/16(金) 22:37:09 ID:mTen8rcq] 金払う
42 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 11:05:14 ID:iuDmkXQZ] 過去スレにそれっぽいのなかったっけ?
43 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 13:11:22 ID:4t7O5zMm] www.ice.ci.ritsumei.ac.jp/~ruck/CLASSES/SOUSEI1/gmaker_japan.htm ここのChapter14 ゲーム配布に売ってもかまわないと書いてあるが、これ本当?
44 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 13:25:09 ID:iuDmkXQZ] >>43 ライセンス読む限りでは制作したゲームは使用素材の規定を守っている限り、配布方法の制限は一切ないみたい。 プロジェクトファイルは販売してはいけないみたいなこと書いてあるけど、exeで出力したファイルならいいと思うよ。
45 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 13:30:23 ID:4t7O5zMm] >>44 なるほど。調べてくれてありがとう。
46 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 16:19:00 ID:mUIUdkzk] 特定のタイミングのみ、特定のOBJだけ壁に対するsolid判定を しないようにしたいんですが、方法はないでしょうか? 壁自身のsolid属性を変えると、他のOBJが落っこちてしまうし・・・ どうすればいいでしょうか?
47 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 20:20:00 ID:iuDmkXQZ] >>46 特定のタイミングでだけ別のオブジェクトに変更するとか…… 駄目だこれくらいしか浮かばないにゃー
48 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 20:37:37 ID:WkeQkIH/] solidOBJのほうでナントカするのではなく、特定のOBJのほうで対処するべきだろうね。 キーイベントやステップイベントでsolidオブジェクトに対する処理をしているなら、 無効にしたいときのフラグをたてて、条件分岐で処理を振り分ければいいと思う。 衝突イベントのところを変えたいとなると、ちょっと難しいかな。 solidオブジェクトとの衝突イベントでは、双方のインスタンスがそのステップで移動していたとしても、 インスタンスの位置がステップ開始時の座標(xprevious, yprevious)に自動で戻されてしまうから。 壁を無効にしたいときには、衝突イベント内で移動し直さないといけないことになる。 ・・・いろいろ書いたあとにリロードしなおした。>>47 のほうがスマートにできるかもね・・・。まあ、参考になればorz
49 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 22:25:09 ID:mUIUdkzk] >>47 、48 レスありがとうございます。 「Stepイベント」とかではなく、「衝突イベント」を作って動作させています。 ということは、やるべき事はSolid云々を考えるのではなく 「Stepイベント」内で「衝突イベント」と同じことをさせないといけないということですね… いろいろ試してはみたんですが、Stepイベント内で条件指定すると 「衝突イベント」のようにうまくいかず、めり込んでしまいます・・・ 多分、条件指定の方法がいけないんだと思います… 「Stepイベント」内で「衝突イベント」とまったく同じ動作をさせる条件ってありますでしょうか?
50 名前:48 mailto:sage [2008/05/18(日) 02:22:11 ID:eCUFmfOE] >>49 >「Stepイベント」内で「衝突イベント」とまったく同じ動作をさせる条件ってありますでしょうか? instance_place(x,y,obj) っていう関数が一番近いかな・・・。 この関数を実行しているインスタンスが(x,y)に置かれたとき、objと重なっている状態なら真を返す関数だよ。 これをif文の条件に使うといいかもしれない。 えっと質問とは別に、さっき考えた自分ならこうするかもっていう方法も書いておくよ。 solidの衝突イベントでは、>>48 で書かれているとおり >インスタンスの位置がステップ開始時の座標(xprevious, yprevious)に自動で戻されてしまう っていうのがあるんだけど、これを逆手にとって、 壁をすり抜けさせたい場合のみに、すり抜けさせるオブジェクトの通常ステップイベントの最後で、 xprevious = x; yprevious = y; とする。 そして、衝突イベントのところで、通常とすり抜けの条件分岐させて、 すり抜けのときは何もしないようにする。 この方法が汎用的かどうか不明だから、わからなかったら聞き流して。
51 名前:46 mailto:sage [2008/05/19(月) 06:37:21 ID:lUKR9rqp] >>50 なるほど! 衝突イベントについて、分かってきた感じです。 いろいろと試してみようかと思います。 ありがとうございました。
52 名前:名前は開発中のものです。 mailto:sage [2008/05/20(火) 00:44:21 ID:34XojH21] Share it代行やってなかった… 他にレジスト購入代行してくれるところってありませんかねぇ? 海外サイトのクレジット決済、日本のと違って、どこにどう入れればいいのかサッパリっすorz
53 名前:名前は開発中のものです。 mailto:sage [2008/05/20(火) 03:24:54 ID:D4oicTQ3] つPaypal
54 名前:名前は開発中のものです。 mailto:sage [2008/05/20(火) 09:13:24 ID:3IvwgtXZ] シューティング作ってる人でリプレイ機能作ってる人いる? とちょっと聞いてみる。
55 名前:名前は開発中のものです。 mailto:sage [2008/05/20(火) 12:28:50 ID:D4oicTQ3] 俺も便乗して質問。 みんな背景はどうしてるんだ? バース効かせた640×480のとか、どれくらいの規格が主流なのか参考の為に教えてもらえるとありがたい。 特にアクションゲームの分野で…
56 名前:名前は開発中のものです。 mailto:sage [2008/05/20(火) 14:45:32 ID:3IvwgtXZ] >>55 私はどのゲームでも基本的に各編が128か256か512とかになるようにしてる。 あまりメモリ潰さなきゃ好きなサイズでいいと思うけど……
57 名前:56 mailto:sage [2008/05/20(火) 14:47:41 ID:3IvwgtXZ] 間違えた 各編→各辺
58 名前:名前は開発中のものです。 mailto:sage [2008/05/21(水) 07:20:16 ID:tP4UvCEO] >>54 大雑把でわるいが、 ・ステップごとに十字キー(レバー)と各ボタンの入力をチェックしてファイルに書き出すオブジェ作成。 ・リプレイモードで保存したファイルから記録したデータをプレーヤーキャラにコントロールデータとして送るオブジェを作成。 (書き出すオブジェと統合でもいいと思うけど煩雑になるかもしれないので分けたほうがいい) ・プレーヤーキャラオブジェは「通常プレーモード時では、コントローラー入力で作動する」「リプレイモード時では、もらったコントロールデータで作動する」を 切り替える仕組みを作ってやればいい。 要は「不定なのはプレーヤーの入力のみとし、それを記録する」こと リプレイ実装を考えてるゲームに、ゲーム側で不定要素を抱えている時はそれを不定でなくすようにする。例えば @ランダム要素、random()関数や「With a change perform next」アクションを使っているオブジェがあって、 それがゲーム進行を左右しているなら「乱数の種」付きランダム関数にし、リプレイモード開始時「乱数の種」をリセットすればランダムも使用可能となる 「乱数の種」付きランダム関数はhogehige氏が作ってくれています。(この場を借りて感謝)>>4 のリンク先、上から二つ目 A当然ながらポーズキーを実装している場合は書き出すオブジェの書き出しも停止してやらなくてはならない。まぁポーズに限らず ROOMの移動とかもあるので「記録停止」「記録開始」も必要になってくるし、リプレイモードもそのタイミングで「コントロールデータ送出停止」とかも必要になってくる と・・・まぁこんな感じかな・・・ほんとに大雑把なので回答になってないかもしれないが、これぐらいでかんべんしてください。
59 名前:名前は開発中のものです。 mailto:sage [2008/05/21(水) 09:28:39 ID:wqIERWKF] >>58 わざわざ調べて返答してくれたのなら申し訳ない(^^; 単純にリプレイ機能作ってる人ってどのくらい居るのかな〜ってのを知りたかっただけだったのだが…… でも自作の今のリプレイ機能よりすっきりまとまる感じがするのでちょっとシステム洗練してきますです 現時点ではなぜか一面でだけ絶対ずれるし……
60 名前:名前は開発中のものです。 mailto:sage [2008/05/21(水) 11:47:10 ID:khQhl2Eo] 自分もレジスト考えてるのですが、 >>53 のPaypalってのは何ですか? コンビニとかに払ってくるような物?
61 名前:名前は開発中のものです。 mailto:sage [2008/05/21(水) 21:25:07 ID:j5bhpnBL] 文章的に分かりにくいかもですが 上からは乗れて、下からジャンプすると貫通して通れるような足場を作りたいのですが 何か良いアイディアはありませんでしょうか?
62 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 07:57:22 ID:dVs71+g+] >>61 やっぱり文章的にアレだったので訂正・・・ 足場OBJを作るとして プレイヤーが足場OBJに上から衝突した場合は、Solid属性みたいに乗る事が出来 ジャンプ等で下の方から足場OBJに衝突した場合は、すり抜けて通れるように したいと考えております。 instance_place(x,y,obj)を条件に、Gravityを0にする動作をさせてみても すり抜けてしまうし、なかなか難しいものです。 ご教授いただきたく、お願いしますm(__)mペコ
63 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 17:46:59 ID:QlDRy8fj] >>62 実際に試してないのでどうかわからないがこんな感じのを考えてみた。 プレイヤー側の床とのコリジョンイベントで、 床に対し、自分が完全に乗る高さ以上に居る&vspeedが0以上なら、 vspeedと重力を0にし、自分の高さを床に乗るように合わせる。 かなりわかりにくくて申し訳ない……
64 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 20:36:05 ID:dVs71+g+] >>63 なるほど。vspeedですね。 試してみたんですが >>自分の高さを床に乗るように合わせる。 これをやらないと衝突判定があっても、沼に沈むように下降する現象が発生 (↑原因不明・・・なんでだろう) vspeedだけじゃ駄目なんですね。 位置を合わせるって部分はまだ微調整が必要ですが おかげで、実現に近づける事ができました ありがとうございました。
65 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:17:29 ID:QlDRy8fj] >>64 位置を合わせないと沈んでいくのはvspeedが0になったあと1フレーム分下に加速度がかかっているからで。 まあ、お節介かも知れないけど補足(^^;
66 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:36:47 ID:A9Tj0djs] 前のスレあたりで ポーズの作り方で ゲーム上のインスタンスを動かなくさせる(反応しなくさせる) っていうのがあった気がするんですけど 誰か詳しく覚えてませんか?
67 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:39:49 ID:F+pyFRDi] Show informationでポーズは満足してる俺は明らかにやる気が無い
68 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:45:49 ID:QlDRy8fj] 全ての該当オブジェクトを非アクティブにするってのだったっけ?
69 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:50:14 ID:bh5bHg1Z] ダウンロードとかは不要っで作ったゲームをホームページ上で起動させる方法はありますか? 日本語がおかしくてすみません。。
70 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:54:35 ID:QlDRy8fj] >>69 残念ながらできません。 ブラウザで遊べるゲームが作りたいのならFLASHかJavaで作りましょう
71 名前:名前は開発中のものです。 mailto:sage [2008/05/22(木) 21:59:29 ID:bh5bHg1Z] >>70 そうですか、わかりました。 ありがとうございました。
72 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 00:31:35 ID:IwtfC0JS] 日本語描画スクリプトで変数の現在の数値を表示したいんですけど { n=0; mbtext_setfont(spr_zen20,spr_han20,20); mbtext_draw("n",x,y,0,0,0) } これだと0ではなく、nが表示されて困っています どうすればnではなく代入されている数値が表示できるのでしょうか?
73 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 01:03:30 ID:9mBFsqkn] >>72 ""で囲むとそれは文字列として扱われてしまう。 しかしnとだけ指定しても内容が文字列ではなく数値なので、文字列にしてやる必要がある。 "n"をstring(n)に書き換えればオーケー。
74 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 01:49:02 ID:IwtfC0JS] >>73 なるほど! 助かりました、ありがとうございます
75 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 02:01:25 ID:smnTR4WN] 飛び道具にオーラをつけるような表現をしたいんですが 表現の方法がサッパリ分からない状態です。 何か良い方法は無いものでしょうか…? ※以下の動画で使われてる飛び道具のような表現です ttp://www.nicovideo.jp/watch/sm2021499 >>ニコ動嫌いな人 URL出してしまい、すいません…
76 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 03:26:40 ID:d1WY1tem] >>75 cの攻撃みたいなやつ?
77 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 05:21:17 ID:6Q5daQ7y] 質問です。 execute_program(prog,arg,wait) execute_shell(prog,arg) この二つはexeファイルも起動させることができる。 argumentを一つ使うこともできる。ここまではわかりました。 GMで作ったゲームにargumentを使って実行させることはできますか? 言い直すと、「GMで作ったゲーム1」がexecute_programで「GMで作ったゲーム2」を起動させたとき、 ゲーム2は、execute_programのargumentを参照することができますか?
78 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 07:15:28 ID:OhG93FRY] >>77 parameter_count() 起動時パラメータ(コマンドライン引数)の数を取得する。パラメータなしで0となる。 parameter_str(n) n番目の起動時パラメータ(コマンドライン引数)の文字列を取得する。0番目はexe本体のフルパス名となる。 この二つの関数が使えそうだね。 たとえば、ゲーム1から execute_program("ゲーム2.exe", "arg1 arg2 arg3", 0); を実行すると、 ゲーム2において、 parameter_count() ← 3を返す parameter_str(1) ← 文字列"arg1"を返す ってなるんじゃないかな。
79 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 07:20:51 ID:smnTR4WN] >>76 cの攻撃みたいなやつのことです
80 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 10:22:58 ID:6Q5daQ7y] >>78 parameterを使ってみたら見事にできました。 ありがとうございました。
81 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 11:06:03 ID:9mBFsqkn] >>79 飛び道具から丸くて小さくなっていくスプライトのオブジェクトを置き続ければいいんじゃないか? レジスト版なら加算合成とか使えて綺麗になるが、通常版だとちとイマイチかもしれないが……
82 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 14:43:02 ID:EGcliZhu] www.ice.ci.ritsumei.ac.jp/~ruck/CLASSES/SOUSEI1/gmaker_japan.htm ここの37にマルチプレイヤーゲームが出来ると書いてありますが、 書いてあることが凄すぎてよくわかりません。。 誰か上手く教えていただけませんか?
83 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 15:56:41 ID:9mBFsqkn] >>82 要はネット対戦機能とかを作れるって事だけど、マニュアルに書いてある事を理解できる位のネットワークに関する知識がないと辛いんじゃないかな…… 出来たら面白そうだなとは思うけどね
84 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 18:31:26 ID:EGcliZhu] >>83 わかりました
85 名前:名前は開発中のものです。 mailto:sage [2008/05/26(月) 21:09:52 ID:K7Gb+EE1] マリオのような感じのゲームを作りたいのですが、 横に移動して、ジャンプも出来て、重力をつけたら画面外まで落ちていきました。 何かオブジェクトに乗っかるにはどうすればいいですか?
86 名前:名前は開発中のものです。 mailto:sage [2008/05/27(火) 01:16:07 ID:il/v0kgX] >>85 1、衝突検知→wallに衝突した場合、衝突フラグをオン //↓四角範囲指定でキャラの足元の座標を指定 if collision_rectangle(x+10,y+55,x+30,y+60,wall,true,false){wall_flag = 1} //↑「wall」っていう名前の壁OBJを用意 else {wall_flag=0}//それ以外の場合は空中判定 //2、衝突フラグオンの場合、足元のOBJを調べて、重力とvspeed(縦速度)を0 // 更に、足元OBJのy座標に自OBJの座標を合わせる(こうすることですり抜け現象を回避) if wall_flag ==1 { col_id = (collision_rectangle(x+10,y+55,x+30,y+60,wall,true,false))//足元の足場OBJのID取得 if vspeed >= 0//落下、もしくは直立時のみ、座標を合わせる { vspeed = 0; //縦速度0 y = col_id.y-1;//足元の足場OBJの1マス上のy座標に合わせる } gravity = 0//条件がなんであろうと、とりあえず重力0 } 超大雑把だけど、↑のコード調整すればいけると思うよ 無駄に手順が多い気がするけど、これ以上スマートな方法知らないんです。。。 ちなみにこのまま使うと>>62 みたいな足場になります。
87 名前:名前は開発中のものです。 mailto:sage [2008/05/27(火) 06:04:21 ID:8CURxQUf] 悪魔城シリーズみたいに、雲のテクスチャを使って遠方から 雲が流れてく様な演出ってできないかな…、あまり無茶をするとガクガクになるからアレかも。
88 名前:名前は開発中のものです。 mailto:sage [2008/05/27(火) 22:54:16 ID:6Xhx1kD4] drawイベント、使い方がよくわからない・・・ 一度draw呼び出した後の消し方も分からないし 非公式読んでもわからなかった・・・ オブジェクトいっぱい作って表現するよりも軽いらしいから 使いこなせたらベストなんだけど、うーm
89 名前:名前は開発中のものです。 mailto:sage [2008/05/28(水) 12:32:20 ID:xSCQjZ2e] >>88 drawイベントは呼ばれている間ずっと描画するからifとかで描画する条件を付ければいい。 そんな重いものを作るんでなかったらオブジェクトを複数に分けた方が良いと思う。 ずっと描画する背景やメニューなら別だけど……。 >>87 悪魔城やったことないからイメージできないや…… 奥から手前に雲が向かってくるのなら、雲を描画するオブジェクトを作って、拡大しながら移動したりアルファをいじればいいと思うんだが……
90 名前:名前は開発中のものです。 mailto:sage [2008/05/29(木) 02:36:12 ID:DHizXfG5] 88です >>89 >>drawイベント なるほど!ありがとうございます!
91 名前:名前は開発中のものです。 mailto:sage [2008/05/31(土) 00:39:40 ID:rrtVSSkL] セーブデータ関係って皆さんどうされてます? ファイル生成とかいろいろありますが データが外部から操作されないようなセーブデータって可能でしょうか?
92 名前:名前は開発中のものです。 mailto:sage [2008/05/31(土) 08:51:13 ID:ZVZLgF9M] 物理的に不可能。 暗号化するなどで操作されにくくするのが関の山。
93 名前:名前は開発中のものです。 mailto:sage [2008/05/31(土) 09:10:26 ID:rrtVSSkL] >>92 暗号化って、難しそうですねぇ。 うーん・・・
94 名前:名前は開発中のものです。 mailto:sage [2008/05/31(土) 12:15:42 ID:zJdP1EEF] 暗号化といっても、ビットシフトとXORの組み合わせならそんなに難しくないし、それなりに弄られなくなると思うけど。
95 名前:名前は開発中のものです。 mailto:sage [2008/05/31(土) 13:34:09 ID:ou8RstaY] 無茶苦茶分かりにくい並び方でデータを並べるとかしか浮かばないなぁ。 あとは保存された数値の内容でパスワードみたいなのを生成して一緒に保存して、読み込むとき整合性がとれなかったら不正なデータと見なすとか。
96 名前:名前は開発中のものです。 mailto:sage [2008/06/02(月) 15:17:04 ID:/RuiniIL] 蜃気楼の表現ってどうするんだろうな…、2Dじゃ無理臭い気が…。
97 名前:名前は開発中のものです。 mailto:sage [2008/06/02(月) 22:26:22 ID:Epu/dM/T] >>96 重いけどできなくはないよ。 画面を細かく水平方向に区切って、サインカーブに沿ってずらしながら描画する。 そのカーブを時間と共に変えれば、ゆらゆらと揺れる感じが出せる。 GM6以降ならテクスチャやサーフェス使えばいいかな。
98 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 06:54:11 ID:OlF/LjGi] >>97 できるのかw、流石GMだ… っていうか、サインカーブ…。テクスチャはまだわかるけど、サーフェスとか まだ使い始めて間も無いんで、一見しただけではパッとこないが… とりあえずレスサンクス、97のレスを元に色々やってみるよ。
99 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 10:49:46 ID:JdoODmgp] GM初心者で格ゲーみたいなのを作りたいんだが全くわからない。とりあえず、 ・簡単なCPの作り方(近づいてパンチと移動だけでよい) バージョンは5.3レジスターはしてません。GMLは少しなら
100 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 11:32:43 ID:YZVoGHHf] Backgroundやroomにマウスクリック等のイベントを追加することはできますか? 背景画像(あるいはroom背景色の領域)をクリックした時にクリック座標を取得しインスタンスを生成するのが目的です 具体的には画面をクリックした場所に地雷を設置するというゲームを作ってます 今は背景色で塗りつぶした画像を用意しオブジェクトとしてAddEvent>Mouse>LeftButton>Code という方法でやりたい事は実現はできているのですが上手い方法じゃないと自覚しとります GM6未レジスト、フォーラムとHelpは読んだつもりですが過去ログは見落としてるかもしれません
101 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 12:37:58 ID:TGP/82mE] >>99 私が以前作った格ゲーのサンプルを提供してあげたいが、いかんせんPCにネット環境がない……。 格ゲー作るならそれなりに複雑な処理になるから、 ボタンが押される→キャラの状態により攻撃実行 の仕組みを作って、CPUの動作は位置によって複数の連携テーブルから適当なものを選んで行動、とかそんな感じにしなきゃ辛い。 何が言いたいかというと、私は応援してるよ、と(^^;
102 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 19:59:47 ID:JdoODmgp] 格ゲーはとりあえず試行錯誤しときます。 これかもアドバイス頂けると嬉しいです。 応援ありがとうございます。