[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/06 23:07 / Filesize : 265 KB / Number-of Response : 893
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2009/04/23(木) 08:11:08 ID: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/


390 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 22:26:34 ID:qBHJfdMm]
>>389
変数ですか・・・・ちょっとこの辺は似たようなサンプルも手持ちが無くて
参考になるものがあればよいのですが・・・、斜めの移動は1945のサンプル
見て大体わかったのですが・・・

アニメーション停止については解決しました、ありがとうございます

391 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 22:35:11 ID:+vLZe3xT]
戦車オブジェクトのCreateイベントに「houi(任意)」を作って、
戦車の向きが変わったらhouiが0〜7に変わる(8方向の場合)
弾を出すとき、数字によって弾の角度が変わる
ってのはどうかしらん?
素人考えでスマソ

392 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 22:48:41 ID:qBHJfdMm]
>>391
あ、そういう風にもできるのですか。
ありがとうございます、ちょっと試してみます

393 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 06:13:31 ID:47tng92/]
「あるオブジェクトと接触していない」っていうのを判定する場合はGMLを使わないと無理?

394 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 06:15:47 ID:UaP+j4GV]
>>393
無理ではないけど、マニュアルのGMLのページを読む必要はある

395 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 06:47:52 ID:47tng92/]
If there is an object at a positionを使えばいいだけだったか
コントロールタブのクエスチョンのアクションは殆ど使ってなかったから見落としてた

396 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 07:09:03 ID:UaP+j4GV]
あーそういえばそういうのあったかなぁ……
ゴメン、また適当なこと言ってしまったようだ……

397 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 10:00:28 ID:mrrP95Ft]
スプライトの変更についてなのですが

@stepイベントの最後で sprite_index = ***; と書く
Adrawイベントの最後で draw_sprite(***, -1, x, y); と書く

これって、処理的な速さに差があったりします? あるとしたらどっちが速いのでしょうか

398 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 10:00:30 ID:dn0E42Rr]
Pro版ってインストしたPCじゃないと使えないんだっけ?
誰か引越し経験のある人とかいる?



399 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 19:20:37 ID:lbfPELMo]
>>397
関数呼び出しにオーバヘッドがある、Viewが複数あるとその数だけ呼び出される、
スプライトが画面外でも呼び出される(標準の描画もそこまで最適化されてるか知らんけど)
といったわけで、少くとも(2)が速くなる要素はない。
image_angleとかalphaとかもdraw_spriteだと反映されないしね(_exの方使わないといけない)

あと、スプライトの変更はEnd stepでやった方が都合がいいケースが多いと思うよ。

400 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 20:35:41 ID:AOka8aHz]
質問です。

GM8で作ったexeかgmkはここにうpしていいんですか?
and
ここってsage進行ですか?
英語はまったく苦手で・・・
お願いします。

401 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 22:46:33 ID:mrrP95Ft]
>>399
回答ありがとうございます。drawイベントは別のobjectにやらせたほうが良さげですね。
実はBegin StepとEnd Stepは使ったことなかったり…

>>400
日記帳的な意図でなければいいんじゃないでしょうか。
sage進行という決まりはありませんが、sageておくのが無難だと思われます。

402 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 12:39:08 ID:Ao+mJGHi]
シューティングとかで自機がルーム外に出ないようにするのってどうするのがいいかな
自機がルーム外に出たらルーム内に戻すって方法だとルーム際でガクガクするし
ルーム内でのみ移動可能にした場合は、移動速度とルームの大きさの兼ね合いでルームからはみ出たりするし

ルームの上下左右に透明のsolidオブジェクトを置いて
それぞれにMove to Contactアクションを使えばガクガクせずに止められるけど
これではちょっとなあ

403 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 12:51:29 ID:RlEeJ7eb]
ルーム際でhspeed(vspeed)を0にしたらいいんでないの

404 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 12:57:27 ID:Ao+mJGHi]
それだと一定の位置で止まらないんですよねぇ
ルーム外に出ないは出ないですが

405 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 13:06:05 ID:hSzFwkeE]
はみ出る動作を感知したら位置を端に指定じゃだめなのか

406 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 13:37:58 ID:Ao+mJGHi]
>>405
ステップイベントで自機のyが0以下になったらyを0にするって感じでしょうか

