- 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/
- 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勉強しようかのぉ
- 491 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 05:29:38 ID:RnMcuV0D]
- ちょっと言葉が足りなかったようですまん。
スプライトのロードと破棄でメモリを食うってのは、sprite_add(...)で外部からメモリ内にスプライトを読み込んだ後、 数ステップ後にsprite_delete(...)でそのスプライトを破棄すると スプライトを読み込む前よりメモリ使用量が若干(16kBほど?)増える現象のことを指してた。 上昇量はテストする度に異なったりするから、環境依存なのかもしれないけど。 詳しい仕組みは知らないけど、>>485のテストは1ステップ内で行ってるから状況が少し異なるのかも? 検証してみる価値はあるか。
- 492 名前:名前は開発中のものです。 [2009/10/14(水) 07:48:51 ID:YxYD41xX]
- スプライトそのものは消えても、衝突判定などの設定情報が残ってるとかか?
- 493 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 17:24:39 ID:GGZRIxG7]
- 何か皆詳しいなぁ
てか皆の話色々平均すると、台詞表示するときって 「全台詞スプライト用意」より 「a〜z、あ(ア)〜ん(ン)、あと諸々分の小さなオブジェクト沢山作って台詞作り」のがいいのかな (台詞量にもよると思うが) 前日本語ファイルで「オブジェクトは少ないのがいい」だけ鵜呑みに してたからそうしようとは思わんかったのよね
- 494 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 18:48:17 ID:133VTP3G]
- >>491
メモリを解放しても、そのメモリがすぐシステムに返却されるとは限らない (次にメモリが必要になったとき再利用するためにとっておくから) add→delete→add→delete…と繰り返しても使用量がどんどん増えたりせず 一定範囲でとどまるようなら、ちゃんと解放されていると思っていいんじゃないかな >>493 スプライトを文字数分用意するにしても、オブジェクトは一個でいいだろ。 Drawイベントでスプライト組み合わせて文字列描画させればいい。 もちろんスプライト一個描画するよりは遅くなるし、 文字数分のスプライト用意する分手間がかかるから (パフォーマンス+開発効率)とメモリ消費のどっちをとるかのトレードオフになるな。
- 495 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 21:42:30 ID:GGZRIxG7]
- >>494
文字列組み合わせるつもりではいたけど、 それが沢山のオブジェクトである必要はないのか gifとか忘れてた俺アホスwww そうだよね、エディット画面でできることだよねorz >一個 確かに台詞自体を用意する方が早いねぇ、楽だし まぁ自己満クオリティな間は効率をとるのがいいかなぁ とりあえず完成させるのが大事だし
- 496 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 22:00:33 ID:GGZRIxG7]
- 間違えた。俺が言いたかったのは
「台詞一個」と「台詞内の文字数分のオブジェクト(がroomに存在)」の比較だ ま、でも後者は管理・労力が大変だし、結局前者が無難か・・・
- 497 名前:名前は開発中のものです。 mailto:sage [2009/10/14(水) 22:27:53 ID:bv2mAVIJ]
- たしかになんか不安定な気がするね>sprite_delete
試してみたけど、追加→削除前に比べてメモリが増えたと思ったら、今度は減ったりした そして同じ動作を何回も繰り返していくうちにメモリの変動が安定してくる
- 498 名前:名前は開発中のものです。 mailto:sage [2009/10/15(木) 02:52:17 ID:LmGjEFod]
- 俺も試してみたけど、確かにメモリが一向に上昇し続ける傾向はないみたいだからとりあえず大きな問題はないか。
>496 よこしまさんのmbtextを使えば? 台詞を後で推敲することを考えると、stringで台詞を用意してそれをmbtext_drawで描画する方が遥かに楽 台詞ごとにスプライトを用意していると、台詞が増えたときに挫折しそう ここで少し時間を投資してmbtextの使い方を覚えた方がいいと思う(使い方って言っても簡単だし) それと、>494の言っていることはgifともエディット画面とも関係ない
- 499 名前:名前は開発中のものです。 mailto:sage [2009/10/15(木) 10:25:42 ID:qb9kY2ep]
- 一つのスプライトに複数文字を格納することを理解したんだから
別に関係なくはないだろ
- 500 名前:名前は開発中のものです。 [2009/10/15(木) 15:40:28 ID:Wyrl5rE9]
- 8はwindows7に対応させてからの発売になるのかなー
- 501 名前:名前は開発中のものです。 mailto:sage [2009/10/19(月) 21:40:12 ID:IlnPQ80k]
- GM、6以降のバージョンなら現在のPCでは普通に動くのだろうか……
新しいグラボだと、5.3AはDirectXの機能オフにしないと15フレームしか出ないんだよなー。
- 502 名前:名前は開発中のものです。 mailto:sage [2009/10/19(月) 22:50:53 ID:FNTjSUVF]
- Direct3D 11 は、凄まじく面倒になる可能性がある。
ただでさえ今まで固定でやってたブレンディングやアルファテストがシェーダになっているのに 固定機能を廃して全部シェーダになってしまった 効率よく働いてくれることを期待しないほうがいい むしろ悪化する
- 503 名前:名前は開発中のものです。 mailto:sage [2009/10/20(火) 09:38:45 ID:c6RaFjAq]
- 音楽をfpsとかに合わせてきっかり流す方法ってないですか?
流したいところで音楽が微妙にずれたり画面が処理落ちしてるのに音楽が平常に流れるせいでずれが発生して困ってます。
- 504 名前:名前は開発中のものです。 mailto:sage [2009/10/20(火) 15:25:37 ID:6YHJoqlj]
- 処理落ちに合わせて流れている音楽をいじる、ってのはまず無いわな。
そういうわけで、いじる対象を逆転させてみた。 音楽の再生云々をいじるのではなく、 まず音楽を再生させて、 再生開始からの経過時間を利用してゲーム内の動作を処理する。 処理落ちに対応できる方法と考えると、こうしか思いつかなかった。 時間を利用してゲーム内の動作を処理するとは言ったが、別に全てを時間基準にする必要はない。 ただこの方法を使うときは、時間を基準に処理するものとフレームを基準に処理するものとを明確にわけること。 まぁこれは再生時間に合わせて流れるスタッフロール的な物をイメージして考えてみたんで、 複雑なものになると、どこまでできるかはデザイン次第、かな? ちなみにこの例だと、時間を基準に流れているので、 例え処理落ちしても、ゲームの処理がしばらく止まっても、 再生開始から5秒経過したのなら5秒後の位置、10秒経過したのなら10秒後の位置に動かす、という仕組み。
- 505 名前:名前は開発中のものです。 mailto:sage [2009/10/20(火) 20:57:37 ID:SLMjJuQO]
- RC出てるな。
ソースエディタ、draw_txtともに日本語通らないの確認した (バグトラッカでも今後の非対応明言されてた) 日本語化はできないんだっけか。
- 506 名前:名前は開発中のものです。 mailto:sage [2009/10/20(火) 22:59:14 ID:Rv9BzQJ5]
- 昨日このソフトを発見し、こちらでゲーム作りを試みている者です
凄く初歩的な質問で申し訳がないのですが 大まかな動きのつけ方や操作方法はチュートリアルで理解する事はできたのですが それ以上のものを作ろうとするとそれ以降は自分で虱潰し的にアクションを試すしかないのでしょうか たとえばexe形式となっているソフト等を参考にしようとしても、開けませんよね >>336で「公式のPlatformで検索すると参考になるものが〜」とありますが、確かに このソフトにおける可能性は見出せましたけども、やはりexe形式で挙げられているから中身を見て参考にする事はできませんよね・・・
- 507 名前:名前は開発中のものです。 mailto:sage [2009/10/21(水) 01:33:15 ID:Q98BhYv9]
- >>506
まずマニュアルをじっくり一通り読もう! そして小さい規模でもいいから自力でなにか作ってみること だんだん出来ることが広がっていくはず。
- 508 名前:名前は開発中のものです。 mailto:sage [2009/10/21(水) 01:51:14 ID:bzUL/ied]
- 暇な時にヘルプを眺めながら、色々試していくのが一番だね
急がば回れだ
- 509 名前:名前は開発中のものです。 mailto:sage [2009/10/21(水) 21:01:14 ID:K7bGjyPl]
- 何かに合わせるのは、普通イベントで判断する。
まあOSや言語、インターフェイスによってはフラグとかも言うが 何かを始めるときは、イベント元にする。 フラグを立てる。でもいい こうすると、処理が始まってから別の処理が行われることが保証される。 最初の処理が遅れれば、後の処理もそれに合わせて遅れるだけだ。
- 510 名前:名前は開発中のものです。 mailto:sage [2009/10/21(水) 21:06:06 ID:K7bGjyPl]
- サウンドと画面を連動させたいならば、
サウンドファイル再生をやめること。 昔ながらのサウンドプログラミングなら メインスレッドとサウンドスレッドは平行して処理されるから どちらかが遅れるともう片方も遅れる。 サウンドプログラミングは、インタープリタのように逐次発声だからだ サウンドファイルだと、最初に読み込んでから鳴らすだけなので それほどの負荷でないから遅れる・止まるってのは余程の負荷がかからないと起こらない。 昔は、サウンド構築のためだけのプログラマ、サウンドプログラマなんて職があったのだ それと同じことをやればよい。
- 511 名前:506 mailto:sage [2009/10/21(水) 22:53:42 ID:7kid7kXI]
- レスありがとうございます
一通りヘルプを見てみます
- 512 名前:名前は開発中のものです。 mailto:sage [2009/10/21(水) 23:30:57 ID:K7bGjyPl]
- 一番真っ当なやり方は
・負荷を減らす ・動作必須環境を上げる これくらいだろう 負荷を減らすのは以外に単純 別に走らなくてもいいような変なルーチンが走ってないか 妙に割り込まれてないか ルーチンが走る順番は正しいか 無駄に複雑なルーチンでないか これを完璧にこなしてもダメなら最低動作環境を上げるだけ
- 513 名前:名前は開発中のものです。 mailto:sage [2009/10/22(木) 03:15:18 ID:QcCk0qNG]
- 横スクロールアクションを作っているのだが
プレイヤーをカメラが追っていく設定にして、そのカメラの座標?とか設定してやると 32,32以外でやると地震がおきたかのように画面がガクガクになるんだが スクリプトとか必要なのか?
- 514 名前:名前は開発中のものです。 mailto:sage [2009/10/22(木) 03:17:32 ID:QcCk0qNG]
- 悪い 自己解決した
- 515 名前:名前は開発中のものです。 [2009/10/22(木) 18:07:09 ID:9bnTpD/d]
-
いつになったら サイトは復活するのか。
- 516 名前:名前は開発中のものです。 mailto:sage [2009/10/22(木) 23:07:47 ID:QcCk0qNG]
- 俺もサイト復活してほしい、プログラムとかスクリプトに対してほとんど無知だと壁が多い
今2Dアクション作ってて手探り状態なんだけども ・左の壁にぶつかるとなぜかバウンド?して一歩ほど戻る ・向いてる方向に攻撃ができるようにしたい(現状だと一方方向、X+の方面にしか玉が打てない) ・ニコ動の解説動画みたけど、変数関係の応用方法がわからない 何が何発あたれば敵が死ぬとかのイベントの配置場所(弾のオブジェクトだとか敵のオブジェクトにだとか)がいまいちはっきりしてない 3時間ほど粘ってるんだけどもしかして俺がマニュアル見落としてたりするのかな このスレ眺めててそういう類の質問を見ないから畏れ多い・・・
- 517 名前:名前は開発中のものです。 mailto:sage [2009/10/23(金) 01:25:24 ID:x6bl6P0C]
- >>516
公式で.gmkなりぐぐると幸せになるかも 俺はそれでどうにかしてる
- 518 名前:名前は開発中のものです。 mailto:sage [2009/10/23(金) 03:48:20 ID:QbMhH9cO]
- 3時間ならよくあること
それを半年続ければこのスレで言われていることは理解できるようになるんじゃないか ちなみに向いている方向に攻撃をするには、弾を発射するオブジェクトのimage_angleと弾のdirectionを一致させればいい 弾の衝突判定イベントは敵オブジェクトに設定して、衝突ごとに敵オブジェクトのlifeを減らす んでlife <= 0の時にオブジェクトを破壊、って感じだろう このあたりは過去ログも参照するといい
- 519 名前:名前は開発中のものです。 mailto:sage [2009/10/23(金) 08:55:04 ID:wQYLsPFR]
- 向いてる方向に弾が…
ってよく聞くけどそんなに難しいかなぁ〜? とりあえず俺はExample内ので幸せになった 2Dアクションのやつ
- 520 名前:名前は開発中のものです。 [2009/10/23(金) 16:11:44 ID:vXjEA+RQ]
-
最初は、誰もが効率の悪いコードを書く。 if() if() if() for() のように。 例えるなら、ifの数を減らすのが上級者である。 また、if( Fuckintosh == 0 )とかは論外。 上級者は if( !(Fuckintosh) && ((FuckOSX >> 3) += FuckMac) << 6 || (FuckMac & FuckJobs) >> 2 ) などというように書く。 激しく読みづらいが。
|

|