トップページ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/
0083名前は開発中のものです。2008/05/23(金) 15:56:41ID:9mBFsqkn
>>82
要はネット対戦機能とかを作れるって事だけど、マニュアルに書いてある事を理解できる位のネットワークに関する知識がないと辛いんじゃないかな……


出来たら面白そうだなとは思うけどね

0084名前は開発中のものです。2008/05/23(金) 18:31:26ID:EGcliZhu
>>83
わかりました
0085名前は開発中のものです。2008/05/26(月) 21:09:52ID:K7Gb+EE1
マリオのような感じのゲームを作りたいのですが、
横に移動して、ジャンプも出来て、重力をつけたら画面外まで落ちていきました。
何かオブジェクトに乗っかるにはどうすればいいですか?
0086名前は開発中のものです。2008/05/27(火) 01:16:07ID: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みたいな足場になります。
0087名前は開発中のものです。2008/05/27(火) 06:04:21ID:8CURxQUf
悪魔城シリーズみたいに、雲のテクスチャを使って遠方から
雲が流れてく様な演出ってできないかな…、あまり無茶をするとガクガクになるからアレかも。
0088名前は開発中のものです。2008/05/27(火) 22:54:16ID:6Xhx1kD4
drawイベント、使い方がよくわからない・・・
一度draw呼び出した後の消し方も分からないし
非公式読んでもわからなかった・・・

オブジェクトいっぱい作って表現するよりも軽いらしいから
使いこなせたらベストなんだけど、うーm
0089名前は開発中のものです。2008/05/28(水) 12:32:20ID:xSCQjZ2e
>>88
drawイベントは呼ばれている間ずっと描画するからifとかで描画する条件を付ければいい。

そんな重いものを作るんでなかったらオブジェクトを複数に分けた方が良いと思う。
ずっと描画する背景やメニューなら別だけど……。



>>87
悪魔城やったことないからイメージできないや……

奥から手前に雲が向かってくるのなら、雲を描画するオブジェクトを作って、拡大しながら移動したりアルファをいじればいいと思うんだが……
0090名前は開発中のものです。2008/05/29(木) 02:36:12ID:DHizXfG5
88です

>>89
>>drawイベント
なるほど!ありがとうございます!
0091名前は開発中のものです。2008/05/31(土) 00:39:40ID:rrtVSSkL
セーブデータ関係って皆さんどうされてます?
ファイル生成とかいろいろありますが
データが外部から操作されないようなセーブデータって可能でしょうか?
0092名前は開発中のものです。2008/05/31(土) 08:51:13ID:ZVZLgF9M
物理的に不可能。
暗号化するなどで操作されにくくするのが関の山。
0093名前は開発中のものです。2008/05/31(土) 09:10:26ID:rrtVSSkL
>>92
暗号化って、難しそうですねぇ。
うーん・・・
0094名前は開発中のものです。2008/05/31(土) 12:15:42ID:zJdP1EEF
暗号化といっても、ビットシフトとXORの組み合わせならそんなに難しくないし、それなりに弄られなくなると思うけど。
0095名前は開発中のものです。2008/05/31(土) 13:34:09ID:ou8RstaY
無茶苦茶分かりにくい並び方でデータを並べるとかしか浮かばないなぁ。

あとは保存された数値の内容でパスワードみたいなのを生成して一緒に保存して、読み込むとき整合性がとれなかったら不正なデータと見なすとか。
0096名前は開発中のものです。2008/06/02(月) 15:17:04ID:/RuiniIL
蜃気楼の表現ってどうするんだろうな…、2Dじゃ無理臭い気が…。
0097名前は開発中のものです。2008/06/02(月) 22:26:22ID:Epu/dM/T
>>96
重いけどできなくはないよ。
画面を細かく水平方向に区切って、サインカーブに沿ってずらしながら描画する。
そのカーブを時間と共に変えれば、ゆらゆらと揺れる感じが出せる。
GM6以降ならテクスチャやサーフェス使えばいいかな。
0098名前は開発中のものです。2008/06/03(火) 06:54:11ID:OlF/LjGi
>>97
できるのかw、流石GMだ…
っていうか、サインカーブ…。テクスチャはまだわかるけど、サーフェスとか
まだ使い始めて間も無いんで、一見しただけではパッとこないが…
とりあえずレスサンクス、97のレスを元に色々やってみるよ。
0099名前は開発中のものです。2008/06/04(水) 10:49:46ID:JdoODmgp
GM初心者で格ゲーみたいなのを作りたいんだが全くわからない。とりあえず、  ・簡単なCPの作り方(近づいてパンチと移動だけでよい) バージョンは5.3レジスターはしてません。GMLは少しなら         
0100名前は開発中のものです。2008/06/04(水) 11:32:43ID:YZVoGHHf
Backgroundやroomにマウスクリック等のイベントを追加することはできますか?
背景画像(あるいはroom背景色の領域)をクリックした時にクリック座標を取得しインスタンスを生成するのが目的です
具体的には画面をクリックした場所に地雷を設置するというゲームを作ってます
今は背景色で塗りつぶした画像を用意しオブジェクトとしてAddEvent>Mouse>LeftButton>Code
という方法でやりたい事は実現はできているのですが上手い方法じゃないと自覚しとります