移動キーを押してる間ははみ出てるんですよね
移動キーを離した時に指定した位置に戻るからガクガクするっていう

407 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 13:52:42 ID:pvrI1+XA]
計算ミスってるか処理の順番が不味いんじゃないかなあ
>>403>>405 のような方法で大抵何とかなるよ

大まかな流れとして
1キー入力
2自機座標変更
3衝突判定(ルームの端)
4座標補正
5描画
となるからガクガクにはならないような

408 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 13:54:50 ID:RlEeJ7eb]
うーむ 問題無いはずなんだが
キー入力とステップのスクリプトを書いてくれたら原因分かるかもしれん



409 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 17:12:19 ID:GAvr9i6d]
>>401
回答ありがとうございます。

>>406
End Stepでしたらどうでしょうか?

410 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 17:21:10 ID:Ao+mJGHi]
すいません、ガクガクするって言うのはちょっと違っていたかも
ピョコピョコするって言う方が合ってるかな(笑)

キーボードイベントにvspeed(奇数)(ルームサイズは偶数)
ステップイベントに

411 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 17:44:47 ID:Ao+mJGHi]
途中送信しちゃいました

書き直してる間にStepじゃなくEnd stepでやってみたらうまくいったようです
試行錯誤してる時にBegin stepに変数でyの値を取らせて
end stepで変数が1未満になった場合yを0にするなんてのをやっていて
これだと文字通りガクガクになっていたのでEnd stepでは駄目なものと思い込んでいました
余計な事をせずEnd step単体でやっていればよかったのですね
また問題が出てきたら質問させてください

>>406
うまくいきました、どうもありがとうございます

412 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 17:46:44 ID:Ao+mJGHi]
間違えました
>>406>>409です

413 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 03:04:37 ID:bWGyFb/B]
日本語開発環境の最新版どれ?

414 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 07:12:37 ID:WmhcaQ8r]
そんなものはない

415 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 09:03:43 ID:Vn/Mnp9J]
フォントによって、フォントを入れても
反映されたりされなかったりするのは、
何か法則というか原因があるんだろうか

416 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 17:28:27 ID:XgfJ+c5R]
ux.getuploader.com/unko/
ここにあるUMEN!とあるファイルがエラーを起こしてしまいます
どうゆうことかわからないのでお願いします

417 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 22:13:27 ID:6or23V1v]
>>415
フォント指定するときに文字セットが決め打ちになってるっぽい
だから日本語環境だと日本語の含まれてるフォントしか選べないっぽ

418 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 01:14:02 ID:NjObJnmn]
>>417
なるほどなぁ・・どうりで欧文フォントが全滅なわけだ
回答ありがとうございました。



419 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 11:29:23 ID:Yx+Hiy/U]
ttp://gmc.yoyogames.com/index.php?showtopic=444737
ここにあるサンプルのscriptの使い方が
いまいちわかりません
どなたかご教授お願いします。

420 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 14:06:44 ID:4PGE4Tio]
何がどうわからないのか書いてもらわないと何とも言えないな
もう少し具体的な質問をしてくれ

421 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 18:01:11 ID:Yx+Hiy/U]
>>420
このサンプルのスクリプトを
今作っているゲームに
移植したいのですが
どうすればいいでしょうか

422 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 00:02:24 ID:1jEpsejJ]
こういうこと言い出すやつって、本質的にクレクレ君と同じなんだよな…。

423 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 00:28:41 ID:jMCXhq5m]
よく分からんが、スクリプトファイルを取り込みたいのか?
だったら上のメニューのscriptsからInport suriptsで読み込め
違ってたら知らん

424 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 16:27:45 ID:p5hEzzoR]
gamemaker製のゲームは、外部ツール(スペシャルねこまんま等)でチート不可能?
HP無限とかやろうとしても値の検索で全く引っ掛からない。何らかの方法で成功した人います?

425 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 20:29:41 ID:I+gEBOMY]
俺もやったことあるけど、全然引っかからんよね。
内部エンジンでデータをうまく隠蔽しているのかもしれない。

