【2D】ゲーム作成ツールGameMaker part4【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/04/23(木) 08:11:08ID:iAS0afeL●本家(英語)
ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.main.jp/(現在一時閉鎖中)
前スレ
【2D】ゲーム作成ツールGameMaker part3【マンセー】
ttp://pc11.2ch.net/test/read.cgi/gamedev/1210437707/
0378名前は開発中のものです。
2009/09/07(月) 10:13:48ID:ADkvlysT公式サイトのTutorial: Creating a Scrolling Shooterを
横にすりゃいい話
0379名前は開発中のものです。
2009/09/07(月) 14:17:04ID:ADkvlysT0380名前は開発中のものです。
2009/09/07(月) 17:14:50ID:V7WLXwLP0381名前は開発中のものです。
2009/09/07(月) 20:10:07ID:V+VMrqdA0382名前は開発中のものです。
2009/09/07(月) 21:12:47ID:mhvu03xIまたお前か、いいかげん努力することを覚えろ
0383名前は開発中のものです。
2009/09/07(月) 23:08:44ID:k+fWuIegたぶんそれは俺と勘違いしてるんじゃないかな。
0384名前は開発中のものです。
2009/09/07(月) 23:52:10ID:VD5vQbb8アクションゲームを題材にやってるプログラミング講座の方が役にたったりするなー
GMでも同等の設定は出来るんだし。
0385名前は開発中のものです。
2009/09/08(火) 04:03:19ID:+XBuIauZフライト型のシューティングの場合ずっと上向いたまま方向キーで移動って
感じだと思うんですが、斜め上押したら機体が斜め上を向いて弾が斜め上に発射されるように
右に押したら右向き、左押したら左向き、下押したら下向きになり360度
弾を発射できるようにしたいのですがどのようにすればよろしいでしょうか?
ご教授お願いします
0386名前は開発中のものです。
2009/09/08(火) 08:56:11ID:/byrtEQImp3のループ位置指定したいならあれがおすすめ。
初めて使ったときには感動したよ。
>385
keyboard_check_pressed()で押してるキーの方向を調べる
まずはそれからだ
0387名前は開発中のものです。
2009/09/08(火) 17:07:31ID:yMvKz00+0388名前は開発中のものです。
2009/09/08(火) 20:55:58ID:qBHJfdMm移動グラフィックも横に移動する時は横移動専用グラに、下に移動する時は
正面とかには出来てるんですよ、弾が8方向に発射できないんです。
後右に移動中、右を押した時に止まったら右向いたまま静止したグラフィック
にしたいんですがドラクエみたいに止まっててもキャラが行進してるみたいに
アニメーションが動き続けてて不自然だったり・・・・
>>387
はい、ツインビータイプのシューティングゲームなら作れるようになったので次のステップで
全方位移動できるものを手がけて見てるのですが方向キーを押して機体が向いている方向に弾を撃つと
いうのが出来なくて困ってます・・・
0389名前は開発中のものです。
2009/09/08(火) 21:17:51ID:bomSovik斜めについては↑と→が同時に押されている、という判定をする必要があったりするね
で、キーを押してないときはimage_speedを0にすればアニメーションは止まる
またアニメーションさせる場合はimage_speedを1に。
0390名前は開発中のものです。
2009/09/08(火) 22:26:34ID:qBHJfdMm変数ですか・・・・ちょっとこの辺は似たようなサンプルも手持ちが無くて
参考になるものがあればよいのですが・・・、斜めの移動は1945のサンプル
見て大体わかったのですが・・・
アニメーション停止については解決しました、ありがとうございます
0391名前は開発中のものです。
2009/09/08(火) 22:35:11ID:+vLZe3xT戦車の向きが変わったらhouiが0〜7に変わる(8方向の場合)
弾を出すとき、数字によって弾の角度が変わる
ってのはどうかしらん?
素人考えでスマソ
0392名前は開発中のものです。
2009/09/08(火) 22:48:41ID:qBHJfdMmあ、そういう風にもできるのですか。
ありがとうございます、ちょっと試してみます
0393名前は開発中のものです。
2009/09/09(水) 06:13:31ID:47tng92/0394名前は開発中のものです。
2009/09/09(水) 06:15:47ID:UaP+j4GV無理ではないけど、マニュアルのGMLのページを読む必要はある
0395名前は開発中のものです。
2009/09/09(水) 06:47:52ID:47tng92/コントロールタブのクエスチョンのアクションは殆ど使ってなかったから見落としてた
0396名前は開発中のものです。
2009/09/09(水) 07:09:03ID:UaP+j4GVゴメン、また適当なこと言ってしまったようだ……
0397名前は開発中のものです。
2009/09/09(水) 10:00:28ID:mrrP95Ft@stepイベントの最後で sprite_index = ***; と書く
Adrawイベントの最後で draw_sprite(***, -1, x, y); と書く
これって、処理的な速さに差があったりします? あるとしたらどっちが速いのでしょうか
0398名前は開発中のものです。
2009/09/09(水) 10:00:30ID:dn0E42Rr誰か引越し経験のある人とかいる?
0399名前は開発中のものです。
2009/09/09(水) 19:20:37ID:lbfPELMo関数呼び出しにオーバヘッドがある、Viewが複数あるとその数だけ呼び出される、
スプライトが画面外でも呼び出される(標準の描画もそこまで最適化されてるか知らんけど)
といったわけで、少くとも(2)が速くなる要素はない。
image_angleとかalphaとかもdraw_spriteだと反映されないしね(_exの方使わないといけない)
あと、スプライトの変更はEnd stepでやった方が都合がいいケースが多いと思うよ。
0400名前は開発中のものです。
2009/09/09(水) 20:35:41ID:AOka8aHzGM8で作ったexeかgmkはここにうpしていいんですか?
and
ここってsage進行ですか?
英語はまったく苦手で・・・
お願いします。
0401名前は開発中のものです。
2009/09/09(水) 22:46:33ID:mrrP95Ft回答ありがとうございます。drawイベントは別のobjectにやらせたほうが良さげですね。
実はBegin StepとEnd Stepは使ったことなかったり…
>>400
日記帳的な意図でなければいいんじゃないでしょうか。
sage進行という決まりはありませんが、sageておくのが無難だと思われます。
0402名前は開発中のものです。
2009/09/10(木) 12:39:08ID:Ao+mJGHi自機がルーム外に出たらルーム内に戻すって方法だとルーム際でガクガクするし
ルーム内でのみ移動可能にした場合は、移動速度とルームの大きさの兼ね合いでルームからはみ出たりするし
ルームの上下左右に透明のsolidオブジェクトを置いて
それぞれにMove to Contactアクションを使えばガクガクせずに止められるけど
これではちょっとなあ
0403名前は開発中のものです。
2009/09/10(木) 12:51:29ID:RlEeJ7eb0404名前は開発中のものです。
2009/09/10(木) 12:57:27ID:Ao+mJGHiルーム外に出ないは出ないですが
0405名前は開発中のものです。
2009/09/10(木) 13:06:05ID:hSzFwkeE0406名前は開発中のものです。
2009/09/10(木) 13:37:58ID:Ao+mJGHiステップイベントで自機のyが0以下になったらyを0にするって感じでしょうか
移動キーを押してる間ははみ出てるんですよね
移動キーを離した時に指定した位置に戻るからガクガクするっていう
0407名前は開発中のものです。
2009/09/10(木) 13:52:42ID:pvrI1+XA>>403 や >>405 のような方法で大抵何とかなるよ
大まかな流れとして
1キー入力
2自機座標変更
3衝突判定(ルームの端)
4座標補正
5描画
となるからガクガクにはならないような
0408名前は開発中のものです。
2009/09/10(木) 13:54:50ID:RlEeJ7ebキー入力とステップのスクリプトを書いてくれたら原因分かるかもしれん
0409名前は開発中のものです。
2009/09/10(木) 17:12:19ID:GAvr9i6d回答ありがとうございます。
>>406
End Stepでしたらどうでしょうか?
0410名前は開発中のものです。
2009/09/10(木) 17:21:10ID:Ao+mJGHiピョコピョコするって言う方が合ってるかな(笑)
キーボードイベントにvspeed(奇数)(ルームサイズは偶数)
ステップイベントに
0411名前は開発中のものです。
2009/09/10(木) 17:44:47ID:Ao+mJGHi書き直してる間にStepじゃなくEnd stepでやってみたらうまくいったようです
試行錯誤してる時にBegin stepに変数でyの値を取らせて
end stepで変数が1未満になった場合yを0にするなんてのをやっていて
これだと文字通りガクガクになっていたのでEnd stepでは駄目なものと思い込んでいました
余計な事をせずEnd step単体でやっていればよかったのですね
また問題が出てきたら質問させてください
>>406
うまくいきました、どうもありがとうございます
0412名前は開発中のものです。
2009/09/10(木) 17:46:44ID:Ao+mJGHi>>406は>>409です
0413名前は開発中のものです。
2009/09/11(金) 03:04:37ID:bWGyFb/B0414名前は開発中のものです。
2009/09/11(金) 07:12:37ID:WmhcaQ8r0415名前は開発中のものです。
2009/09/11(金) 09:03:43ID:Vn/Mnp9J反映されたりされなかったりするのは、
何か法則というか原因があるんだろうか
0416名前は開発中のものです。
2009/09/11(金) 17:28:27ID:XgfJ+c5RここにあるUMEN!とあるファイルがエラーを起こしてしまいます
どうゆうことかわからないのでお願いします
0417名前は開発中のものです。
2009/09/11(金) 22:13:27ID:6or23V1vフォント指定するときに文字セットが決め打ちになってるっぽい
だから日本語環境だと日本語の含まれてるフォントしか選べないっぽ
0418名前は開発中のものです。
2009/09/12(土) 01:14:02ID:NjObJnmnなるほどなぁ・・どうりで欧文フォントが全滅なわけだ
回答ありがとうございました。
0419名前は開発中のものです。
2009/09/12(土) 11:29:23ID:Yx+Hiy/Uここにあるサンプルのscriptの使い方が
いまいちわかりません
どなたかご教授お願いします。
0420名前は開発中のものです。
2009/09/12(土) 14:06:44ID:4PGE4Tioもう少し具体的な質問をしてくれ
0421名前は開発中のものです。
2009/09/12(土) 18:01:11ID:Yx+Hiy/Uこのサンプルのスクリプトを
今作っているゲームに
移植したいのですが
どうすればいいでしょうか
0422名前は開発中のものです。
2009/09/13(日) 00:02:24ID:1jEpsejJ0423名前は開発中のものです。
2009/09/13(日) 00:28:41ID:jMCXhq5mだったら上のメニューのscriptsからInport suriptsで読み込め
違ってたら知らん
0424名前は開発中のものです。
2009/09/13(日) 16:27:45ID:p5hEzzoRHP無限とかやろうとしても値の検索で全く引っ掛からない。何らかの方法で成功した人います?
0425名前は開発中のものです。
2009/09/13(日) 20:29:41ID:I+gEBOMY内部エンジンでデータをうまく隠蔽しているのかもしれない。
0426名前は開発中のものです。
2009/09/14(月) 09:34:32ID:RXOBG/FOセーブするときは保存したいインスタンスの情報や変数をリストかマップに放り込んでテキストに書き出し、
ロードするときはそのテキストを読み込んで、読み込んだ変数の値に応じてインスタンスを生成、って感じかな
バージョンの違うゲームにセーブデータを引継ぎたいとか考えたとき、
game_save()でセーブした状態だと具合が悪いんだよな。
0427名前は開発中のものです。
2009/09/14(月) 09:39:34ID:zP2siJVO0428名前は開発中のものです。
2009/09/16(水) 19:19:52ID:Yx5Euy68自分以外のインスタンスを返すようにするには
どうすればいいでしょうか?
例えばobject0でinstance_nearest(x,y,object0)
とすると、selfとおなじidが返ってきます。
0429名前は開発中のものです。
2009/09/16(水) 20:12:26ID:SEBaUMKZ自分自身を一時的にdeactivateするか、
うんと遠くまでどかしてからinstance_nearestを使う方法がある。
(後者だとインスタンスが1つしかない場合に穴がありそうだけど
距離が10000くらい離れてるとなぜか認識されなくなるらしい)
当然、instance_nearestした後で元に戻さなくちゃいけない。
ちなみに海外フォーラムでもよくあがる話題で、
instance_nth_nearestってスクリプトが作られてたりするね。
0430名前は開発中のものです。
2009/09/16(水) 20:34:13ID:Yx5Euy68ありがとうございます。
0431名前は開発中のものです。
2009/09/19(土) 20:53:49ID:5S7IAZYd0以上1未満が0のスプライト
1以上2未満が1のスプライト
2以上3未満が2のスプライト
……
という風になっていくのでしょうか?
0432名前は開発中のものです。
2009/09/19(土) 21:04:46ID:hGqWeT/YDrawイベントに何も書かずに自動描画させる場合はその通り
(image_indexの説明にも切り捨てと書いてある)
draw_spriteとかで描画する時は四捨五入なので気をつけれ
0433名前は開発中のものです。
2009/09/19(土) 22:37:36ID:5S7IAZYd失礼
マニュアル完全に見落としてました
0434名前は開発中のものです。
2009/09/22(火) 04:26:50ID:w/Ku3kIC色変化着きで自作するとしたらどんな感じ?
0435名前は開発中のものです。
2009/09/22(火) 05:39:11ID:2EKdsgudのdirection
自作するならまず長方形の頂点のうち、固定させる点と動く点を考える。
色は
緑→ 黄→ 赤
R000→255→255
G255→255→000
B000→000→000
つまり、まずR:G:B=0:255:0から始めてRを伸ばし、
Rが最大になったらGを減らす。
0436名前は開発中のものです。
2009/09/22(火) 06:08:24ID:w/Ku3kIC朝早くからありがとうございまうす
0437名前は開発中のものです。
2009/09/22(火) 10:45:10ID:sLIwRJKt7をそのままか、多少の作業で移行できるなら8にするんだが・・・
あと6の日本語ヘルプがそのまま使えるならいいけど
誰か新しいヘルプ、変更部分だけでも翻訳してくれないかな
0438名前は開発中のものです。
2009/09/23(水) 10:09:09ID:MsIgK8QFてゅーかGM8ってどんな機能?
日本語化は出来れば欲しいなww
0439名前は開発中のものです。
2009/09/23(水) 12:49:51ID:NmL6fvhcアルファチャンネル完全対応はありがたいな
いまでも出来ないことはないけど、完全対応してくれれば作業が結構らくになる。
現状だと、ちゃんとやらないとスプライトの周りに白いのが残っちゃうんだよね
0440名前は開発中のものです。
2009/09/23(水) 15:13:37ID:stBFqZnk手書きと変わらないようなの
0441名前は開発中のものです。
2009/09/24(木) 17:00:08ID:O67grr7X0442名前は開発中のものです。
2009/09/24(木) 18:02:00ID:Zjeeh2M90443名前は開発中のものです。
2009/09/24(木) 18:45:33ID:O67grr7Xあらかじめ回転させたスプライトを一個一個作らないとやっぱりだめですか?
0444名前は開発中のものです。
2009/09/24(木) 20:17:06ID:XWhm4CP80445名前は開発中のものです。
2009/09/25(金) 09:06:01ID:mgX8NLYWちょっと凝ったことしようと思ったらLiteじゃきつい
0446名前は開発中のものです。
2009/09/25(金) 12:33:15ID:DzBOtpuu0447名前は開発中のものです。
2009/09/25(金) 17:58:26ID:a1fJdlo47までで使えて8で使えなくなってた関数とか結構ある?
0448名前は開発中のものです。
2009/09/25(金) 18:38:19ID:T1K9b3DKありがとうございます。……レジストバージョン買おうかなぁ。
0449名前は開発中のものです。
2009/09/29(火) 22:30:39ID:DIDYZoHjゲームが複雑になると起動が遅くなるような気がするんですが
もちろんPrelordは全部はずしてます
0450名前は開発中のものです。
2009/09/30(水) 20:22:37ID:BfOX1zJgオブジェクトAがオブジェクトBの子オブジェクトに接触しても作動するんだね
これは便利でもあるけど不便でもあるな
0451名前は開発中のものです。
2009/09/30(水) 22:50:00ID:U6bB5JnZ敵
├亀
│├緑亀
│└赤亀
└ブロス
├ハンマー
└ブーメラン
みたいな感じの構造だった。
敵、亀、ブロスはゲーム内では使わないダミーで子オブジェクトを纏めるためのもの。
共通の物は親オブジェクトに持たせて、
子オブジェクト別に違うものは子オブジェクト内で個別に設定する。
不便に感じるのは構造のデザインがよくないからじゃないかな?
親と子の使い分けをはっきりさせるといいよ。
0452名前は開発中のものです。
2009/10/01(木) 01:33:38ID:u1Abds+10453名前は開発中のものです。
2009/10/01(木) 13:49:05ID:qHL8GpNOコンテストに出そう。
小さくまとまってしまってはいけない。
3分で世界を革命しろ。
0454名前は開発中のものです。
2009/10/02(金) 17:21:46ID:fJ33Az8Tchange instance (赤パックマン)をGMLでやろうとするとどう書くんだろう?
ちなみに自分は未レジストGM7です
0455名前は開発中のものです。
2009/10/02(金) 20:54:18ID:IQUjtfJLスプライトの変更は、そういう関数があるわけではなく、sprite_index を直接変更する。
変数をいじるだけでも結構いろいろ出来ることがあるから、調べてみるといいよ。
0456名前は開発中のものです。
2009/10/04(日) 15:47:28ID:p8OhbyR+壁とのコリジョンイベントで
if place_meeting(x-1,y,block) == true{hspeed = 0;}
これではダメなのでしょうか?
while (place_meeting(x-1,y,block) == true){x +=1}
で反対側への押し戻しはできているのですが、なぜかhspeedだけは0になりません。
0457名前は開発中のものです。
2009/10/04(日) 17:07:03ID:5U/WE5aW0458名前は開発中のものです。
2009/10/04(日) 17:53:38ID:p8OhbyR+while (place_meeting(x-1,y,block) == true)
{
hspeed = 0;
x +=1;
}
ためしに↑のようにしてみましたけど、それでもダメでした
0459名前は開発中のものです。
2009/10/04(日) 20:04:46ID:5U/WE5aWその式でxの代入だけが実行されるというのはありえない
0460名前は開発中のものです。
2009/10/04(日) 20:52:41ID:Wb+bZ9wMabs(hspeed)>1 だったら、壁と自分との間は1以上空いていることになる。
だからplace_meeting(x-1)ではヒットしないと予想。
place_meeting(x+/-hspeed)にしてみたらどうよ?
whileの押し戻しもたぶん成功してないと思うな(単にxpreviousに戻されてるだけ)
厳密にやるなら x = other.bbox_right + 1 + sprite_xoffset とかの方が良さそう
0461名前は開発中のものです。
2009/10/04(日) 20:59:07ID:Wb+bZ9wMついでに補足。仮にblockって名前のスプライトとかスクリプトがあった場合
そっちのインデックスが使われて、違うオブジェクトをチェックしてる可能性もある。
GML使うんだったら、obj_block とか spr_block みたいにして
名前がかぶらないように設定しないとトラブルの元になるよ。
0462名前は開発中のものです。
2009/10/04(日) 21:18:26ID:p8OhbyR+「プレイヤーだけが通れない壁」と「全キャラ共通の壁」というのを考えていたのですが
プレイヤーだけが通れない壁はsolidをはずして、普通の壁はx-abs(hspeed)にすることで解決しました。
0463名前は開発中のものです。
2009/10/08(木) 19:54:56ID:XLYZZ1sh敵がダメージを受けた時、一時的に赤くさせたいのですが、元が黒っぽい色のため
赤を混ぜても黒にしかなりません。
0464名前は開発中のものです。
2009/10/09(金) 00:27:24ID:2lodFe320465名前は開発中のものです。
2009/10/09(金) 02:01:41ID:m1aFnmHwステージを配列で表現してexecute_fileでステージ開始時に読み込んで、
敵を記述したタイミングで生成させたいのですが、
適切なコードがうまく思いつきません。
配列以外で何とかする?処理方法でなんとかなる?
全部走査して現タイムラインと発生タイミングが一致すれば生成
--------------------------------------------------------------
for(敵番号=0;敵番号<敵数;敵番号++){
if(stage[敵番号,敵発生タイミング]==timeline){
create(stage[敵番号,敵各種ステータス]);
}
}
timeline++
--------------------------------------------------------------
→1ステージにおける敵数が増えると1ステップ内でどんどん処理が重くなる
指定したグリッド番号になったら生成
--------------------------------------------------------------
create(stage[グリッド番号,敵各種ステータス]);
グリッド番号++
--------------------------------------------------------------
→ステージが長くなるとどんどん配列が増える&発生しない間の配列は無駄領域
→1グリッド1体しか出ない
現在は全部走査して現タイムラインと発生タイミングが一致すれば生成という方法で
行っていますが、敵の数が300をこえたあたりからゲーム速度が落ち始めます
(step内でforループしているので当然といえば当然ですが)
0466名前は開発中のものです。
2009/10/09(金) 02:08:26ID:v0opj/4Eそもそも画面外の敵まで処理するのが無駄なわけで。
最初に全インスタンスを作成し、
画面外のインスタンスを非アクティブに、
画面内のインスタンスをアクティブにする。
領域の微調整はお好みで。
0467465
2009/10/09(金) 02:13:21ID:m1aFnmHwいちいちリアルタイムに生成する理由がなかった・・
回答ありがとうございました。
製作頑張ろうと思います。
0468名前は開発中のものです。
2009/10/10(土) 16:56:18ID:+ewObIUyやっぱりそれしかないですか
ちょっと画像枚数が多いので、全部にそれをやるのはちょっと厳しい……
これは諦めざるを得ませんかね
0469名前は開発中のものです。
2009/10/10(土) 18:30:40ID:BwUsupN70470名前は開発中のものです。
2009/10/10(土) 19:31:46ID:UjbbZPTx0471名前は開発中のものです。
2009/10/10(土) 20:21:53ID:xlBokYU2d3d_set_fog(true, c_red, 1, 0);
draw_sprite(...);
d3d_set_fog(false, c_white, 0, 0);
という手法があるけど、ビデオカードによっては動かないものもあるとか
0472名前は開発中のものです。
2009/10/11(日) 00:53:20ID:yhSo2Kg3保存してくれてる人が居ればだけど
0473名前は開発中のものです。
2009/10/11(日) 09:45:59ID:gVfZj0xnこれにチェックがついてようがついてまいが、GMの中に入ってるファイルはすべてメインメモリに読み込まれてしまうんですね。
メモリに落としたくない場合は、sprite_addなどで、外部から取り込ませるしかないのでしょうか?
あと実験で、1000*1000の1.7KBのgif画像を10枚ほどいれてみたのですが
そうしたらメモリ使用量が一気に80MBくらい増えました。
もちろんPreload textureは未チェック、ゲーム中は使用せず、ただGMの中に入れただけです。
元の画像がgifだろうがpngだろうがbmpだろうが関係なく、ただ画像の縦横のサイズだけで
使用するメモリ量が決まってしまうのでしょうか?
0474名前は開発中のものです。
2009/10/11(日) 10:29:22ID:gVfZj0xnbmpの画像を10枚追加してみたり、256色フルに使ったgifを10枚追加してみたり実験しましたが
白一色1000*1000のgif画像を10枚追加した場合と、メモリ使用量はまったく変わりませんでした
GMは減色や画像の軽量化などまったく無意味で、ただ画像の縦横のサイズのみに依存するのでしょうか
0475名前は開発中のものです。
2009/10/11(日) 18:10:28ID:yhSo2Kg3俺は仕組とかわからんが、本当ならイベント絵とか入れにくくなるなぁ
0476名前は開発中のものです。
2009/10/11(日) 18:43:47ID:rJ+6eFS4簡単なランレングス圧縮はしていると聞いたから、白一色と複雑な画像では
gmファイルやexeのサイズに差が出るかもしれない。
でも、実行時にはメモリ上にベタのビットマップで展開されるはずだから
結局メモリ使用量は変わらんと思う。
0477名前は開発中のものです。
2009/10/11(日) 19:02:33ID:gVfZj0xnチマチマと減色しても、メモリ的にはまったく意味がないということですね。
容量的には数十KB軽量化させたところで大した違いはないし
気にせずPNGでも使っちゃった方いいのかな
GM8ではPNGが完全サポートされるそうだけど、せめてBMPではなくPNGにしてくれれば
かなり軽量化されると思うんだけどなー
そこらへん早く8の情報が欲しい
■ このスレッドは過去ログ倉庫に格納されています