GM6未レジスト、フォーラムとHelpは読んだつもりですが過去ログは見落としてるかもしれません
0101名前は開発中のものです。2008/06/04(水) 12:37:58ID:TGP/82mE
>>99
私が以前作った格ゲーのサンプルを提供してあげたいが、いかんせんPCにネット環境がない……。

格ゲー作るならそれなりに複雑な処理になるから、
ボタンが押される→キャラの状態により攻撃実行
の仕組みを作って、CPUの動作は位置によって複数の連携テーブルから適当なものを選んで行動、とかそんな感じにしなきゃ辛い。

何が言いたいかというと、私は応援してるよ、と(^^;
0102名前は開発中のものです。2008/06/04(水) 19:59:47ID:JdoODmgp
格ゲーはとりあえず試行錯誤しときます。
これかもアドバイス頂けると嬉しいです。
応援ありがとうございます。
0103名前は開発中のものです。2008/06/04(水) 20:17:36ID:JdoODmgp
早速質問です、すいません(-_-;)
CPの動きはプレイヤーが近くにいるとパンチするようにしたんですが、そうするとCPが永遠にパンチしてきます。
パンチのランダム性(?)てどうやるんでしょう。あとCPのプレイヤーの位置認識にxyを使ってるんですがそうすると特定の距離の時しかパンチしてきません。
0104名前は開発中のものです。2008/06/04(水) 21:00:11ID:s7z6oTUx
>>100
Mouse > Global mouse event(GM6以降)
またはcontrolの中にある「If a mouse button is pressed」

>>103
あるアクションをランダムで実行したいなら「With a chance」アクション
(controlにあるサイコロの絵のアイコン)
あと、サンプルに付いてくる1945っていうシューティングを見ると
一定間隔でしか弾を撃てないようにする制御をしているので参考になるかも。
基本的に格闘ゲームは変数を使って「今キャラクタがどんな状態にいるか」
を管理するのが重要になるよ。

後半の質問は意味がよくわからん。自分と相手の距離を計算して
「100より大きくて120より小さい」とか大小判定すればいいと思うんだけど、
そういう話じゃない?
0105名前は開発中のものです。2008/06/04(水) 23:33:38ID:LluC3sBJ
スクロールの対象を現在「主人公A」にしてます。
「主人公B」に変身すると、スクロールの対象が失われエラーになるのですが、
どーすればいいのでしょうか?教えて下さい。

{
//
new_view_left = min(max(0, (主人公A.x+10) - view_width[0]/2), room_width - view_width[0]);
view_left[0] += (new_view_left - view_left[0]) / 4;
}
0106名前は開発中のものです。2008/06/04(水) 23:51:42ID:5xx8K1a2
AとBを同じParentに設定して、そのParentを追尾すればいいんじゃない?
0107名前は開発中のものです。2008/06/04(水) 23:56:56ID:LluC3sBJ
お答えいただいたのにすいません・・・
プログラムとかが分からないので、

(主人公A ? 主人公B.x+10)

?の所に何か書き込めばいいのでしょうか?
or とかandとか入れてみたんですが駄目でした。
0108名前は開発中のものです。2008/06/05(木) 01:30:34ID:Cu6N54BP
新しいオブジェクトを作る。命名「主人公の素」
主人公Aのプロパティを開いて、「Parent」の欄で今しがたつくった「主人公の素」を選ぶ。
主人公Bも同じようにParentを「主人公の素」に設定する。
さっきの式を「主人公の素.x + 10」に変更。おわり
0109名前は開発中のものです。2008/06/05(木) 05:40:07ID:SxCz6ZJb
丁寧な回答
ありがとうございます!!
エラーが出ず、スクロールできました。
0110名前は開発中のものです。2008/06/06(金) 00:51:41ID:J8O2ZYG8
自分も以前から台形の立体表示を
作りたいと思っていました。
テクスチャの変形が平行四辺形的な
変形になってしまうため、変形率の異なる
三角形二つの組み合わせでは不可能と
思っていたのですが…
力押しでこんなの作ってみました。
キャラや背景その他は適当です。

ttp://www.h6.dion.ne.jp/~m_style/texture_s.zip

キー左右で移動のみです。

映像の繰り返しパターンを1枚のテクスチャで2回設け、
それを台形にしておき、変形する。

移動時は、テクスチャ上の各点を移動させる。

ということです。
01111102008/06/06(金) 00:57:58ID:J8O2ZYG8
書き忘れました。
obj_bg_earth01が、地面の部分のオブジェクトです。
0112名前は開発中のものです。2008/06/06(金) 11:05:29ID:4VD34WHe
>>110
うぉぉぉぉ……!
せっかくサンプル用意してもらったのに今PCにネット環境がないから見れない……。

……でも凄い嬉しいです。
0113名前は開発中のものです。2008/06/07(土) 14:55:19ID:5IJUQrYD
>>110
キャラ素材の作りに感動しました!
3Dっぽいですけど、素材は何で作ってます?
0114名前は開発中のものです。2008/06/08(日) 13:41:45ID:T6BCIG1y
クリックした瞬間に存在してる「オブジェクトA」を削除して
クリックした地点に新しく「オブジェクトA」を作成し、
Step towards pointでその「オブジェクトA」の地点まで「主人公」を移動させる。というゲームを作っているのですが
「主人公」のスプライト(GIF動画)を移動している方向によって変えるにはどうすれば良いでしょうか?

If an expression is trueで「0<=direction<=45」みたいな風にやったのですが
一番最後に書いた方向(315<=direction<=360)のスプライトに固定されてしまい何処に移動しても画像が変わりません。

解りにくい説明ですみませんが、どうかご教授お願いします。
0115名前は開発中のものです。2008/06/08(日) 14:54:45ID:utQhd3oj
0<=direction && direction<=45
でも両方<=だと、たとえばdirectionがちょうど45.0の時に条件がかぶるから
0<=direction && direction<45
の方がいい
0116名前は開発中のものです。2008/06/08(日) 16:42:58ID:T6BCIG1y
>>115
ありがとうございます。
その様にした所、時々横向きになるのですがやはり画像はほとんど変わりません。

この様な感じに作っているのですが
http://www2.uploda.org/uporg1470436.zip
もしかして根本的な何かを間違えているのでしょうか?

再度質問で申し訳ありませんが、よろしくお願いします。
0117名前は開発中のものです。2008/06/08(日) 17:50:32ID:eax+1E9y
さぁ、早くそのifのnotについているチェックボックスを外す作業に戻るんだ。

そりゃ0<=direction && direction<=45「ではないとき」なんて書き方をしてたら、
一番最後の【270〜360「ではないとき」】が高確率で反映されるわな。

余談だが、0<=directionって書き方に違和感を感じて仕方が無い。
ま、問題なく動いていればいいのかもしれないけどね。
0118名前は開発中のものです。2008/06/08(日) 17:55:53ID:eax+1E9y
チェックボックスを外すって何だよ俺……。
どう頑張ってもボックス自体は外せねぇだろ。
notのチェックボックスのチェックを外す、だ。
0119名前は開発中のものです。2008/06/08(日) 20:02:45ID:T6BCIG1y
>>117
ウボアァアァァァありがとうございます。気付きませんでしたorz
おかげでちゃんと移動先を向いてくれるようになりました。本当にありがとうございます。

何度も何度も質問ですみませんがgifの1フレーム目から動かないのですが何か設定が必要なのでしょうか?
本当に申し訳ありません。よろしくお願いします。
0120名前は開発中のものです。2008/06/08(日) 23:36:33ID:NJgDJbX1
マリオみたいなジャンプアクションは
どうすればいいのでしょうか?

たとえば走りながらジャンプ等

初心者すぎる質問で申し訳ありません
0121名前は開発中のものです。2008/06/09(月) 00:17:01ID:QzRxZbxD
>>120
ジャンプアクションの要素を羅列してみる。

・空中に居ると下に落ちる
・床の上にキャラが乗れる
・左右にキーを入れると加速する。ダッシュボタンを押すと最大速度が上がる
・床に乗っている状態でジャンプボタンを押すとジャンプする。


とりあえずダッシュしながらジャンプは、ジャンプの際は横のスピードはいじらずに上にだけ速度を加えればいいと思うよ
0122名前は開発中のものです。2008/06/09(月) 00:42:40ID:ekIBUZL+
>>113
みるべきところはそこじゃなす
Edgeかなにかで描いたんだろ?
0123名前は開発中のものです。2008/06/09(月) 15:28:48ID:N/jbPRoy
>>120
素人の俺が考えて見たサンプルをどうぞ
http://www2.uploda.org/uporg1471552.zip

中身がゴチャゴチャしてスマン。
01241202008/06/09(月) 20:00:05ID:2DlmJVHk
>>121 >>123  回答ありがとうございます

>>123のファイルは解凍した後のファイルが読めないのですが
どうしたら読めるようになりますか?
このファイルを読み込むプログラム〜と言われてしまいます
0125名前は開発中のものです。2008/06/09(月) 20:03:20ID:N/jbPRoy
>>124
言い忘れてたけど>>123のはgm6で作った奴だ
0126名前は開発中のものです。2008/06/09(月) 20:30:48ID:MbRvBo5s
ということもあるので使用バージョン、レジストの有無はなるべく書いてね

公式のチュートリアル(Platform Gamesってやつね)眺めるだけでも
けっこう参考になると思うんだが、あれも今はGM7用のしか置いてないな
0127名前は開発中のものです。2008/06/10(火) 02:44:02ID:S3IlP6Mt
上位互換性はあったような。
互換というよりは、古verのものを新verの形式に書き直す、とかだったような気がするけど。
ファイルを直接ダブルクリックとかでは開けられないだろうから、GMから開くとかDrag&Dropとか……。

何にせよ、話が噛み合わないとどうしようもないので、情報は書いておいて欲しいもの。
0128名前は開発中のものです。2008/06/10(火) 08:16:48ID:WKUtiVJV
実際5から6では殆んどエラー吐いて起動しない場合が多いよ。
6から7なら大丈夫だろうけど。

まあ567全部インストールしておけば問題ないんだろうけどね
0129名前は開発中のものです。2008/06/10(火) 12:07:20ID:1Irexyd7
BGMやムービーを安易に見れないようにできる?
0130名前は開発中のものです。2008/06/10(火) 13:37:08ID:WKUtiVJV
>>129
BGMやムービーを別々にして配布したいなら、拡張子を変更しつおいて、使う時だけリネームして読み込み、使い終わったら戻すって方法位かなぁ。

別々にしたい訳じゃないけど読み込みに時間かけたくない!ってのなら、6以降限定だが、Global Game SettingのIncludeで本体に含めてから実行時に展開するようにすればいいよ。
0131名前は開発中のものです。2008/06/10(火) 14:29:23ID:1Irexyd7
>>130
thx
01321132008/06/10(火) 20:08:22ID:6sraZo9R
>>110
うーm。。。答えてもらえないか

スレ違いだけど、素材作りにEdge管理で行き詰まり感じてて…
でもどこに質問しにいけばいいか分からなかったので質問させていただきました。

「3D→2D素材化」って流れで作られたものに見えたんで
この行き詰まりから脱せるんではないかって希望を見てしまったんでs
0133名前は開発中のものです。2008/06/11(水) 16:39:10ID:EVNflJcn
ダウンロードしてみようと思ったがyoyoに繋がらない、自分だけ?落ちてる?
0134名前は開発中のものです。2008/06/11(水) 21:49:55ID:5ZX5tJO/
>>133
今は大丈夫みたいだが、どう?
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])を
スコープに合わせて動かしてやればいい。
■ このスレッドは過去ログ倉庫に格納されています