426 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 09:34:32 ID:RXOBG/FO]
誰かセーブデータ自分で作ってる奴いる?
セーブするときは保存したいインスタンスの情報や変数をリストかマップに放り込んでテキストに書き出し、
ロードするときはそのテキストを読み込んで、読み込んだ変数の値に応じてインスタンスを生成、って感じかな
バージョンの違うゲームにセーブデータを引継ぎたいとか考えたとき、
game_save()でセーブした状態だと具合が悪いんだよな。

427 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 09:39:34 ID:zP2siJVO]
全く同じ質問が前あったな

428 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 19:19:52 ID:Yx5Euy68]
instance_nearestで複数ある同一オブジェクトで
自分以外のインスタンスを返すようにするには
どうすればいいでしょうか?

例えばobject0でinstance_nearest(x,y,object0)
とすると、selfとおなじidが返ってきます。



429 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 20:12:26 ID:SEBaUMKZ]
>>428
自分自身を一時的にdeactivateするか、
うんと遠くまでどかしてからinstance_nearestを使う方法がある。
(後者だとインスタンスが1つしかない場合に穴がありそうだけど
距離が10000くらい離れてるとなぜか認識されなくなるらしい)
当然、instance_nearestした後で元に戻さなくちゃいけない。

ちなみに海外フォーラムでもよくあがる話題で、
instance_nth_nearestってスクリプトが作られてたりするね。

430 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 20:34:13 ID:Yx5Euy68]
>>429
ありがとうございます。

431 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 20:53:49 ID:5S7IAZYd]
image_indexの画像なのですが

0以上1未満が0のスプライト
1以上2未満が1のスプライト
2以上3未満が2のスプライト
……

という風になっていくのでしょうか?

432 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 21:04:46 ID:hGqWeT/Y]
>>431
Drawイベントに何も書かずに自動描画させる場合はその通り
(image_indexの説明にも切り捨てと書いてある)
draw_spriteとかで描画する時は四捨五入なので気をつけれ

433 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 22:37:36 ID:5S7IAZYd]
>>432
失礼
マニュアル完全に見落としてました

434 名前:名前は開発中のものです。 mailto:sage [2009/09/22(火) 04:26:50 ID:w/Ku3kIC]
ヘルスバーって縦には出来ないのか…
色変化着きで自作するとしたらどんな感じ?

435 名前:名前は開発中のものです。 mailto:sage [2009/09/22(火) 05:39:11 ID:2EKdsgud]
draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder)
のdirection

自作するならまず長方形の頂点のうち、固定させる点と動く点を考える。
色は
  緑→ 黄→ 赤
R000→255→255
G255→255→000
B000→000→000
つまり、まずR:G:B=0:255:0から始めてRを伸ばし、
Rが最大になったらGを減らす。

436 名前:名前は開発中のものです。 mailto:sage [2009/09/22(火) 06:08:24 ID:w/Ku3kIC]
アクションの方しか見ていなかった…
朝早くからありがとうございまうす

437 名前:名前は開発中のものです。 mailto:sage [2009/09/22(火) 10:45:10 ID:sLIwRJKt]
GM8はいつごろでるのかなー
7をそのままか、多少の作業で移行できるなら8にするんだが・・・
あと6の日本語ヘルプがそのまま使えるならいいけど
誰か新しいヘルプ、変更部分だけでも翻訳してくれないかな

438 名前:名前は開発中のものです。 mailto:sage [2009/09/23(水) 10:09:09 ID:MsIgK8QF]
そうそうw
てゅーかGM8ってどんな機能?
日本語化は出来れば欲しいなww



439 名前:名前は開発中のものです。 mailto:sage [2009/09/23(水) 12:49:51 ID:NmL6fvhc]
これか? >>139
アルファチャンネル完全対応はありがたいな
いまでも出来ないことはないけど、完全対応してくれれば作業が結構らくになる。
現状だと、ちゃんとやらないとスプライトの周りに白いのが残っちゃうんだよね


440 名前:名前は開発中のものです。 [2009/09/23(水) 15:13:37 ID:stBFqZnk]
エフェクトソフト試したことあるけど、アルファ使えないからしょぼいのしか作れなかったことあるなー
手書きと変わらないようなの

441 名前:名前は開発中のものです。 mailto:sage [2009/09/24(木) 17:00:08 ID:O67grr7X]
オブジェクトを回転させることってできますか?

442 名前:名前は開発中のものです。 mailto:sage [2009/09/24(木) 18:02:00 ID:Zjeeh2M9]
余裕でできる

443 名前:名前は開発中のものです。 mailto:sage [2009/09/24(木) 18:45:33 ID:O67grr7X]
>>442
あらかじめ回転させたスプライトを一個一個作らないとやっぱりだめですか?

444 名前:名前は開発中のものです。 mailto:sage [2009/09/24(木) 20:17:06 ID:XWhm4CP8]
image_angle この値に応じて、スプライトが回転します。値は左回りの度(0-360)で指定し、0 で通常です。 この機能は、レジストバージョンのみ有効です。

445 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 09:06:01 ID:mgX8NLYW]
うむ、draw_sprite_extにデータ構造、sprite_add_alphaだけでもレジスト買う価値はあるな。
ちょっと凝ったことしようと思ったらLiteじゃきつい

446 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 12:33:15 ID:DzBOtpuu]
ホ!RCはセカンドβのデータ読み込めるじゃないの!

447 名前:名前は開発中のものです。 [2009/09/25(金) 17:58:26 ID:a1fJdlo4]
ところで8のベータやってみた人っている?
7までで使えて8で使えなくなってた関数とか結構ある?

448 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 18:38:19 ID:T1K9b3DK]
>>444
ありがとうございます。……レジストバージョン買おうかなぁ。



449 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 22:30:39 ID:DIDYZoHj]
これってコンパイルしたゲームでも、起動時にエラーチェックとかしてるんですかね?
ゲームが複雑になると起動が遅くなるような気がするんですが
もちろんPrelordは全部はずしてます

450 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 20:22:37 ID:BfOX1zJg]
オブジェクトAにオブジェクトBとの接触イベントを設定すると
オブジェクトAがオブジェクトBの子オブジェクトに接触しても作動するんだね
これは便利でもあるけど不便でもあるな

451 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 22:50:00 ID:U6bB5JnZ]
前スレにあったのが、

├亀
│├緑亀
│└赤亀
└ブロス
 ├ハンマー
 └ブーメラン
みたいな感じの構造だった。
敵、亀、ブロスはゲーム内では使わないダミーで子オブジェクトを纏めるためのもの。

共通の物は親オブジェクトに持たせて、
子オブジェクト別に違うものは子オブジェクト内で個別に設定する。
不便に感じるのは構造のデザインがよくないからじゃないかな?
親と子の使い分けをはっきりさせるといいよ。

452 名前:名前は開発中のものです。 mailto:sage [2009/10/01(木) 01:33:38 ID:u1Abds+1]
基本的にparent objectはゲーム内では登場させないなー

453 名前:名前は開発中のものです。 mailto:sage [2009/10/01(木) 13:49:05 ID:qHL8GpNO]
ttp://www.freegameclassic.com
コンテストに出そう。
小さくまとまってしまってはいけない。
3分で世界を革命しろ。

454 名前:名前は開発中のものです。 mailto:sage [2009/10/02(金) 17:21:46 ID:fJ33Az8T]
くだらない質問で申し訳ないが
change instance (赤パックマン)をGMLでやろうとするとどう書くんだろう?
ちなみに自分は未レジストGM7です

455 名前:名前は開発中のものです。 mailto:sage [2009/10/02(金) 20:54:18 ID:IQUjtfJL]
赤パックマンのアイコンはインスタンスの変更じゃなくて、スプライトの変更だと思うよ。
スプライトの変更は、そういう関数があるわけではなく、sprite_index を直接変更する。
変数をいじるだけでも結構いろいろ出来ることがあるから、調べてみるといいよ。

456 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 15:47:28 ID:p8OhbyR+]
横の壁とぶつかった時だけhspeedを0にしたいのですが
壁とのコリジョンイベントで

if place_meeting(x-1,y,block) == true{hspeed = 0;}

これではダメなのでしょうか?

while (place_meeting(x-1,y,block) == true){x +=1}
で反対側への押し戻しはできているのですが、なぜかhspeedだけは0になりません。

457 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 17:07:03 ID:5U/WE5aW]
先に while の方が実行されるように書いてあると予想


458 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 17:53:38 ID:p8OhbyR+]
それはないですねぇ

while (place_meeting(x-1,y,block) == true)
 {
 hspeed = 0;
 x +=1;
 }

ためしに↑のようにしてみましたけど、それでもダメでした



459 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 20:04:46 ID:5U/WE5aW]
それなら他の場所で速度関係をいじっているんじゃないかい
その式でxの代入だけが実行されるというのはありえない



460 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 20:52:41 ID:Wb+bZ9wM]
壁がsolidだった場合、collisionイベント実行前に前の位置に戻されるから
abs(hspeed)>1 だったら、壁と自分との間は1以上空いていることになる。
だからplace_meeting(x-1)ではヒットしないと予想。
place_meeting(x+/-hspeed)にしてみたらどうよ?

whileの押し戻しもたぶん成功してないと思うな(単にxpreviousに戻されてるだけ)
厳密にやるなら x = other.bbox_right + 1 + sprite_xoffset とかの方が良さそう

461 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 20:59:07 ID:Wb+bZ9wM]
よく考えたら place_meeting(x-abs(hspeed)-1) とかにしないとダメだな

ついでに補足。仮にblockって名前のスプライトとかスクリプトがあった場合
そっちのインデックスが使われて、違うオブジェクトをチェックしてる可能性もある。
GML使うんだったら、obj_block とか spr_block みたいにして
名前がかぶらないように設定しないとトラブルの元になるよ。

462 名前:名前は開発中のものです。 mailto:sage [2009/10/04(日) 21:18:26 ID:p8OhbyR+]
>>460さんの通りにしたら解決しました。ありがとうございます。
「プレイヤーだけが通れない壁」と「全キャラ共通の壁」というのを考えていたのですが
プレイヤーだけが通れない壁はsolidをはずして、普通の壁はx-abs(hspeed)にすることで解決しました。


463 名前:名前は開発中のものです。 mailto:sage [2009/10/08(木) 19:54:56 ID:XLYZZ1sh]
image_blendのように「色を混ぜる」のではなく、なにか一色で「塗りつぶす」ことは出来ないのでしょうか?
敵がダメージを受けた時、一時的に赤くさせたいのですが、元が黒っぽい色のため
赤を混ぜても黒にしかなりません。

464 名前:名前は開発中のものです。 mailto:sage [2009/10/09(金) 00:27:24 ID:2lodFe32]
真赤にぬったスプライトを別に用意するしかないんじゃない?

465 名前:名前は開発中のものです。 mailto:sage [2009/10/09(金) 02:01:41 ID:m1aFnmHw]
ステージエディット機能を持ったSTGをつくろうとしているんですが、
ステージを配列で表現してexecute_fileでステージ開始時に読み込んで、
敵を記述したタイミングで生成させたいのですが、
適切なコードがうまく思いつきません。
配列以外で何とかする?処理方法でなんとかなる?

全部走査して現タイムラインと発生タイミングが一致すれば生成
--------------------------------------------------------------
for(敵番号=0;敵番号<敵数;敵番号++){
if(stage[敵番号,敵発生タイミング]==timeline){
create(stage[敵番号,敵各種ステータス]);
}
}
timeline++
--------------------------------------------------------------
→1ステージにおける敵数が増えると1ステップ内でどんどん処理が重くなる

指定したグリッド番号になったら生成
--------------------------------------------------------------
create(stage[グリッド番号,敵各種ステータス]);
グリッド番号++
--------------------------------------------------------------
→ステージが長くなるとどんどん配列が増える&発生しない間の配列は無駄領域
→1グリッド1体しか出ない

現在は全部走査して現タイムラインと発生タイミングが一致すれば生成という方法で
行っていますが、敵の数が300をこえたあたりからゲーム速度が落ち始めます
(step内でforループしているので当然といえば当然ですが)

466 名前:名前は開発中のものです。 mailto:sage [2009/10/09(金) 02:08:26 ID:v0opj/4E]
>>465
そもそも画面外の敵まで処理するのが無駄なわけで。

最初に全インスタンスを作成し、
画面外のインスタンスを非アクティブに、
画面内のインスタンスをアクティブにする。

領域の微調整はお好みで。

467 名前:465 mailto:sage [2009/10/09(金) 02:13:21 ID:m1aFnmHw]
あぁ・・・なるほど、確かに言われてみれば
いちいちリアルタイムに生成する理由がなかった・・

回答ありがとうございました。
製作頑張ろうと思います。

468 名前:名前は開発中のものです。 mailto:sage [2009/10/10(土) 16:56:18 ID:+ewObIUy]
>>464
やっぱりそれしかないですか
ちょっと画像枚数が多いので、全部にそれをやるのはちょっと厳しい……
これは諦めざるを得ませんかね



469 名前:名前は開発中のものです。 mailto:sage [2009/10/10(土) 18:30:40 ID:BwUsupN7]
日本語サイトが復活しないのでbGMとjfontmakerの使い方を教えて欲しいのですが

470 名前:名前は開発中のものです。 mailto:sage [2009/10/10(土) 19:31:46 ID:UjbbZPTx]
前上げてあったの貰わなかったのかよ・・・>フォント

471 名前:名前は開発中のものです。 mailto:sage [2009/10/10(土) 20:21:53 ID:xlBokYU2]
>>463
d3d_set_fog(true, c_red, 1, 0);
draw_sprite(...);
d3d_set_fog(false, c_white, 0, 0);
という手法があるけど、ビデオカードによっては動かないものもあるとか

472 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 00:53:20 ID:yhSo2Kg3]
bGMは俺も教えてほしいな
保存してくれてる人が居ればだけど

473 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 09:45:59 ID:gVfZj0xn]
Preload textureってあくまでビデオメモリに読み込ませるかどうかで
これにチェックがついてようがついてまいが、GMの中に入ってるファイルはすべてメインメモリに読み込まれてしまうんですね。
メモリに落としたくない場合は、sprite_addなどで、外部から取り込ませるしかないのでしょうか?

あと実験で、1000*1000の1.7KBのgif画像を10枚ほどいれてみたのですが
そうしたらメモリ使用量が一気に80MBくらい増えました。
もちろんPreload textureは未チェック、ゲーム中は使用せず、ただGMの中に入れただけです。
元の画像がgifだろうがpngだろうがbmpだろうが関係なく、ただ画像の縦横のサイズだけで
使用するメモリ量が決まってしまうのでしょうか?

474 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 10:29:22 ID:gVfZj0xn]
追記
bmpの画像を10枚追加してみたり、256色フルに使ったgifを10枚追加してみたり実験しましたが
白一色1000*1000のgif画像を10枚追加した場合と、メモリ使用量はまったく変わりませんでした
GMは減色や画像の軽量化などまったく無意味で、ただ画像の縦横のサイズのみに依存するのでしょうか

475 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 18:10:28 ID:yhSo2Kg3]
検証乙
俺は仕組とかわからんが、本当ならイベント絵とか入れにくくなるなぁ

476 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 18:43:47 ID:rJ+6eFS4]
元の画像形式が何であろうと、内部には独自形式で格納されるからね。
簡単なランレングス圧縮はしていると聞いたから、白一色と複雑な画像では
gmファイルやexeのサイズに差が出るかもしれない。
でも、実行時にはメモリ上にベタのビットマップで展開されるはずだから
結局メモリ使用量は変わらんと思う。

477 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 19:02:33 ID:gVfZj0xn]
んー、やっぱりそうですか
チマチマと減色しても、メモリ的にはまったく意味がないということですね。
容量的には数十KB軽量化させたところで大した違いはないし
気にせずPNGでも使っちゃった方いいのかな

GM8ではPNGが完全サポートされるそうだけど、せめてBMPではなくPNGにしてくれれば
かなり軽量化されると思うんだけどなー
そこらへん早く8の情報が欲しい

478 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 19:08:05 ID:gVfZj0xn]
ああ、PNGはメモリ上ではBMPと変わらないから意味ないのか・・・



479 名前:名前は開発中のものです。 mailto:sage [2009/10/11(日) 22:40:21 ID:9H0VFjWv]
ttp://web.archive.org/web/20080528024340/gamemaker.main.jp/modules/articles/article.php?id=25

bGMの使い方
画像は表示されんがまぁなんとかなるだろう

480 名前:名前は開発中のものです。 mailto:sage [2009/10/12(月) 00:43:46 ID:Yf0rwGMO]
激しく乙
デフォでogg対応せんかのぉ…(´・ω・)

481 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 11:39:19 ID:k4QiVC+d]
>>473
検証乙。
俺は数百枚の画像ファイル使ってるから、スプライト系は殆ど外部で管理してる。
スプライトのロードと破棄でもメモリ食うけど、大きい画像一枚GMに入れることに比べれば誤差の範囲だ。

それで思ったけど、100程度のインスタンスに200程度の変数を定義すると
理論上は100*200*8 = 160kのメモリを使うのか。
今まではこの変数全部txtファイルに書き込んでおいて、
特定のインスタンスが必要なときのみそれを読み込んでたけど
これってもしやかなり無駄だよな…。
画像ファイル一枚節約した方が全然効率的そうだ。
配列がどの程度容量食うかはテストしてないけど。

482 名前:名前は開発中のものです。 [2009/10/13(火) 12:29:36 ID:cOJqt8LB]
どうせGIFだからたいしたことないだろと思って、スプライトがんがん追加してきたんだが、これが原因でメモリバカ食いしてたんだな
俺もspriteaddで画像読み込みしないとダメか

ところで、スプライトのロードと破棄でメモリ食うってどういうこと?
スプライトを破棄してもメモリのなにか残るの?

483 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 15:07:47 ID:lHAcX872]
(スプライトを使った)オブジェクトの破棄でメモリは開放される
と思ってたが違うのか

484 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 17:44:59 ID:KdDxZr1F]
メモリ解放されても、普通は断片化してるから、ガベージコレクションしないとダメで、
ゲームだと実行中にガベージコレクション発生すると、そのとき速度が落ちるから、
普通は自動的にガベージコレクションされない仕様なのが多い。
GameMakerがどういう仕様かは知らないけどね。

485 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 21:29:42 ID:4QV/eOoe]
実験で仮にこんなの実行してみたけど、特にメモリは増えなかったよ

for (i = 0;i <=1000; i+=1)
{
test[i] = sprite_add(...);
sprite_delete(test[i]);
}

486 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 21:32:50 ID:4QV/eOoe]
>>483
sprite_delete();を使わない限り、スプライトのメモリは開放されないよ
sprite_addでローカル変数にスプライトを入れてたなら別かもしれないけど

487 名前:名前は開発中のものです。 mailto:sage [2009/10/13(火) 23:15:10 ID:lHAcX872]
>>486
てことは
sprite_addじゃなくエディット画面でオブジェクト作ってるヘタレな俺は
sprite_deleteをちゃんと実行しないといかんわけか

でもGML(sprite_add)を使う人もsprite_delete使うよね?あれ?
すまん、混乱してきたorz

488 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 00:41:38 ID:bv2mAVIJ]
最初からGameMakerのファイルにスプライトを入れてる場合は
起動時にすべての画像がメモリにロードされて、終了するまで開放されることはない。
よく言われるPreloadはあくまでビデオメモリに落とすかどうかで
これにチェックが入っていようがいまいが、メインメモリにはすべて落とされる

使わないスプライトをメモリに落としたくない場合は、exeの外に画像ファイルを用意しておき
必要なたびにsprite_addなどで読み込ませるしかないみたいだ
そして、もちろん必要なくなったらsprite_deleteでスプライトを削除してやることを忘れずに

これらの一連の作業は、ある程度GMLを理解してないとキツイね。
ただ、小規模なゲームならば、メモリはそんな気にしないでガンガンスプライトを作っちゃっていいと思う。
GMLを使わないなら、そんな大規模なゲームじゃないでしょ。



489 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 00:42:51 ID:bv2mAVIJ]
あ、もちろん最初から入れてあるスプライトも、sprite_deleteで消すことは可能だよ
ただ、また使う際にはsprite_addで入れ直してあげないといけないけど

490 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 00:51:50 ID:GGZRIxG7]
>>488
なるほど、何となく分かったかも
丁寧な説明ありがとです
頑張ってGML勉強しようかのぉ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef